pax_global_header00006660000000000000000000000064136077556210014526gustar00rootroot0000000000000052 comment=b5b37e15ebee51654a3a6c6c125318cfa64f42c3 glymur-0.9.1/000077500000000000000000000000001360775562100130545ustar00rootroot00000000000000glymur-0.9.1/.gitignore000066400000000000000000000000671360775562100150470ustar00rootroot00000000000000*.pyc *.swp .coverage docs/build cover Glymur.egg-info glymur-0.9.1/.readthedocs.yml000066400000000000000000000001461360775562100161430ustar00rootroot00000000000000version: 2 build: image: latest conda: environment: ci/doc.yml python: version: 3.7 formats: [] glymur-0.9.1/.travis.yml000066400000000000000000000013601360775562100151650ustar00rootroot00000000000000language: python matrix: fast_finish: true include: - python: 3.6 env: - JOB="3.6 No OPENJPEG" ENV_FILE="ci/travis-36-no-opj.yaml" - python: 3.6 env: - JOB="3.6" ENV_FILE="ci/travis-36.yaml" - python: 3.7 env: - JOB="3.7" ENV_FILE="ci/travis-37.yaml" - python: 3.7 env: - JOB="3.7" ENV_FILE="ci/travis-37-no-gdal.yaml" - python: 3.8 env: - JOB="3.8" ENV_FILE="ci/travis-38.yaml" before_install: - echo "before_install" - sudo apt-get update - df -h - pwd - uname -a - git --version - hash -r install: - echo "install" - ci/setup_env.sh - echo "install done" script: - echo "run script" - ci/run_script.sh - echo "script done" glymur-0.9.1/CHANGES.txt000066400000000000000000000174461360775562100147010ustar00rootroot00000000000000January 15, 2020 - v0.9.1 Remove GDAL from setup.py requirements January 14, 2020 - v0.9.0 Removed support for python2.7. Fixed Cygwin support. Fixed appveyor builds, Travis-CI framework reworked. Some fragile tests removed. November 15, 2019 - v0.8.19 Qualify on Python 3.8. April 24, 2019 - v0.8.18 Fix geotiff UUID corner coordinate string representation. Improve warning and error messages. Correct improperly raised exception types. Remove build/test for Python 3.4 (EOL). Fix read-the-docs requirements. February 19, 2019 - v0.8.17 Add support for ICC profile raw data. Fix parsing of negative resolution box exponents. September 18, 2018 - v0.8.16 Qualify on Python 3.7. Fix documentation typo. April 07, 2018 - v0.8.15 Fix link to readthedocs. Fix for invalid progression order display. January 21, 2018 - v0.8.14 Fix layers bug. January 10, 2018 - v0.8.13 Clarify PSNR usage. Add support for openjpeg threads. October 14, 2017 - v0.8.12 Qualify on OpenJPEG v2.3.0 Drop support for Python 3.3 August 15, 2017 - v0.8.11 Qualify on OpenJPEG v2.2.0 State LTS plans. March 22, 2017 - v0.8.10 Add pathlib support. Add appveyor to CI testing. January 26, 2017 - v0.8.9 Qualified on Python 3.6. Change travis-ci testing to use Anaconda. December 01, 2016 - v0.8.8 Refactor test suite. Fix printing errors in case of bad colr box. Fix tests on CentOS when seeing OpenJPEG 1.3 October 02, 2016 - v0.8.7 Qualified on OPENJPEG v2.1.2 September 19, 2016 - v0.8.6 The install requirement on setuptools is now stated explicitly. Fix error printing invalid channel definition box. July 07, 2016 - v0.8.5 Relax dependency on lxml; use stdlib ElementTree if necessary. Fix XML box processing bug on certain XML declarations. Qualified on OPENJPEG v2.1.1. May 21, 2016 - v0.8.4 Add Anaconda awareness to config module, favor over system package manager. Fix issue locating openjpeg dll on windows. September 30, 2015 - v0.8.3 Add gdal interpretation of UUIDBox with GeoTIFF Box specification for JPEG2000 metadata. Add support for Python 3.5. Add support for Cygwin platform. Add write support for UUIDInfo and UUIDList box. Relax installation requirement of lxml from version 3.0 to version 2.3.2. Fix parsing error on python2 of bits-per-component box. May 17, 2015 - v0.8.2 Add proper library version check to read methods. May 08, 2015 - v0.8.1 Add support for JP2 bits per component box. Jan 10, 2015 - v0.8.0 Deprecate old read and write methods in favor of array-style slicing. Reduce number of steps required for writing images. Add ignore_pclr_cmap_cdef, verbose, shape, codestream, layer properties. Oct 06, 2014 - v0.7.2 Add ellipsis support in array-style slicing. Oct 02, 2014 - v0.7.1 Fix README to mention Python 3.4 Oct 01, 2014 - v0.7.0 Add array-style slicing. August 03, 2014 - v0.6.0 Add Cinema2K, Cinema4K write support. Changed constructor for ChannelDefinition box. Removed support for Python 2.6. Added write support for JP2 UUID, DataEntryURL, Palette and Component Mapping boxes, JPX Association, NumberList and DataReference boxes. Added read support for JPX free, number list, data reference, fragment table, and fragment list boxes. Improved JPX Reader Requirements box support. Added get_printoptions, set_printoptions functions. Palette box now a 2D numpy array instead of a list of 1D arrays. JP2 super box constructors now take optional box list argument. Fixed bug where JPX files with more than one codestream but advertising jp2 compatibility were not being read. Jan 28, 2014 - v0.5.10 Fixed bad warning when reader requirements box mask length is unsupported. Oct 29, 2013 - v0.5.9 Fixed bad library load on linux as a result of 0.5.8 Oct 29, 2013 - v0.5.8 Fixed unnecessary warnings when default locations for openjpeg libraries on mac do not specify the actual library. Oct 28, 2013 - v0.5.7 Fixed bad import error message when libopenjpeg library not installed on mac. Oct 13, 2013 - v0.5.6 Fixed handling of non-ascii chars in XML boxes. Fixed some docstring errors in jp2box module. Oct 03, 2013 - v0.5.5 Fixed pip install error introduced in 0.5.0. Sep 24, 2013 - v0.5.4 Fixed test error restricted to v2.0. Sep 24, 2013 - v0.5.3 Removed a duplicated channel definition test in test_jp2box that could cause a segfault in 1.3 if not properly skipped. Sep 23, 2013 - v0.5.2 Fixed some tests that have been failing since 0.5 under various edge cases. Sep 19, 2013 - v0.5.1 Added more resiliency to XML box parsing. Fixed tests that failed if OPJ_DATA_ROOT not set. Sep 16, 2013 - v0.5.0 Added write support for 1.5.x. Added version module. Aug 21, 2013 - v0.4.1 Fixed segfault with openjpeg 1.x when rlevel=-1 Aug 18, 2013 - v0.4.0 Added append method. Aug 15, 2013 - v0.3.2 Fixed test bug where missing Pillow package caused test failures. Aug 14, 2013 - v0.3.1 Exposed mantissa, exponent, and guard_bits fields in QCC and QCD segments. Exposed layers and code_block_size in COD segment. Exposed precinct_size in COC segment. Jul 31, 2013 - v0.3.0 Added support for official 2.0.0. Jul 27, 2013 - v0.2.8 Fixed inconsistency regarding configuration file directory on windows. Jul 25, 2013 - v0.2.7 Warns but no longer errors out when neither library is found (issue89). Jul 24, 2013 - v0.2.6 No longer warning when configuration file not found. Added read support for jpch, jplh boxes. Added testing of files in format-corpus repository. Jul 23, 2013 - v0.2.5 Fixed inconsistency in XML handling, now all instances are always ElementTree objects. Jul 21, 2013 - v0.2.4 Fixed markdown bug for Fedora 17 information. Fixed out-of-date windows information. Fixed incorrect interpretation of Psot parameter. Jul 18, 2013 - v0.2.3 Support for Python 2.6, OpenJPEG 1.4. Incompatible change to ChannelDefinitionBox constructor. Added RGBA example. Jul 11, 2013 - v0.2.2 Fixed mistakes with trove classifier, pypi releases. Jul 11, 2013 - v0.2.0 Support for Python 2.7 on windows, OpenJPEG 1.5.1. Jun 27, 2013 - v0.1.10 Can wrap codestreams in custom JP2 jackets. Exposing parameter to specify multi component transform. Added a raw codestream file. Jun 16, 2013 - v0.1.9 Reading ICC profile headers as ordered dicts. Exif dictionaries changed to ordered dicts. Honoring XDG_CONFIG_HOME environment variable. Jun 14, 2013 - v0.1.8 Added reduce=-1 option to get lowest resolution thumbnail. Jun 07, 2013 - v0.1.7 Changed Exif dictionary names from ['Exif', 'Photo', 'Iop', 'GPSInfo'] to ['Image', 'Photo', 'Iop', 'GPSInfo']. Jun 06, 2013 - v0.1.6 Exif classes made private. Refactored IFD post processing. Corrected omission of Exif in UUIDBox docstring. Jun 06, 2013 - v0.1.5 Changed ColourSpecificationBox attribute "color_space" to "colorspace". Fixed MANIFEST issue affecting PyPI installs. Jun 05, 2013 - v0.1.4 Added Exif UUID read support. Jun 02, 2013 - v0.1.3p1 Raising IOErrors when code block size and precinct sizes do not match. Added statement to docs about upstream library dependence. Added roadmap to docs. May 30, 2013 - v0.1.2 Added XMP UUID read support. Added jp2 boxes to rst docs, XMLBox.indent method made into a private module method. Precinct sizes restricted to be multiples of two. May 27, 2013 - v0.1.1 Changed write example to not rely on matplotlib. Fixed readthedocs.org setup to build documentation automatically. Can import glymur without libopenjp2 actually being present. Changed write example to not rely on matplotlib. glymur-0.9.1/LICENSE.txt000066400000000000000000000020651360775562100147020ustar00rootroot00000000000000The MIT License (MIT) Copyright (c) 2013 John Evans 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. glymur-0.9.1/MANIFEST.in000066400000000000000000000001341360775562100146100ustar00rootroot00000000000000include *.txt *.md prune build exclude readthedocs-pip-requirements.txt exclude release.txt glymur-0.9.1/README.md000066400000000000000000000004611360775562100143340ustar00rootroot00000000000000glymur: a Python interface for JPEG 2000 ========================================= **glymur** contains a Python interface to the OpenJPEG library which allows one to read and write JPEG 2000 files. **glymur** works on Python 3.6 and 3.7. Please read the docs, https://glymur.readthedocs.org/en/latest/ glymur-0.9.1/appveyor.yml000066400000000000000000000052141360775562100154460ustar00rootroot00000000000000matrix: fast_finish: true # immediately finish build once one of the jobs fails. environment: global: # SDK v7.0 MSVC Express 2008's SetEnv.cmd script will fail if the # /E:ON and /V:ON options are not enabled in the batch script intepreter # See: http://stackoverflow.com/a/13751649/163740 CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\ci\\run_with_env.cmd" clone_folder: C:\projects\glymur matrix: - CONDA_ROOT: "C:\\Miniconda3_64" PYTHON_VERSION: "3.6" PYTHON_ARCH: "64" CONDA_PY: "36" CONDA_NPY: "117" - CONDA_ROOT: "C:\\Miniconda3_64" PYTHON_VERSION: "3.7" PYTHON_ARCH: "64" CONDA_PY: "37" CONDA_NPY: "117" - CONDA_ROOT: "C:\\Miniconda3_64" PYTHON_VERSION: "3.8" PYTHON_ARCH: "64" CONDA_PY: "38" CONDA_NPY: "117" # We always use a 64-bit machine, but can build x86 distributions # with the PYTHON_ARCH variable (which is used by CMD_IN_ENV). platform: - x64 build: off install: # cancel older builds for the same PR - ps: if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod ` https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | ` Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { ` throw "There are newer queued builds for this pull request, failing early." } # this installs the appropriate Miniconda (Py2/Py3, 32/64 bit) # updates conda & installs: conda-build jinja2 anaconda-client - powershell .\ci\install.ps1 - SET PATH=%CONDA_ROOT%;%CONDA_ROOT%\Scripts;%PATH% - echo "install" - cd - ls -ltr - git tag --sort v:refname # this can conflict with git - cmd: rmdir C:\cygwin /s /q # install our build environment - cmd: conda config --set show_channel_urls true --set always_yes true --set changeps1 false - cmd: conda update -q conda - cmd: conda config --set ssl_verify false # this is now the downloaded conda... - cmd: conda info -a # create our env - SET REQ=ci\travis-%CONDA_PY%.yaml - cmd: echo "installing requirements from %REQ%" - cmd: conda env create --file=%REQ% - cmd: conda list -n glymur - cmd: activate glymur - cmd: echo "installing requirements from %REQ% - done" # build em using the local source checkout in the correct windows env - cmd: '%CMD_IN_ENV% python setup.py install' test_script: # tests - cmd: conda activate glymur - cmd: conda list - cmd: cd c:\projects\glymur - ls -ltr - cmd: python -c "import sys; print(sys.executable)" - cmd: c:\miniconda3_64\envs\glymur\python -m unittest discover -v glymur-0.9.1/ci/000077500000000000000000000000001360775562100134475ustar00rootroot00000000000000glymur-0.9.1/ci/doc.yml000066400000000000000000000002521360775562100147360ustar00rootroot00000000000000name: glymur-docs channels: - conda-forge dependencies: - python=3.7 - numpydoc>=0.8 - sphinx_rtd_theme>=0.4.2 - mock>=2.0.0 - contextlib2>=0.5.5 glymur-0.9.1/ci/install.ps1000066400000000000000000000056321360775562100155500ustar00rootroot00000000000000# Sample script to install Miniconda under Windows # Authors: Olivier Grisel, Jonathan Helmus and Kyle Kastner, Robert McGibbon # License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/ $MINICONDA_URL = "http://repo.continuum.io/miniconda/" function DownloadMiniconda ($python_version, $platform_suffix) { $webclient = New-Object System.Net.WebClient $filename = "Miniconda3-latest-Windows-" + $platform_suffix + ".exe" $url = $MINICONDA_URL + $filename $basedir = $pwd.Path + "\" $filepath = $basedir + $filename if (Test-Path $filename) { Write-Host "Reusing" $filepath return $filepath } # Download and retry up to 3 times in case of network transient errors. Write-Host "Downloading" $filename "from" $url $retry_attempts = 2 for($i=0; $i -lt $retry_attempts; $i++){ try { $webclient.DownloadFile($url, $filepath) break } Catch [Exception]{ Start-Sleep 1 } } if (Test-Path $filepath) { Write-Host "File saved at" $filepath } else { # Retry once to get the error message if any at the last try $webclient.DownloadFile($url, $filepath) } return $filepath } function InstallMiniconda ($python_version, $architecture, $python_home) { Write-Host "Installing Python" $python_version "for" $architecture "bit architecture to" $python_home if (Test-Path $python_home) { Write-Host $python_home "already exists, skipping." return $false } if ($architecture -match "32") { $platform_suffix = "x86" } else { $platform_suffix = "x86_64" } $filepath = DownloadMiniconda $python_version $platform_suffix Write-Host "Installing" $filepath "to" $python_home $install_log = $python_home + ".log" $args = "/S /D=$python_home" Write-Host $filepath $args Start-Process -FilePath $filepath -ArgumentList $args -Wait -Passthru if (Test-Path $python_home) { Write-Host "Python $python_version ($architecture) installation complete" } else { Write-Host "Failed to install Python in $python_home" Get-Content -Path $install_log Exit 1 } } function InstallCondaPackages ($python_home, $spec) { $conda_path = $python_home + "\Scripts\conda.exe" $args = "install --yes " + $spec Write-Host ("conda " + $args) Start-Process -FilePath "$conda_path" -ArgumentList $args -Wait -Passthru } function UpdateConda ($python_home) { $conda_path = $python_home + "\Scripts\conda.exe" Write-Host "Updating conda..." $args = "update --yes conda" Write-Host $conda_path $args Start-Process -FilePath "$conda_path" -ArgumentList $args -Wait -Passthru } function main () { InstallMiniconda "3.5" $env:PYTHON_ARCH $env:CONDA_ROOT UpdateConda $env:CONDA_ROOT InstallCondaPackages $env:CONDA_ROOT "conda-build jinja2 anaconda-client" } main glymur-0.9.1/ci/run_script.sh000077500000000000000000000004711360775562100162000ustar00rootroot00000000000000#!/bin/bash -e MINICONDA_DIR="$HOME/miniconda3" echo "Set MINICONDA_DIR to ""$MINICONDA_DIR" export PATH=$MINICONDA_DIR/bin:$PATH source activate glymur echo echo "which conda" which conda echo "python -m unittest discover" python -m unittest discover python -c "import glymur; print(glymur.version.info)" glymur-0.9.1/ci/run_with_env.cmd000066400000000000000000000070201360775562100166420ustar00rootroot00000000000000:: EXPECTED ENV VARS: PYTHON_ARCH (either x86 or x64) :: CONDA_PY (either 27, 33, 35 etc. - only major version is extracted) :: :: :: To build extensions for 64 bit Python 3, we need to configure environment :: variables to use the MSVC 2010 C++ compilers from GRMSDKX_EN_DVD.iso of: :: MS Windows SDK for Windows 7 and .NET Framework 4 (SDK v7.1) :: :: To build extensions for 64 bit Python 2, we need to configure environment :: variables to use the MSVC 2008 C++ compilers from GRMSDKX_EN_DVD.iso of: :: MS Windows SDK for Windows 7 and .NET Framework 3.5 (SDK v7.0) :: :: 32 bit builds, and 64-bit builds for 3.5 and beyond, do not require specific :: environment configurations. :: :: Note: this script needs to be run with the /E:ON and /V:ON flags for the :: cmd interpreter, at least for (SDK v7.0) :: :: More details at: :: https://github.com/cython/cython/wiki/64BitCythonExtensionsOnWindows :: http://stackoverflow.com/a/13751649/163740 :: :: Author: Phil Elson :: Original Author: Olivier Grisel (https://github.com/ogrisel/python-appveyor-demo) :: License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/ :: :: Notes about batch files for Python people: :: :: Quotes in values are literally part of the values: :: SET FOO="bar" :: FOO is now five characters long: " b a r " :: If you don't want quotes, don't include them on the right-hand side. :: :: The CALL lines at the end of this file look redundant, but if you move them :: outside of the IF clauses, they do not run properly in the SET_SDK_64==Y :: case, I don't know why. :: originally from https://github.com/pelson/Obvious-CI/blob/master/scripts/obvci_appveyor_python_build_env.cmd @ECHO OFF SET COMMAND_TO_RUN=%* SET WIN_SDK_ROOT=C:\Program Files\Microsoft SDKs\Windows :: Extract the major and minor versions, and allow for the minor version to be :: more than 9. This requires the version number to have two dots in it. SET MAJOR_PYTHON_VERSION=%CONDA_PY:~0,1% IF "%CONDA_PY:~2,1%" == "" ( :: CONDA_PY style, such as 27, 34 etc. SET MINOR_PYTHON_VERSION=%CONDA_PY:~1,1% ) ELSE ( IF "%CONDA_PY:~3,1%" == "." ( SET MINOR_PYTHON_VERSION=%CONDA_PY:~2,1% ) ELSE ( SET MINOR_PYTHON_VERSION=%CONDA_PY:~2,2% ) ) :: Based on the Python version, determine what SDK version to use, and whether :: to set the SDK for 64-bit. IF %MAJOR_PYTHON_VERSION% == 2 ( SET WINDOWS_SDK_VERSION="v7.0" SET SET_SDK_64=Y ) ELSE ( IF %MAJOR_PYTHON_VERSION% == 3 ( SET WINDOWS_SDK_VERSION="v7.1" IF %MINOR_PYTHON_VERSION% LEQ 4 ( SET SET_SDK_64=Y ) ELSE ( SET SET_SDK_64=N ) ) ELSE ( ECHO Unsupported Python version: "%MAJOR_PYTHON_VERSION%" EXIT /B 1 ) ) IF "%PYTHON_ARCH%"=="64" ( IF %SET_SDK_64% == Y ( ECHO Configuring Windows SDK %WINDOWS_SDK_VERSION% for Python %MAJOR_PYTHON_VERSION% on a 64 bit architecture SET DISTUTILS_USE_SDK=1 SET MSSdk=1 "%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Setup\WindowsSdkVer.exe" -q -version:%WINDOWS_SDK_VERSION% "%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Bin\SetEnv.cmd" /x64 /release ECHO Executing: %COMMAND_TO_RUN% call %COMMAND_TO_RUN% || EXIT /B 1 ) ELSE ( ECHO Using default MSVC build environment for 64 bit architecture ECHO Executing: %COMMAND_TO_RUN% call %COMMAND_TO_RUN% || EXIT /B 1 ) ) ELSE ( ECHO Using default MSVC build environment for 32 bit architecture ECHO Executing: %COMMAND_TO_RUN% call %COMMAND_TO_RUN% || EXIT /B 1 ) glymur-0.9.1/ci/setup_env.sh000077500000000000000000000033661360775562100160260ustar00rootroot00000000000000#!/bin/bash -e MINICONDA_DIR="$HOME/miniconda3" if [ -d "$MINICONDA_DIR" ]; then echo echo "rm -rf "$MINICONDA_DIR"" rm -rf "$MINICONDA_DIR" fi echo "set MINICONDA_DIR to ""$MINICONDA_DIR" UNAME_OS=$(uname) if [[ "$UNAME_OS" == 'Linux' ]]; then CONDA_OS="Linux-x86_64" elif [[ "$UNAME_OS" == 'Darwin' ]]; then CONDA_OS="MacOSX-x86_64" else echo "OS $UNAME_OS not supported" exit 1 fi echo "set CONDA_OS to ""$CONDA_OS" echo "Install Miniconda" wget -q "https://repo.continuum.io/miniconda/Miniconda3-latest-$CONDA_OS.sh" -O miniconda.sh chmod +x miniconda.sh ./miniconda.sh -b export PATH=$MINICONDA_DIR/bin:$PATH echo echo "which conda" which conda echo echo "update conda" conda config --set ssl_verify false conda config --set quiet true --set always_yes true --set changeps1 false conda update -n base conda echo "conda info -a" conda info -a echo "source deactivate" source deactivate echo "conda list (root environment)" conda list # Clean up any left-over from a previous build # (note workaround for https://github.com/conda/conda/issues/2679: # `conda env remove` issue) conda remove --all -q -y -n glymur echo echo "conda env create -q --file=${ENV_FILE}" time conda env create -q --file="${ENV_FILE}" echo "conda activate glymur" conda activate glymur # Make sure any error below is reported as such echo "[Build me]" python setup.py install # XXX: Some of our environments end up with old verisons of pip (10.x) # Adding a new enough verison of pip to the requirements explodes the # solve time. Just using pip to update itself. echo "[Updating pip]" python -m pip install --no-deps -U pip wheel setuptools echo "[Install glymur]" python -m pip install --no-build-isolation -e . echo echo "conda list" conda list echo "done" glymur-0.9.1/ci/travis-36-no-opj.yaml000066400000000000000000000002571360775562100172750ustar00rootroot00000000000000name: glymur channels: - defaults dependencies: - python=3.6.* - gdal - lxml - numpy - pip - scikit-image - pip: - importlib_resources glymur-0.9.1/ci/travis-36.yaml000066400000000000000000000002751360775562100160750ustar00rootroot00000000000000name: glymur channels: - defaults dependencies: - python=3.6.* - gdal - lxml - numpy - openjpeg - pip - scikit-image - pip: - importlib_resources glymur-0.9.1/ci/travis-37-no-gdal.yaml000066400000000000000000000002001360775562100174010ustar00rootroot00000000000000name: glymur channels: - defaults dependencies: - python=3.7.* - lxml - numpy - openjpeg - scikit-image glymur-0.9.1/ci/travis-37.yaml000066400000000000000000000002131360775562100160660ustar00rootroot00000000000000name: glymur channels: - defaults dependencies: - python=3.7.* - gdal - lxml - numpy - openjpeg - scikit-image glymur-0.9.1/ci/travis-38.yaml000066400000000000000000000002171360775562100160730ustar00rootroot00000000000000name: glymur channels: - conda-forge dependencies: - python=3.8.* - gdal - lxml - numpy - openjpeg - scikit-image glymur-0.9.1/docs/000077500000000000000000000000001360775562100140045ustar00rootroot00000000000000glymur-0.9.1/docs/Makefile000066400000000000000000000127051360775562100154510ustar00rootroot00000000000000# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = BUILDDIR = build # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source # the i18n builder cannot share the environment and doctrees with the others I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " singlehtml to make a single large HTML file" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " devhelp to make HTML files and a Devhelp project" @echo " epub to make an epub" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " latexpdf to make LaTeX files and run them through pdflatex" @echo " text to make text files" @echo " man to make manual pages" @echo " texinfo to make Texinfo files" @echo " info to make Texinfo files and run them through makeinfo" @echo " gettext to make PO message catalogs" @echo " changes to make an overview of all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" clean: -rm -rf $(BUILDDIR)/* html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." singlehtml: $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml @echo @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/glymur.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/glymur.qhc" devhelp: $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp @echo @echo "Build finished." @echo "To view the help file:" @echo "# mkdir -p $$HOME/.local/share/devhelp/glymur" @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/glymur" @echo "# devhelp" epub: $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub @echo @echo "Build finished. The epub file is in $(BUILDDIR)/epub." latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make' in that directory to run these through (pdf)latex" \ "(use \`make latexpdf' here to do that automatically)." latexpdf: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through pdflatex..." $(MAKE) -C $(BUILDDIR)/latex all-pdf @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." text: $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text @echo @echo "Build finished. The text files are in $(BUILDDIR)/text." man: $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man @echo @echo "Build finished. The manual pages are in $(BUILDDIR)/man." texinfo: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." @echo "Run \`make' in that directory to run these through makeinfo" \ "(use \`make info' here to do that automatically)." info: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo "Running Texinfo files through makeinfo..." make -C $(BUILDDIR)/texinfo info @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." gettext: $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale @echo @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." glymur-0.9.1/docs/make.bat000066400000000000000000000117611360775562100154170ustar00rootroot00000000000000@ECHO OFF REM Command file for Sphinx documentation if "%SPHINXBUILD%" == "" ( set SPHINXBUILD=sphinx-build ) set BUILDDIR=build set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source set I18NSPHINXOPTS=%SPHINXOPTS% source if NOT "%PAPER%" == "" ( set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% ) if "%1" == "" goto help if "%1" == "help" ( :help echo.Please use `make ^` where ^ is one of echo. html to make standalone HTML files echo. dirhtml to make HTML files named index.html in directories echo. singlehtml to make a single large HTML file echo. pickle to make pickle files echo. json to make JSON files echo. htmlhelp to make HTML files and a HTML help project echo. qthelp to make HTML files and a qthelp project echo. devhelp to make HTML files and a Devhelp project echo. epub to make an epub echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter echo. text to make text files echo. man to make manual pages echo. texinfo to make Texinfo files echo. gettext to make PO message catalogs echo. changes to make an overview over all changed/added/deprecated items echo. linkcheck to check all external links for integrity echo. doctest to run all doctests embedded in the documentation if enabled goto end ) if "%1" == "clean" ( for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i del /q /s %BUILDDIR%\* goto end ) if "%1" == "html" ( %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/html. goto end ) if "%1" == "dirhtml" ( %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. goto end ) if "%1" == "singlehtml" ( %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. goto end ) if "%1" == "pickle" ( %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can process the pickle files. goto end ) if "%1" == "json" ( %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can process the JSON files. goto end ) if "%1" == "htmlhelp" ( %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can run HTML Help Workshop with the ^ .hhp project file in %BUILDDIR%/htmlhelp. goto end ) if "%1" == "qthelp" ( %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can run "qcollectiongenerator" with the ^ .qhcp project file in %BUILDDIR%/qthelp, like this: echo.^> qcollectiongenerator %BUILDDIR%\qthelp\glymur.qhcp echo.To view the help file: echo.^> assistant -collectionFile %BUILDDIR%\qthelp\glymur.ghc goto end ) if "%1" == "devhelp" ( %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp if errorlevel 1 exit /b 1 echo. echo.Build finished. goto end ) if "%1" == "epub" ( %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub if errorlevel 1 exit /b 1 echo. echo.Build finished. The epub file is in %BUILDDIR%/epub. goto end ) if "%1" == "latex" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex if errorlevel 1 exit /b 1 echo. echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. goto end ) if "%1" == "text" ( %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text if errorlevel 1 exit /b 1 echo. echo.Build finished. The text files are in %BUILDDIR%/text. goto end ) if "%1" == "man" ( %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man if errorlevel 1 exit /b 1 echo. echo.Build finished. The manual pages are in %BUILDDIR%/man. goto end ) if "%1" == "texinfo" ( %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo if errorlevel 1 exit /b 1 echo. echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. goto end ) if "%1" == "gettext" ( %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale if errorlevel 1 exit /b 1 echo. echo.Build finished. The message catalogs are in %BUILDDIR%/locale. goto end ) if "%1" == "changes" ( %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes if errorlevel 1 exit /b 1 echo. echo.The overview file is in %BUILDDIR%/changes. goto end ) if "%1" == "linkcheck" ( %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck if errorlevel 1 exit /b 1 echo. echo.Link check complete; look for any errors in the above output ^ or in %BUILDDIR%/linkcheck/output.txt. goto end ) if "%1" == "doctest" ( %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest if errorlevel 1 exit /b 1 echo. echo.Testing of doctests in the sources finished, look at the ^ results in %BUILDDIR%/doctest/output.txt. goto end ) :end glymur-0.9.1/docs/source/000077500000000000000000000000001360775562100153045ustar00rootroot00000000000000glymur-0.9.1/docs/source/conf.py000066400000000000000000000206701360775562100166100ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # glymur documentation build configuration file, created by # sphinx-quickstart on Sun May 26 11:29:54 2013. # # This file is execfile()d with the current directory set to its containing # dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import sys class Mock(object): def __init__(self, *args, **kwargs): pass def __call__(self, *args, **kwargs): return Mock() @classmethod def __getattr__(cls, name): if name in ('__file__', '__path__'): return '/dev/null' elif name[0] == name[0].upper(): mockType = type(name, (), {}) mockType.__module__ = __name__ return mockType else: return Mock() MOCK_MODULES = ['numpy'] for mod_name in MOCK_MODULES: sys.modules[mod_name] = Mock() # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # sys.path.insert(0, os.path.abspath('.')) # -- General configuration ---------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. # needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.autosummary', 'sphinx.ext.intersphinx', 'sphinx.ext.todo', 'numpydoc'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. # source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # General information about the project. project = 'glymur' copyright = '2013-2020, John Evans' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = '0.9' # The full version, including alpha/beta/rc tags. release = '0.9.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: # today = '' # Else, today_fmt is used as the format for a strftime call. # today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = [] # The reST default role (used for this markup: `text`) to use for all # documents. # default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. # add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). # add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. # show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. # modindex_common_prefix = [] # -- Options for HTML output -------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. html_theme = 'sphinx_rtd_theme' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. # html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. # html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". # html_title = None # A shorter title for the navigation bar. Default is the same as html_title. # html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. # html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. # html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. # html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. # html_use_smartypants = True # Custom sidebar templates, maps document names to template names. # html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. # html_additional_pages = {} # If false, no module index is generated. # html_domain_indices = True # If false, no index is generated. # html_use_index = True # If true, the index is split into individual pages for each letter. # html_split_index = False # If true, links to the reST sources are added to the pages. html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. # html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. # html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. # html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). # html_file_suffix = None # Output file base name for HTML help builder. htmlhelp_basename = 'glymurdoc' # -- Options for LaTeX output ------------------------------------------------- # The paper size ('letterpaper' or 'a4paper'). # 'papersize': 'letterpaper', # The font size ('10pt', '11pt' or '12pt'). # 'pointsize': '10pt', # Additional stuff for the LaTeX preamble. # 'preamble': '', latex_elements = {} # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass # [howto/manual]). latex_documents = [('index', 'glymur.tex', 'glymur Documentation', 'John Evans', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. # latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. # latex_use_parts = False # If true, show page references after internal links. # latex_show_pagerefs = False # If true, show URL addresses after external links. # latex_show_urls = False # Documents to append as an appendix to all manuals. # latex_appendices = [] # If false, no module index is generated. # latex_domain_indices = True # -- Options for manual page output ------------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ ('index', 'glymur', 'glymur Documentation', ['John Evans'], 1) ] # If true, show URL addresses after external links. # man_show_urls = False # -- Options for Texinfo output ----------------------------------------------- # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [('index', 'glymur', 'glymur Documentation', 'John Evans', 'glymur', 'One line description of project.', 'Miscellaneous'), ] # Documents to append as an appendix to all manuals. # texinfo_appendices = [] # If false, no module index is generated. # texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. # texinfo_show_urls = 'footnote' # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = {'http://docs.python.org/': None} glymur-0.9.1/docs/source/detailed_installation.rst000066400000000000000000000041121360775562100223700ustar00rootroot00000000000000################################## Advanced Installation Instructions ################################## ******************** Glymur Configuration ******************** If you installed OpenJPEG via conda, you don't have to do any configuration, as glymur can find the OpenJPEG library within the Anaconda directory structure. Otherwise, the default glymur installation process relies upon OpenJPEG being properly installed on your system as a shared library. If you have OpenJPEG installed through your system’s package manager on linux, Cygwin, or if you use MacPorts on the mac, you are probably already set to go. But if you have OpenJPEG installed into a non-standard place or if you use windows, then read on. Glymur uses ctypes to access the openjp2/openjpeg libraries, and because ctypes accesses libraries in a platform-dependent manner, it is recommended that **if** you compile and install OpenJPEG into a non-standard location, you should then create a configuration file to help Glymur properly find the openjpeg or openjp2 libraries The configuration format is the same as used by Python’s configparser module, i.e. :: [library] openjp2: /somewhere/lib/libopenjp2.so This assumes, of course, that you've installed OpenJPEG into /somewhere/lib on a linux system. The location of the configuration file can vary as well. If you use either linux or mac, the path to the configuration file would normally be :: $HOME/.config/glymur/glymurrc but if you have the **XDG_CONFIG_HOME** environment variable defined, the path will be :: $XDG_CONFIG_HOME/glymur/glymurrc On windows, the path to the configuration file can be determined by starting up Python and typing :: import os os.path.join(os.path.expanduser('~'), 'glymur', 'glymurrc') You may also include a line for the version 1.x openjpeg library if you have it installed in a non-standard place, i.e. :: [library] openjpeg: /somewhere/lib/libopenjpeg.so Once again, you should not have to bother with a configuration file if you use mac, linux, or Cygwin, and OpenJPEG is provided by your package manager. glymur-0.9.1/docs/source/goodstuff_alpha.png000066400000000000000000017005731360775562100211740ustar00rootroot00000000000000PNG  IHDRebJiCCPICC ProfileXPTKNf 9sa$3,$ "YQ@$#H  DA@DD@EŀHPv|~j_mm_9o0‚aFEXprtB?@mii ѾΒX5oH/ K{zGz7"] dlT"H$qO?Ză`(?'I~/?R MP"HOIG,$O#b~0za#?[HpkВEhOm0M3a>v697FXoliuĉ'hl#~sd߿u36?~eZAM3@^Q>q?uÎDGqi21.P/ 1.)i{i?/l׼K4@϶6WtD/`fx2@- x"@,H S (<W@=c`< ` `|{!J1C?$ @JB֐#AP4r P݃'2}vapI”`0- a'a%ZeX6{[m熋Õp Ofx7|߀ P< !PEv/D8"(C#:e&ɆE ~Xdy y9|\E~EP (A"rDPyJT 5ZAmhf(Zm&Re4z C` 0NPLӈƼQ񓩐Yy!'@MllKĪcmTl ;]~&''!W&" ?J^BJ>BLCAK!BKBMq gJJJJ-J'(ʓ (Q$Rʩ:p8m.Wk=mPQ PR˩Soii,hBhhiѬѢihiiiЮx^.  ?_C ]ۤ/Eg`0bfghceedgfaflfffbebaajazĴŬ|) EŊ%eeUՋ5u &f͖vmmݐ=}}C#6:'S3.z.m`AMn6nw4w  OO S^,/oo?&'_"_S->=&.4nȑ# /& SjdޔգGSAӤ Ҿs8֝Ξ~4} ǙYl99RŹy^y'O88{r"_!TӚ h V ;rq?sX,l٥Ӓ|J딷TUdWlWzWNWiU5WWV 87WcXQ+P[|u> /*]lr)кzņF&XSte˓Whoiahmѭoz\m3ioWjo:zNqcӿs㍩.n7%npߢ{;;[a}~}+ f'LF3>sO^רhXǸO(Lth}<1̟}߲z5v7o;J;ûb%߅w0xrpF OuP:)_'m>`OQ09r%+1CYѯ0d9Xor =A\+u9Mm>΃ގQIYEUnaE 7|)tC8O]TV .PDԆ"9uyBb2l5;unw75sܴt(t^UX ~'L'X MRf>Yj_pQˉAw]r=\^z>~*BA!4apH(h؄Gjg^&> KI8&x\7,eU.:ƁV/AGO@gg#G/߹`(/oGX0DHS'\Y4IDYU)siw2dOȹʋ*()ŔUTsl_j4k"h3io 1`40C(45V2̛6%[p[l[NYXSgPcS+p{>NYU]ju4<.322xtILS쭸#+[$dT4cs23e5e_Ϲ;7ybRک A ,[ O@pXDTL9Z.\kmj| EUs[bkwotPrN#f6{cv 4B}O|hg<~D׃)hZ!qc؜ғڅ٧gϏ,u@|E:bm܍>}Ua{mpO~M9X >8Gn.=1bml#,U+.:ƄVOߥ[e`T̜r07i piqKkp.bg%$$wedd7Li甪}TDTޫŨ+kjfhi3jiM3g_1h6'kLMeH+Ay%=j[s;~} R휄'].ƺsy,{=IO10_W?lG Y砧!mR"#RĞ;}(lBibyRerUJѪԪceNj3 3Oeegş>y8?iB"36g-KLK˵+*䪥I(Ԫ'\HRw>!W:[Z__(칱܍)cq+v񝛽"C1w+GFd'O="6}xffeVqܼB3K__$]mxӾ`~O4IYgr{KJR fu/(O4jSTeZop䓪~T+2C* ]ƠϤZ"Uup\ (a$ لPΨh&t"zc""+RbaǓQPQQu,pohii|#7 Xdf e4 ;?;k\tܫ<]|f x FxFhX$\ca.f:ZJS*jM5-Ym1!]A=!}1YC5Iie5+m]C4N)]._ܣ=^"?9 Ґo®E"bbUɇSRӺŎWdeEfj՟O<rɊUwjLj/]<+nlЌmijvpòs"=|;9 :8z7xw3)MM>-~reAuqw˩+/_iXw|anf'/lAM|QK&@_ @ ^@ℴ /( =~H~*lW^b)LFNDQY5 Æ쒅:aې?pX $pA4T4hΊ;F)|f+Fefdv .]yy1+|}aB.&"jb7$KUIg˹()) *U=5uuY !M-zm*.ZOf@eHO45V11503/hdded_0z軓sKKw>_bGoU,9!ՇaQ?Ě5Ɠ'&>LVMOK;,\^  //8[^^]ܫ;3Dд^mk߻^i|}[wLzCC2#GDZ/?ܜΛzXju^|ȳ%7_鼾g]MƏN*?/o }aݍ{]Gٿj g@ CD&#N`p1>#'H>drōJB=Ek/a1IddOi))R&PpLIE<]+=)&[fV,l^Z\5ܭ<|nA!!aFzQF16q Iu)i##YATZE)P9^E; ZR:z~q]F3Mi͝--[%w;|sTvJvrŹ_!OV @ACBdk#rbqc)ɩexgd煓>RpHC% eʧ+MF Kuw.4^kAYץ׽sНQ#L ''fAjfL*!+eq'̎mȪ@[chR/9a(ެ[DQٸq#PRRB^^RJZ[[ٷoMMMlܸEQ4im66mDii % @kkMMMĦMPU'g%%ؒf)g*{zHsE={61UUU[n_<Í#!l} u[fo(?]~άH{n6~3N~Ω~u\p݅޽+V-;bOQBb~, 0hhh0>PYYIUU~MVCJCCM1Pm )// EI<8EQ((( ##L)))!g}}=ƍ@ DM@QT 2Ƞ>q^y644$B!j8(FA~߿?rz=usUBBMҥK;w4-E`q ;}[m|^5r&wyJTcvbEX|q=g9<urdn<{p. gإ81 իWsfΜIII ~{:o&㣏>ٳgb[zdM""jA>Л߮]ˣ4 Y֡q_@ @YYBvEQQQyرJKKu!c5nK;v7ݻw(8CĈt+2UU{~[!P`q-Mlm-Du[2Y~0Ms H qbՉTuдYyL( ( h#([s 0HE8k,8Wñl(埾T̀8Jhlld޽qdeemm(J8H)R( %%%zꩼ466r1 tI -N&@weԈnԤ_:;;N}"@9\G@ANNmmm晟3 B ,''~ BeB$(2Jnn{X3iU9*;,`n>f4Lii)^y8;XG32WK]O?SpM]WEIxx/5)+Cy-AN)jc[Qx?c*nzjJ߯?8?r PaC2vً*'7qWµY_qV_~#7[ c P~iTMKgY?.`\nҥLx?qVMxt<_۹O3o߰q\&ʟmʹO㦷mmGcm@Њo1\0aDNN|N0TOB{UXk!zt" d"tvi|!= kzR= %$4Tiv,eMcrH-b@JҰO8UU> /gsRƓ?-X"D^ w3e^/a|򕁎;‹.榻$Q)ue_-B |2jBH ~S+%N+ix"ܲ~{5_Dp]nל@VF~n~ ~$)+%ߘzrٓh[: 'bI&%>)y鯏rn_ܗ?f6=Cf?|^8&ݣE[yq-Wc<ɹN(ӵ~lg_F R M(--h]TC A'2kavSb㍹躎ihi(2Ky%?cZ?匧Iz8rBi:U%*%xcV)>m^z@?ؽUn45YT?q `ƎM*\ug)"++E}wн}NnS&!f0*>/ћ7_848e!~${phZoqR3ķ<qp9(NVVO_złS&( S^>fH,دH:nǥ*PKUAPNiرVҬ%_9Wt-m?3?^9Cߞ>}& n,FPE;~qWF$у(L8vM}}=.d( @* S ߗAoA xV&H-ACIU{} ZZZhoo'77L4MCiB!&ӲVӸg)c_ca- :XQ±a.0M6Fbni%A;IL=H7dhcܵ`IO9!=w9QkŕSgsq Ʊm"6FF( r80&B67`f0ڛa1!awRaO#ć0]/&j=} -eAK OPj9Vٳ#}`̑`ҥ:K/ min !|ΜMuGOF,pѫנ9P_Gݮ&B!j} A"i) cfpҩǓ8HlL{N%,#O6eeeiA0q-v ق [ $GK:ߪl7[<H㓃jhj'-k(I {@:N]kvWe=:EUL{<UQ)lɔ㐂,3ķDʌDz-bG2¼~U%i2ҏȱL qm1Bo }4﭅^octMiL;/f{xxxxximSŐJ^$AQCt>T,+ 8)u.,NmvJN aDָ]e51@#Αe t\˨ߟ2HXd5tn xy0*TTcbe刽G!i=.P,ea6nb\)Skk((6 {޽ p?@7bwfS*We"@Mϡ"ͭ4l·odꔉS;%m!GB#n$dtj(ZZZ(((8c::nkVQc/m8 1Y9noEUY~= vR8-5sMMy59x22v$dyxHoŲlbN2G,ˢ۶p02y2yy‹!/m{ 5"ֲ m;Jupڗ;+im `BffPn#͌mmjxƂaG"1cF,DU0BJch4Jń 3cی+/pRRWc2l$dy8n /8?QɾKZU$ssxe8CYYEAQ$}(**:b:59ԓv&KrmcvÈDp@J?a08xv p`$wo>< WP2$Ӧ`'-`֬YYm inrZ}|l2msh\ґql pz,~E%(aFMmlPy[tKb]|ĶTux=۱,+)%iKIq1ӧOATEA}LX́46nG UU \>PY+S˲ }>iIֻ\C0ei 7:IS^{}߽AJF,(~B2)4-7.e"pL91c4˫ ġaѨ1܆V6Gډ"Q~@7nfkڇ85rʓkx7cto-ؘh < 80vvlikkM4Ԫo^>{ǮLtkX*?Օ(gcYfO4q,ݗ v]"8֐^U&u52ct Bss  4]Kl!iǴiJTUe̙|44l2 94g6Vt\sB"EĶmTU˶gM47PZq:e9*N`i]rz)%c80=d0P]hkk#77¢=# 5?\rs״Lݬbߣ#{+mlkh&w褤t{Z.IW~\7|[L<UQDa;67|[,O7HXdLyݹs&V:3*>ddf$d91PqL;( 3gd 1}|x'8$Mii%QJ?A5F+33vJJR%.Yc֠*Rs`.R} IDATmYV^emC}1rŽ;D4V^ܹg3eb8K|u= ܣ,ő*NbXfVzC@L?p͈}shn7*eޓ,}!Tzؖ przq$Q# d|~=[SS3 ɓ'cYc  ؿSԸpۜt}n^Idҳڶ/@ee%RBJ7`۶N>}l{r,3eS>pwy%%>_0q]-.qn_34؟ŗ^{!DHZf<ϨXLۦ3u~cb5jI;[:HEFCNGm~ e}v"0D Og8k>\KF ͋% sR WnCkz晷㸳,:a7(׬7i&PXf @%f iDӴwEcpFٵgwb߮=/׋}1Y櫘IΆOgر{w!?EGbA: (ï(BA|(B2* k>TEMG23@t?mvbm9@s޹"dM/#l5R"B~H[[kP**ƣ**C}n}qOC22`/yX()(ɪע(!_䒋/$ 2{q^n4mY6mM6Ovvvھ8icH$PP/r`>?B4PRR,C}?{CT!LmRII P@F&vS`sn|\ZvqO:l4] gAeFłr=~f=)AUݨeH8}:Pc]Ӭ@U-PTux> BH"|N;q_ɻヌ(C󎗉l&zR(0m1_A4j#Bf_`z/eYlڸ˩XO!eX]Y@Uu*+'e˖s)))!''4C"eammmٳSZzg001whAm7>mjB F|z5{f 5u CFaQ_M@U.U(H:0T}>N{.V s$+8CBs9> BNn6 V>\ A(hnƲ,4M###C׈]HVU Ulܸ+^朹s J2-V\#%55ddf ѓ_X!FM S!KUQ+*>J/J4#7Rܼ@F&%baz~]H7p[UUeYdgty~s]{SmFutMs{*և!aUUE>K5fcwO󏱄EyYgAeFłPǞMۛbx])%HB*ƻ7m,[ HCNʦxW9眹dW`Z:P;u*yyyq_e礜4]TUM|>\ WvmYnEk~CV#YVKaZWo](,,Du,"]_YIFF (t|q\뇻/&ך)<jmMײWI}eCm~ׯ|] --'/?vصs/Y=5LqCXk#Zqe%uPPX A_E/()*7Obr$TUCQTWI*BAQTT*qRUT\ifq^{m%̝e,xM ӦM'//Xʁkvruw2dy[tbhZWA*2mJ*¡0q:u*~lۦNA~7fLUUCKKk]dw)/(ʏ^bwދ .~ pn0er0yx8Xd ˖- /K.9leŚ 8A8& "3. P*$c4KXY*iU%}=UUclذVܳ& %ӦM#?xĜ#p29$s} ǂ-60]׆ RUr%ֆa*TTTYK,S)U><n\'VZYTT:т A0_/yiF! R0زI)M?Ǖ-ő_^ze˖!.K/qVX/) {.1MIԤM^OzqUQ\WOn^`{3%foop(m(BFFEEw촙7[P_8|TiJ^m%yFoض6ƎD("1$ʾ+u2v0vvb,Y˗p2o<y^~ew%! ¨/mY&&Vƞ{$33߇xREde{VQ8 7fBnn3fey rm È BPa.sey8 8Gⷫ1`$CyHܫiZ]Ӵ. eLu_:-DzPZDYIaZO]v7o+VP[[Kmm-_~9[laK0eʔ+Ǩ $D RKv::´4wkl~8ҙI#4[:MS 2dBE)mDWi˲SjLˤ`U D#.>"e"Ct"[KA~N#g}FuXAJ}v.B&O<67UL4ML$I^nN"\.{ӍtMFO,W9#z\h\{MûHK~ O1’%K^bgW_ ]xшeLXFDbw{x}ٹX8o. &|Տ|OӶ} ۱K qd~C{jOHqEqRV8u}.YCW㨾aW8e>=͊u\2]\P}C5X}=X -8_ظ:ZDz+̝$c|2Vйn9 6E11sP%=Ou`m 6>l=7s-U6×Zoޮc^u=7ӑ L50,L~ SZbQf 1D%ȔgD"M,b֭g08Z3Rw:Σ!-.dծ0_n/=ꦝ?7 >[V퍙Ҭ,^]?6da,ͣv+l<'IvGʭ`,]L<]c/?1{.װ,x*U >רK`j[͏EdkuE\WSCM<cs4V<mX({` h[}4O\57}2{3ZHӶ(QEPMԶm UcB~ `'*e4ExOu,~ܖNcݷk/ɮN(x%\2ƝUx*i*bqݯpW_`:& nZ;vR"_)wY{"佧q|L{-ܽfۯ' ofݚ\!^Z:}X70GfN|ORb}\}ZWΆv޿3(Zv?u aY|Ƨ g|޽Zt(߫cضc2vbM/%;"A4&_x~x1 fwn=ы{~sKctسykO=_AQ?¶T]x& ~K\u.c:&d sXo\9X\׆+Xy=s|yxi?/=\O4* f#e_C@  \rNee E%dh铲09yE&8V16u S&ׅVXc`YxЗlBI }An>/ n>;LH·9> (%~AZ:#UC#aF5\(9zL}ofY h+S`cb98 (6Q8`Cؖ,5A4Lt3dA|4__} _e=DZcXpDHeֵ 'YqF-9.U/9-}tw s`OHD:Q!0%[I5? Xws nyC}/$.2xZ!as\? G$XQ VZ}l~9<>~r!~'f|q!nfn}qNgП IͰ©_*6meÏq1#7| OlT&4^]Gk2{Y9NV fbuv` +N\3U:;"h #bx={֋̎ ޷H ô{<@0jv4Y:⟵4Bd&CcD>rrD  ~LLtގ 2~ v [!3;PL:CfW=lMk-utb:}$3'лP,5&s?+fb2w A,"(H3i vaƍe-(d뇛V^A d_!x"{TC!}r`#HI ==!Pb\O߀do]^=tX:u^p12մRp}}974%ӣpyrR)Gđv_SAg^=tD3f|<<<<<<<уXǘ³ xxxxxt\ IDATxx W_}5YzxxxxxxfҮ lǑʃw?=<<o} d,ؓOױQ4UCSHIt]ǎFqUU6B iۘЎGteaZ&c;GWH<Ν(*R818<cG麟#@!pAff&DL7$EPO+ 841[\Tl!jFt]5P$R+R8nP)@DU B$9A:h|"~&7:<_"2 >@ )5IHR͙L/oMH 23-6=B:~2+32c5kC=~}pca{?Y(8K99G)zq䔙/B <%z&3!ʺ, V0bą@. !%>R\]<::j`_JmoȂ]w`Gb=~߱{{c>{0Ɵ#5,gJ.Ӳš E+jܝ}E)S"@->F!hㄒ 1b`֔(1A pāVTh  MPV RVBZC^ "d/w{B.O|8 t^)3{pR H4@0QU 8E1P CfH6#>|TU!8G*6j8@+b# m rA HvhEoFTÏxc = '{pSJQ C1""琪8bp8Ys.\ xR.T`zqR@1xܽ@=rJ(p^*[+# >}V%炠H/hcQBGU2n.GN|S^XօryKvRjaM |B\9(%s@*ͮ moyu;G`nno6a < iqθ Vn[hh@mD+*Tezڮ \ R1)<>؋=-c/76w !Rx<“'Op1 ?٧ RRkfr^7; (;+ ZzJI2 Z9ۘK)s8/?Fl1>ؤ’îm9 !=@ W+l{i| /z>?ns=^ ǯwm%X<r^(%Dʅa8qp8v"˲0F@qBE38XW%ZA("-{O0sn+7䴜YS"lHsL q^GpD6.(%غ~ Eh\ ĮЯFu l^(ǯ{B@wMlHUq΁Gmyt>E!кԄ"$PDV%8|pmD%u]q"L8䔀K.")n 9&d@$Z'/(6ih*RR#Dyj<<ߓJ{CJʒqwWHB&ԆfBAT*T5DmA@O~>"HpA Ѩ(_|9 {b/8h)DU@0 P+xﶄ{8O>ᄈpwwg!PJ漜Qr"q`#ѯYR&ĀR5uf@\(91 晻{֔ #P-~Us &~*Z@52X^xx9Nj>¯p\0~o>o'{ױ{;w-hS/U *J) #"%,|>sk<[#RNLp]6qNPL  pȕ1KP3qJ|@Ue>H9C),#scO!9Myo# EN}ZuZweah׋kdG881 +o/?1}_`)+^T/8 !:OLӁa'8q>%gj"'w̲, 5vs8v@ B[- !"!8r5#==j-V$hM*|6ǜa 9'\mկy<)0r),"cGMu_/ȣq|UQz{&G藶8oɸJw#ڝ m;G |^qdYWpf<< sa"hˏs_-֒מ=4XuAPWͥq' Hٺ.Y\o6bRL%ѹU٤s(@3rV;66kS` m xys 5'~ j%?.:poMx0DAQk}{7j' q;o1B^SR2SqB%uILLZ3t 6yI,k$+p(RaM+ȹtFp! ޓJNK4'#!}Gm-AJuMVm(D`[Ӆ 0y|9uz 8x;?يiZV}u#p۾>r~[o[&=va?aI.M\M(d)w`EZmI6%`<Դw/Yׅy{{{(vQRT9+9N'qh̗{/ՖEE1FͲG~fpl`?H{hSjI8gʺ.xr1 %AV@~{^J)\)"?JWGmu~FC>x/z?ǿv=c 'p F<]̕D"F80~|Ʌ9-N5X֕RAs&D-bNZ D q9a'|qxs"a0dZB/b hmԦ9"f'qÑiBxcG^ 6%eCBBf]WV +a`p0<99#-'=;wQV䵂LAD2#(>%:.`#|ߢXR+pУ_[oyW;} kZ'LCI,RƉi9i oq6B\Oq.XѐRjE&10 )Zry >8@۹Ks6/,U_1q@-r_4WAo {xښa덃9N69L@iHE#{ãԴR9ggrɨԆD,9Bh? MA*iNkUʕȕ=n"$F/D6_p *?A'{{GKe a MH!āNj%sSm&|^Yʺ&>R9#96ֽ`]pa{YO'3|n$=\!nR((yF٧/by5$yi[J#'J b3K3͋%vlk*Jʶj)wqNRLB9VRZ!顥0Ɓ!Dq@ CH8Ǻ @  =hE`^B%OZwaV\$/RvVE{euA&^o>+vE=b/N}[k|RjitElk{%uN\Tr:. b {T"68 I'9 4ӟ)!攨"8L3R}]J.4zIl]AJצB)9㽉8ժM(o<Ҝ&RhE-m3sȩ'ľYTq]j4uj]*'[Kta(y5B3(Zm"+*+=ތ\5CV$u &Boз1D}ݵetCN</AG;Iq?"ޛp*U;TEP H"^pazu $m! Omf z&0D*Bʺfqf]EpGaPmm,;\Z(5=B0Z0ٶ3qsBFJ!FeT-伂wƁy9imxl@uzZ)'Q9UvNJk8qć#F'Tee]VJ.5RzĚюa6i 1lJ/8||nkqkMW]o׭x7{| #{Gj]B{gUvc l{DѦynrN5aXJ) aDs^h\5eqHK"/Wkph*,/:`FV6S),js{iSeY!l|s,j 4Eb"VٺijCCL0R=)wq%Vo\a5 c6jjHH-ڶ6|tF#MdmH9R ZUa3\cl ʑACzA\t@lVU9wbGFyoRNc/7va?{opS 3u%uҜ@т ,ׅ,qUk*)+*9%4Owj,sZ 뚚 S@V AF4߆T*/\a$#ya9)@*** #77rq!p>W@[gV/sF-ݦ4.4-)drЊ:GR%ք:q1T\|HKPyș9$\G!-=oͧe qӌi6Eo%)MEVMX>f8 ?㝆6)8^ڂV8$U*='|/7{#{A{qlhLy/TiԂ) 8%B`펁yCh6 `0UG@ yMD3M|0O# v?D8߷kWb8/ ζVҚƑ-VEm= bh㋀Nȥn+l7òfD*0Raf@A!D,& {CT[a Si[ "$6 U1F\P`=-Pdw,va?~mF܎gNmn<2m%҇4@ ̲.,bJmdl9@獬r"ϒV֜1p^=ܓka'sY />y|7~SL_%0ڈ#n'il$3?30V(zY{k N`#.b8)gf;NU1 {n;oټ vO{W~0\!:℔Ӧcsb]u!:w]qI<&>&~AQUVhne^mX mۨqj^A]ַ~忙㷈@*8xE imДٜj< x\7ވqǑiasq x<60M#8#0Mبj%İ\9B2#Ӊ/^憔3MG Xؕ0LNX ˲,>[.4ah7]p㤭iR8~+B0T4WSŊ1ц$Eɒ6:0FmIbd}GȁmP\#{]t"n"DPl%MADяv=~#{W}PKٔ i]C,74!zon33$C.μ85_G9Ϝgu%w'ߒO`ehu5bGi7u'n/v{*t&sVjUee7Shpss<q`'Gh?aTr9/'`2 NaFrfwu벐SLəqadO&ԉ@Q>|%1nϵUXIJ,˺! p/ɏ_^F:bRRcMm!TvBB <:1pTx5q1xGHTw~۷{Ʊ}0n#|;L3r˳O#⃙$u%xOjbо͕]#{8D8/gNxaX)W|*BРO?'}XD)A6Ai{AEXH3 \Ւj&90XGWܔ8cʰ. 7773nG^||`+$RΦ<-s~ܞ[؞at=vڐu]˞&6 9$0 +h-ZYلW%s)^@1Kp +?Ov=~DZ#{{-^Yrt_`+ Gd6FZ+˲lcyfG1R6<ŜKS 17' c7Ñ͕ˣ83|@.iL Zq %qp!\!B ظ 6BW .o(BNclm"t/RbWE"^?WCaס?V|8]u_V^/~Ἧ\,ɰv;x)Rk᭷v=~{N? Ɨ kzBXgQRklj{p{sXj@hIefz/bZm Q0΀qBb8c'0u\28Pjp//H9pϓOcCMBlʈ3jDY܊/<)jPN'kGv/ve߻?W\"moժ sqyŻq^:b+/ X.z{]v^_]_i|ᇭ68 ˥\#`ݪXp.a-,;xOl3kV ݦ/`\/JUrlHJlZ  bH7: nE@msͨo뚕a 0stS0FqO}Fp/Zyr{KsiBkswwHBlbN8nOfme=['.W &,-^Ta"Dy/^./˗v϶SbD\ 1ȻPc"a,{M!l}{ܵDxY{ɸlFNSv՝n7[йk=1[B3ZW`]Vr*O 037O~#yT ;D a[i8OӴBeoțT*$}a06ġ@lAez.\9:;?@\Go6V%鄂/z3@?wm10 ?u !24"Kd݋= =诿g]q!q܇v8f_Z m`6A\@q< %~XR+j U 14ᩭ.k"JQ*d)363#/MR#ZޑS!č-a1xےT\F-KS~Y7xRyZEõv_ضM̘L"xTqw/-8a/-~ᇠfBc/-يôͮٓ7YNJI NBӪ"ahn=Uz|>BIdJn>v~v^R"UQE~OE!W4H9 wwDXRTHË3xppa'\)pĕ>!Dno_goA")HC# =x6ibg>MpmP21F\qKBp~qL12@+U .xnnp{ a`x118y`0OYgJ86 6jvf/i(D58TEJ%T%*LU" DD"E P+ ^ e\lxh*jC:KH;H_Nk{7}Oښ[ DaK1u=m]\6߂hosf㋳TSjeM /m0DxB#95r!慐kbWJ*,(G;:={`We9v/t= >ƙ(dZ9'^f<1DG*VҲnƼ&rUh&D=k1L D)CU3\03<'B8wwքF<}\80oF/8H<̠Ӛ8,io&]GI_"Gd*;S Y!u}UѷLM<-kH'H(=\#⹠.gtp!6dh7>^0dJ ѱsdCMٌ0Ikž6۾^ [|8+ú!,Ai#u\~L( Ǥ8|| vVBeIF!#:W1ec+.r᱓jeu]9bS/jbɕ<{:{0xJY9f@~8CP3iIH} Z@cH93jA })Á&n8r7Gb0 n)sx<¢FӁ|' jZ 3x0M %A7\EXr&7͆b6NZОlm~ ړIu- v>sD8iNb+a Z a}mlM=_h(Yg>^C[Ԛۋ#}b<z5^q}y ?{|c/߳duj:;Z"n܄|Dds"<}^QB&WQ $:kc{J0!]ۣԼ9yv"aVJT|=@ Hi{0M#y!<"*xQ!4Yg! #-`x a|)0(r֕KpjaK̤(`O:Ҡ]llw!ƪ:ZlZ8üԊwv]w56Rj9OI@{8'癋Ca'8p2GG2 5!D"~xC/b`Fk!aZ?fO_E9=҈ZU1J!Fq$wLo C 6B-& .]hihQWDZOD2hVr&%b+6މ6$AT2 .HMsq H)x/uL: P3\X/ņ*ȶlDG{_o={Z{]ծMgU'cu}Igcl_w>D*7NeՊ`f\JiL7L5.F|0 vܥ^}+6DKlBC+x21/X\UXu;`wƑRK`4Ept^xv?g>Li@<3#)D.>ssID^8p8ptF9U0 '[<C煔 O9G"kNT-P͂[9oKpOo93E>{0 1m 4[qTLhȇfd|Ϻf#I&aMeR4.9s<њs!}~dy1R5T|f,HĢuBYmsMpGʖP͹ 3Z5d.f弧lbOP!xTےEp>544y>S"1t/}+&TJ3VoxLj]AH#Zi6vXDƑp:/\ȥ%mV{_J9o&J5%T xo.\xN3Ǜ 8.W3~Cq.YE?i8LOn <ʓ#yĉ'hY9NO3;P4gj#0xqcz92x2RmDcƑ81c>}0$krmr9vÕ@V{C\1 y?2@?xvCyIy8YuMjnTmD,IB!6fx|noM-^TQVlݻa۔h EkupNF:eB-]tqyk!Fp-Lצi$IB!8Jac8":XBP+"KS70б1rN۴ǶPB%ɹ622CWmk5iz0PRGk͡al{8yB)w0LAXv!eBh5{IXnya@ʌi[s.c9\kc[OI$wL*µ lS4tK_w䜣2f}}Eqn@G?NZ+[>u x񘞾 l}ʺ\ u@f~}-F[{mk7l2WD?Iך)ȹUڥK-TQG e*i$i)?f(#%AT !-B.{ m$q $C@=߄Tb9#8"Mc Gmp0a(4FFFz>&HJLq0u0pTen 0"N$rXYHjS(Bm#Z VlW'8Baj}VL  E Cj9zA( l &k[JQȹ #$II Tez^kD{AL"`!BJ=Kl*&&{Q+ horsE l^o(ΉӬ48}Ƃf`*A U}蚥r)#i,Umif2^|ⓟCp8lԏaa_է۽ȹhl+Eċ*]߀oFa>PYðGWBzE՜q5-aɋ_F,+Eگ0 =M22Zv}aX8!e$$J~MRpOyI_34*{_2UMSiB$IL6@,SFFtQi8쀡a$fhp%ڝ++,/-RdiqIJ q!q[i82NHu$(K^SX(fJM#cERfkHs.z$2ReFLG!DfLLӤlb([ѐ2jPV 0IS)*7|d1޺Xl:@5ɲF @O>xI˦#ڋr>ICd-'\2C4 48N߀%F8t]_A}h9t얏G>dFQ?nes{5:Mef;"VvIT *]i+2ַNSrm]uy2]$ߣZk5W}Y2_BDr.t\!`՚'elC"LhٙZ޴ffY]YUz~D*dɍAJT R%XZQL/\Mhv.ŧfxORE2zy;0u &<+l٩)$_)a 8DJ8&ORl .C:EP>e% <\'ئfUvtEDR2L $QD1ud ey(dFU}22tiuߜN$qDCq,r C)JӰlbZ&&#M eٙ+JGa Lad7(PiiW)eӠ!eI4-d+%h$h"cu$̘uYZoh;E4'lj! n/JdbQY-GwY Fc޷e7ؾK9~|b*/ڝ#>%H{:2 t L:hZͮAnC5ZL(ᵐ 4~}A)t45hd(=Gq"[aV֧^ekG1RƐB>cil"#ץlQWPZO7H菊S@ 0L X<n$ä baa覙u$}* FQ1㋐$E1_u\l$ Wm{MZO͓*- GIj)JfPȼ: >JjVRQ1 +hQƹ %L$^b]i'q6QQi3qb9.ݞM+s6~]cY^̎$ ?,bHI"I,SD} ad ([cbSl&}+he%9;&HHֲOVWJ#Yk",)R)>[7& u6WGu7km># Jbi'BtvֈY6A6qȢk!% h9@ Ak"/I9/N}h~k=֦4I1Dv32޻02?)jOh*A74( Z5 MO"V TbP948$N0l|F1tZ=0baha9)XnX)dE °ȗ*aQpcZhIBq I@41J?_T:'}BaP^LeJkXCZ-nPɹy\'J}( UD7#XFA&R^%M`I=+BõM4L!T薁F)Hi"LDL )QHq 8! SLfr-iTifwT(N2#`}(]e B<'!XFhfc"˲Lϒ5 X&Q7T?$FZYo31pҟ:iٟ}7>e6Km4^)kt]>ٮ`g7][:JS-͔"Q|#4 BXi3bld-tF3-B!( و5=E%CA*R 3&1:* 2;] LP0BT) g4N0 57GD8w Hb6@it;mj_4!|9,B3 5SiɘJAqQVQ@F8KB0 F(Ы%n©'4W(Xzҫz>ivزy !4XZ8r di:t$CVW<|م:E!++sy2Q/,.38XAn ,N7X*c ΐQ CdDFM( 1,IDmT=La4A@fI C*LDt7J#Im I=|eеlufa Y#T"E&!2ʒ;S&׵i#I$㢔 M3>& ]zHiĒTZ&֕q$5ܦ&||}l lGO-t*kj?j) ݠSM! хa$v$S' #\ہd"LƠ +" ~BiaX膵\AP$<DFQ'l^ 0ead$؎ݨE&Rƙ> UJ雚tVTe*Rsm#&%WC*E%nt,>26Ƕh@RHcQ6P2hblmzAffg( EU BS(JX=(p NhSAR,Uð@Q(bey@3D |q E'M7Rij$EN&atA.%YHfh5a# J45!qnn]I}/>?shǪa>iPdT4g.~A:ZХ2̂ 2qMt~FI r*v Sf.xYVbLaXĉ$C,a" n$)aL;j7_(Wka:AvFMZfi6oL١80 ;LC'9x0]grbo339&vb!G>v:OmVj0`B}NXdlt`6~~l߱^}=Jo>&)U;~0 Kؖ88n>Ar&:| rISs[m"ZťΞgzr3jt Kl۶`@ γe(KgNru`PdӜnٌIPK.ebje(fzj)$GB)Gزu;Vg>hO\C98{Ebz/OqU?I,-/P,y~/A& 820mcqe63DsB{v M4Z3i!J2Ʋ]Le I q] AAx]?McaqRS&QF ,Tix^!i&nv,Lk8/`T[mt=4$MuMP.cE)},4 Sw?/ɴQ/um4?~SHp"ÈQ=uAS0d]nBf#Ô~,S"_V,llQ$B&xY /! l۠by; M'5PQ+{-l@*}7OAa|^aN< RƤ dBRKw̎kgӃBwX/n28^⑇^Ahv:Q\ftp~3,hE5V Fƈ?p?m^cǏ0=>&&&WH"MWԗ:-,ӤX($Mp|rCG`|!P($R!RrJadtnӣPrKTCݡVϻ;v(L8r(jIN"aKd|lk_v VzαcǙ(@$Y5(OpQn^u\gq6g(I/ꢙgx]x Dt5Js+kq]\w||L[P9zl(s4V=i䨔xÌL![ 68*Q_RrwRЦMT+ڭ&+:RF)AvEpAh2lB5WEƒeZSA*(-zk1anu <&8JDZ,:݈|^z]e~˱l(!VmJ uQN"4KӟO<6%' KGS:1L!*j֬Lͯ2iZXLO:D⌀hj5_(dB5QD $._axTJe")n+ t<(VPTo%+ Jz9f7mjS(pW^yݮGXT*i'_̑ws|_mo{Z;wp%r׷>4^wE'o32 PqD pyVVVEJI0M4<]ϣRqv4;=wSg8oA_L/W_}]󧉢*еqt%[xbY1 Jq E.u&h4%T<ȣ`99Xfn& eiq'R9Kip`[u˘ Ƨ"IVELۢV-s_K/g280oz#g0>6}Ky6(A }Qv؎؜Ngrrxq/ejfWu̕W^AE\zɥT+Tjow0LSh$"4:1;Fi:zS v6v7zRaԈcEvxɓlݲgd& G>C$^w=u8zgqq\A"V™y\W YJnfc8~ Slc}|k_Rё1{Ϸ ~Wp7myyYwy>x+߼vuL!%+ tQgqi(NqgXa6| 0] BrKla\蘦EخM ͜]hL",D6R˂d E|Oڨ6~ bN,TG̦%4AxՈh:PB&Y0R*5 vXE%HsDADضMF؎J CJ2## TP(Q0::FPP(a'Bor㲫wq##4W{&wMZݮܖtMVV8ג+ȗLOqn仏=Doz-}A^8n^C`rzqsc'9v${<_&n|yJ CjNg lF)⢋%v.{hYx^DϏyٵv,cYm#zb E|S lzr.dvn a|'_0t=(gO#7/A3ogj47k^w*_z! aա*EꭲzIM,>usye.Jx;Cl:'wsG,c@2&vtXYiQ()|SCX5g%&'XZZq\ǡjR2kg/@IE@YqQ5 A I""zRCy%<6ꥨ'>qazML-;23* EC)S3n:9 4z 1 n#)CC\xA  06>FRFJLRT*{S,ĉSM檫.gzz{5.B.z;/w}_LG. IDAT}ǞxI>H,%;/@'~k_~-_qv }ӧOqٱs_ǯwg~,O?Hb)¼ ES= 21C"cV#Zay#HdBVuT+3We ×󂋩&8aRL B8T,]A7cdtv0@7 Xvas29=I\"{25=N4[+l2ˮ t$J%(%\xVtU#0Bz%I뀆ԗQHFGF8~RIzO/Pho}l۶o~N4MjU C0<<`dt/~_غuHj<<^)!m\ga ax~͐ۜ]>]p9$7fHrr0yE$_,'=cFLa {?č7H(^8xjB3SnռmooK}u1t/ JW4n*wQش}jB!ρ3gpŵQM<8(O%![w̱ZW PXQx$ΖM=6ffY^^jwsmj e::6904QqTWđDC)0Д_ŗڨm4?aɏ}tHeB,K!I@0!2@r&=PrTTi6[~@gH.gbr (l߶9.BrqmP | C4T+ԙ=翀3أr%糴[|;۾ƃ5/f͑G€/8gySx9rr&ZB(%n "sDR'.(] LVK 2#,v -ۦxyZ3ϼ@y&&&S*WxWʖ͛W022J].\]$Y4W^ (X^YB)l48| 7mխM,r r99u{633<̳|O??t{7׿J&)\17&?3gNQlE<~Z[mI64>3ofy 3[YY]amϟtM}i|ߣjb X i1av)W] \2LO__zίFTg(Ka]ӨV4M,]Pv 4[M0 f,Tqe`zzRBPde6u]eFF-꘦qs$2&/ǎ]?.FGGg8|aO}1ڳ1>c{SvWiu;|/>GP"?M4Mn6E>`.ATm,-.Ryky!eZUOJJVP.']ffg4z'N'v<ť%^@mJR=oR:*̲J30t~<JG:Z͠>Z21,#cCFլ0rav@jƾ(*drzS(t0q I03v7OFzg!/e¨UW^M]8˙g)koV{_x8e<A>J^Xb|l H(ЃU]'ir K?Jyn <Nƒ[(]tKLZー3\{ec⤇T&SaF rers M8NWjtC r&lN8RP.Wt]86g)s,.WKyk_CGy;3=5C4[mnt]昞`pʷg^r\?>Fys=w~rgV.uϟwMWK@Xdh`|dq$e[l‰ǸyiwY\\d HS%T(qםosy[2T0><q1;;ER"W*==BRfeu5oj?#gΜ As뭷r7h6(˼=K7W]w / 8 /06: J{A,H^:Jmn+{y0P8βif;o̟>`Z \{vS1bٟS4S3~~xGynSԪEt]!tEeFcC08X:\41̈erjDQnR穯6RPضMdy:\$RaZ rz \ץR.u]lj^#ϱyf\-8M0q-0`uMA/|Tl6)J̟"uR KH"I2B2aP)1X^STIS0-^CдbSg竴[ )\VWWs$ VXF@ӇtWl(B1 Pik,TFhJ`ap\? RR)O. ztm,dhF*c&m8y`iíR /1 ۶9t0]jLMN!bRmmsu+ 豓l߾cǏ[>S H4nw1vlLMxA$MivLLs| mh,.5.QS,) ~I7W by&M-|?ŴLDBr)K8&wt$N81e188! rR?q$Iayy!> qai t(KaĴa7uATRhwZMP!c@f>EʈFc\>0 zMV :$I+.H)2 5'ꚁR!gahJC4l;c}*EQ ,`9&t}j*^KRC& Qs%HI8p` 4{' O>AP=g|TfjzǎǾSUR1ǎ/ٽwkbC{),,o~_qh>Z6/DID!Gɹ6o6o gOӊdۨژ O^]FƆ࢝ ՘:PR-3<1s>ũc(86^˙>s1Gy[̑cG/~ox5ݮ4F#GNp<_o|M_.XZZ2p.hu4lٺ|b ;lD#h*T6DvhPV1LUj,l4H\jDA(!t ׶piYglu^6`C0f000|@0$#%b%)( "! e 66޺݋{:=vj.VQ?b>?'Mbf}jV~dYGxkU@୧KTUj6x7 ;зx7 .Rwo,Iv5\]ik咦0"|˗g%)J, ngK_O?4gL,U"q^0lca/=ó<.$I0x_DIoe !e)yѵ BX BF !mƘa>_nۂ3(EMӂpı+?( fh\rؐk<֢ !6P0j0}O6YP8lyxuӱChV!RG$Y)y1" Ds~v¥KrpOSI(J9;[G q2mS+vw_y>I,EZsfmM|W^"|`'ݽzI U~cȻ|z/> KH֬VK&G͸||&Kyjr~~`<笗5E>a]x^|Ko|,hbdR2D:F]w>}7nzH3*Tup r~LXcHء42MPBқHJ4eX5`a=F(!p4&c,ˑJ%Sppp2DʒQ1􆾫ٚζ*@ JyBUDILV#` 1(CoqrBJVbS0(89=ag;\^ W^~۷/$ٔ$IXWyRׯ\V4u3я+r偫|cGaEaSɌz~s[95dIʕ+WxS0ΨꎡYQrr|V_CG 3.Q9Qٞ1=iuDSYB!w\.<@]ŘH)NOw^]ryN F/=?d\0-{шQs $65=гw_| dEAVhqx,A*1kʭ$YA㬠 ItC FRDiΐړ M[E';V Zl=6UX`BDI m4C[tHTR0ujk4wqI=X"臆$Ho-&#FɈQ7 48>>c<TMȋ) ;{=]O6gl]̍[~|w}7W{kO?E&]OEooƧ߽jֽ>d6#M[|/?_y~{Sf9_u7^w> ܾu΅햡8;=kg"q._A9mדR_ IDATr/pv6j XRRpYg9zWLvEx4:)m.XQQLk,.<xcQDg ]ӷ vw;zE9*1^G:i<>gyUR1_G ɓq5;W5_g5??$IIz7I>.\xp;!ŀM\1\`BqHv^9/<lk 70K6fp##(X>x:0f !X1Xc8P )@@0,9ߣY⬥o{<Յ(ֱj+ =MRVUME,WkˏO/~?98GDqdc_G''1X.((˒(999a\"Z+8b2Z-mm1b3mmZs 1ރwa|`ww pqUƣI&%XLh mZܹ}0 F k=EiQ:B)NN^lȋ~0e<- HX!lHI5IB|套Hk 1t jBz`(b<X,aGn޼@jc$MX-DZĘg<$\ILxx.C6 2*@}J Pa7U8)qx<>PAJ"@HHRa ba45iR7-yV#0"RR"gLVm[tQJ1MQZ1MHҌ(ؽG?LS;;׿(۷op$REɨa 59տ |տ k BL9}?Ek_W~S(8 CGRhomo6 Zk()8=9+|VmӢkhʣ"8{LSv.Z.g-IQ5i:"!QD; ] SRid`B(b!̅d!e1S 5C2(8kJ"w|`kk|x4"!Q"ٝ9scE,I0(JH $1MU!gT,GE~{x->G,9;[DJ#B4d4,s$xnӟ|_wս~WQKNWENsc!IwN羈@pvr?_ rGǬ<#,*4K醞XG8,OIcgkLa}x9$EvAJ)tA3}xy9^pƢijtٔSƣjE5(B8au2KYic7oNsY֔G$%q%1ٌbAӶ\x}%Gt}OuHUsv~uhbd78I+_y){{p |Ms30O[,-wQ7kЃQksH$iR/yW,Hp|zm"DbQ!Fx͛Vk;ٌܸHـ$JPj6iÍ7Cu4mC7 Mд-#$/ ڶ%IS]!m tRX)l i=1;s6l8KyΆUEg)Y.ݦY·+ qB.H{Tx!"&R!a-P,ϙMg ݀ :JEi懔ԩk[5}8)4MxNh>g]s䟰wӄ$9:<%45m;9:?я^[A˜io)} IRtŽǷY-,KXqr|Rw["kSJZ072?@׶()1jnxe%漠Mhb^cvq. $dBq'$Y^a㇈Zc6ݢx B8f}q#Imt,)ƣ5hfM(ؿpmBo :錺yv$IS>!`ݬwZkV4]Ks(ƠMcVS < ~?Ϩ"L B Eg6SzXk*~4Ez&GkͤaC8n03xgMӰ5yNfDQD4ZIʬ`[?58W5_8?P7<Qh8R1qsaz1A ɋ};oL,l4db`4:{_[VBcEl_%iwbBfgz\zZ`Ž@0^Rn9p8)PJҶ Ũ8Rl}4$@u6Zz`]xC/+p7΢PYH)ZkfB mјzR4ȲxLQrM %bf-r1$s"I3LtĕW8;=\{A"`^5r//9?3?Ek@ZOkH)` QtJea L3Έty9B꘧>4|| _db~N(4]j8Iy#5Yq_U("sX4-Q &XB09A8a13t=y>cهKi:exY0Z0#35GDQ bz]cEE锦n)|uM*X  7(bM&H)mqƀsH!n[-NON3Y'X7loIcqBUM$0O]G f I pYkkm0iM]GTUxZgkަ+Lg!!k<+QR}Uf\ܻJ۾??V]>BdVkmj@+M״q &> Tc4 cPݝ \gZq~8I8>>akŪx( cɳk#z|(K){QT)IXua=1NBxT:l0Q6m{9"͊3lh8\2x )Y_1Lq9opޢtLFkږr}r|rsŒkWqիE|=evGN9Ć$eU##Q*e❥7ynuAx߇cF(h,czm4>#m._|D):U_<` ggg4MK$yɣ>N̗sz̓=Ҋtѿcx,Ɯk'Ĺp`u ((˜7DG(h"Iб,GKw֢U $BIZH4CD]'lk~XW$i*"I%2|`yʰ"52HExFZ M0Fl8wc /Kc2 dHSڼ2SM;[ ym:sTxV1xI4M2,z%+'ܺ}hptrd2%r#$TU͕+yX"(8*X)Q0n:Z& '!:$ZJP8nrqqJYvWrjۆ<1pvzJZSW."|:p6iM5M]wx~BY0) yK\0aLlJ : !VɄɒn6fH ArS!Ir"iq%1[}Vj#$a?'MڶỾ;Y<0=ZF(B3PQ|~??i[R(I9:>ac%Z0O~>ȓ58Bvc@+Va=-4qs(,'@)thw:˹ﱑE =fâ$I}ټa@-s sP2a/2AcZJ -1Asr<ǚS,#K x=NONrnܼ1hmD7X~E/$nÔ#4o}O IDAT/rIvd刢̨Vu\Q;, ) h:x8`BXWp7 އ4NeAEA^Rn'3Dc !J|O}O8yHCIM۴_O$OK/ѵS\|^|qw 1m ;8FȀZ_^`: 9:<E+M?&1BI5XbT"~Iߴmp!mػS) =E(g M¶x{"]3k6l`2DP*Ħ^=bU(>(Zm|9(#&/=8썢(a~ rf mSf[;;AֈcuMU 8h2Uzdl()^D5^$Ҭ@zKmQ$l%5uR%ށ>?zIx;ԽmTYw eQPT떪nHLk0*a@pf ysQ泟'y5替; a/Syʿ7Aa+R!4 o2ل9<WxQBO<Ico 7{,}g>'>q ` @RTI,{@z]k]2UvvZҮLE1' Aйg\JVR4T^ܮ{9yxDaHbsQ24Z.cHa`*Y&/jI%h4{^U]1 d*i M"Cig2cQ?**I U"C, a'x K:2!33t=EPUM'"t@4$90$ <639QC BFU3T-òt I@'(9tx81M$KP3\\w ҙop$8)FsnR)6HEkEQ0-(MbI7Gqh,0 ½ Zg. KP)]B cDoJFĨq$@4 -- cL$$4CR!hu$1(Gu .Kb2YBU84Ibt]ۛ4&vԦAG$QD8dW^v]QI MՐ$ҽe۲pO9>#BJ24o5 &.b,) tZtMAR M&=$T557!g["1h(JRTf8 0 t=> 3՝@}c`jf0  !#f9dEX\^"KE,I\Ƕc8%0`>~> /իHd J* B^|q0LKretMGԱp0:MŘil#S9B 8-MÁ$JHҘ!$l[}lK8Tku]!BaGKS$YrK!\'{NYB|,@!,)\EQT(HPu9vLgB0M40ldY8eiLO7X$EQԽmd1> y4fuD4$ ZLNV),d !*k0?=`0{Yc +<^aK))s];{zA=nN@"GRBDA@ۦ\.JVj"28uP,w+FüQDVG1LӤ'x-߼ ,aEIm6RQ)t(p!k*<)>O!nz.Β)!b*?$ñ4\~B!(tz]wMVo0F m7x/h:Ԫ`;h^nP+39afvqVTk%17|JE8<PkxR*=_7f ]LCK8bH4BpD;wzuA+P[fD-FQ$d;tbȍ7OMeBY1t8tMQ 9Qm K nJʣC$Ngu]U]fgghZl&1!HFfs)3 Nt"u ˰ {,V%Ipip0MN+:Yic(aj6e(HȻy CZ-$lK' }0&Gc(A ahdXadY6(lnlS.Ui7N!as.ȄEȪVWtPnǀuE"8ceIaY^gyb: C'I2 r9ʢaxt=LC4A2)R MS HU !2ĪB"&(:FK{2\NCV%&Ø//p aj,C4 :8$wTU0.T(eEX_]XJE>Dc8h4%0UHa:}gw{H`f[!KAQ{8 pѓ<mƁ9xejr__6S  G.S\v ǶQP4!**4NQ nb m;gvywL/6V&yvwEu;9.^8GĔKEL]Cv#st{c tɹ9zPOwǫ;\w|fuE^<1r^ CTpHDdʥ2ȧlbh:]rt]lTkwy*C v`gw^wiɹ"lddI' y~ncFvΡ·oi)SdD ?`k?F>s0%-EQߏ$AHcCI2iQHQ(O|!/ Aqy#dYl$Y&KkbfzZ$1COM$Jb3VYEack+en y㍳B$')I) }4]X*a&Ycw8cy)Ũ~[-n^tB@ DzDА(UJTA]5c}s:i뷨5Y1􆴚¥:ct4@Rd2EUE86F<**iĴL&jw{x#ry.]D?t{LNNyYQ`BˌFC|wz |c_Dž?Cxw;ߠTh@z\.#I[AFe }VWVxyv:lllPT8v./R-WiLָr2q3zZW^u4MTD*ێCnR, GCv,2Rn:9nfiF$Y5 xt;\, )hږ-(S͹j)QShL0 ( bUa;#˴i&㐎Ƿ$@}jm,(CqDn>/`( ӘZ6=2!I"@U; "!YIg< 4&TeLK{鶍?۟$ii'x-7obyyG295i^9 w}MEfk{K8^7NITY7ƚv8p /]ر9ܺqcg{o< $I,..9'Gޠh**ab&jbs_gv~Б},5կp׉Ufue~G\2evzv?s<?gzk׮Ųm66q])\… ?Bޥ$IqvI0dmm$NHt~NM}j:FDq,K } 8ɾ%],K,.l6ql u2rGҥ/fm99 i0/[(q䵌m9tшn#r.d|4M@.?$S "fUqi}Ǟ:ީoCiKki~ CTM#_(0Tt{=VVV<$`yiY b62##6ש/&Gs| _VRyyz7[ܼyZp04L&'&)>CcbbBMTUq]EС#\tUu z1A ȑ%Au}0 2I'`Ya255su8L( {8!I|@: $(Jq0 UU˲*y8J8DYHEjhja"|Â`Oir()*2~im#+wa6;LOM~ߠ^DBՕ <;ܼq9xwW_yeOC/n1$I>IRQ.}WHҌRx)d`me~O$4u\MЙFQVnݠVE=<91E.YL -ckck:j!%n'Sa9i&a!aQ.0{}|?` 9.!#V.w/T_ Sq^4v.G4[-:niZQH!i ɡ*v8 I☉F᠏iK-/c1ˋ~?GɧjÇVlmmy" tbsoSK%^{u< t$%)GEW5qC}yFvR+Wr @bbb'|[+b8 Z͓bVCX0,tgXnш|>e˥j , pЇL=&1 0`qqYnnE͡k'C0F ֮}ۮwSw4m5L7i96 ikkkXICӰ UV)}DA>Сlom86.]bumǏS(<[?~EUIӔ ?Ndjjj1q拄;;4uկ>cHnïg}ҥKש0 0tr+Wyop%4c{{0 Y__g8bRy4Ee=w᳟׮_X,cYH8b$ C9)ܼ F**e r'di+++Ԫ5^~e#fsw(8+Udz]L%I~z.:)t!q{!N1 oN]VRd)[[olFb˲$HgLxW5ñtՠC?C\rVp0"|ܜC{7_E_y}lll`;6O$;D-0R ˲y6(#e w]VWؠVR8˜zpQ> ddiB{}Q$FV%s0dur9zLMNyCN:5>rc#BPe[TULӤl"29'GVöS a0}|GN=F4Y޷0l/\pr9&g&ǎ  "!`brLaii+W 41m|!kdi{+)zS% M c\4n$͐eAbLM@bqiA_&')\|}ܸ~oop!zAΟ?㏟F Ξ}s~ ѐ[iȠò,L5N> \x~u8pp?o:[{$vʭ[ܺ ~1Y汷IXyEffg8cNY&8[[[4[-Ξ=KX" * c̉G1c湳J% "/]^kbA @iFRayZ7jDDc9'q?199Mcg{`:B(v;®)4uH:I#(IJ̽29~^,䥗^bY&#oihZժR|{.HqZ=vjs59$j]G>.v-;J!g[Hi؆[|3H9tIm  =RT*aYb/|`$/^dbr4߲;v0\U{ȇzv?jU>0qY7) ! .^ҔFFoG1ZEfffҔM,<>\&mAPT|_AץT*3?7,//b:Yoj%Vn/N{73;;C㋬AƘCt}^ta0duuqxy饗HGyZ$X^07/aĻ=̹˗'NtTs=*4 }YSՙfyie:˿DDԣ~N?8Qti!U(A <8mahf{D7nLf4 x'yXn2Mvwv,i4 6i-2R>A4h8 Da:mKw^U&'j,/y#^DEoKQsީo_ݙ |~⧱m7oE!,S̠8v yl?KT>nҨOvm |1=>ƴtY\\cǘhIy·ne4t;H뺼+|k_T.۞^9H$qDaM0$r2#Op% N~{B79U!"Yhann4M) Tn޺IHD ֪>|ZSSؿE}鴛yAlM (X=kP*arr7jјhxO159ERAdޞAe3K3lm!13; ٳgVh:clP(^$TU=ǰ=]JĶGO7A_y"kBFDzk&IF7,PcKsmmLSڵ;z.w{;<ЃT=j'>)Vo9% ],=0t ~mZ6 ϳ%G4yΟ;G.=~^zA\f~nE1t7P*) N yA?#, yᥗxٿ? ڝ6Q].]Dxmј+)Mq]4͘X(' } YU|e)O>8wrQ s676DYI/_{ZjS,v ꫯP.ZFX$_( yf_Ǵ,.jqFW^ᡇDQd"zE& _ch&~=A#R.}7$ |LC' |Cm(u]Y]]eggҘ¶m K`XdoR$ q!i"b8U!U$IcM| {QiG޻XI0 +<6$qFTvn… 89'oq{ d84 |USx;f{8$ LNMQi}'319&RI~:Ͽ<++h\to|9}yO|^{vMRcana@ZS1.^cG;T%ןqp5^|E6HtsKϲMJ*y N|ޥlr%گfF{,`jX>fvXB>/n74w@-Ҍ0),.,%hv:].^իWi4 I?;b:ϻϣ:mS4kkkQ,z}X]Yܞ дLffgqsy,-OħimG1O>Y:IKy79wsss?9wq[~/G!aШv{KQd[FTkUZz0=&&QD&JE?ɎM߿Y( t"S3hƠcj ,391jm&g|'N܇ia[;C=$FucaEhpQd 8K 8]7KZ==n?#DY&MDFn 7da~柳bPTX]s Ey'X]p{}KKIfgI9nܺSo{7Ͼ13;M˗r~lnl_=Cj"Ķ6«W9 y B/?9:G>QLgmuޠ7_&Mcj۲C2yog8|0 s a&}S'çLs/P, FLOBU%,B%4SÇ$NbG Bn(3t]vtà0lk:iF>iQps8l:nFGƶmsEp6zFKTk/[w?EN}[N\0yDa$VI(cSݡ颌SFGQ lEXeaajF^ J"`D_ Ξe1ɕ+G#k 4&&NPVkk'I+ؿo7swvG>$!K.Yƛu<9pZr=oh𶷽,--q9 àrC+| wQT^eGZmcz΢X*Xi&I"l0tnYCq]: N:\b&N2v:mlmn2hpUw ˸y|7W($A= Ȳ,I"ZZ$N@1ӷ!<^1\ n?#ME _Nkˆ|mB:W_CQU:/x4y[[;DaNnfGRðl\ʵWY_]𡃴M~W =N( ´tTE᳟ a055kWt28p f0 qV sss;v~͍]>߃T3&1n[+ܸq++\u+7μ:?+tnE?Հ}egg7Wxlll"K2~+nOqsW.GRNI( <- j0?i4n&'Yh:3Zeyyh4$Dm( Y_*o{)mHM9VVVhLOOAP3$i"Ȣ6*ܸy0pNo4[MJ"q1y`0vr8}p:lmmxCAE/wYw@Gr)BZG>Qp{uPx#4a)q9vXXZUF6 77?KPIs>z۶,ͭ- "׮_ ) ؖh4b07(UU{?t4 puNIЇ=Jp@1S'$ 7o`y.Wyzr:@gLf.IqזDs,/Ғya*̒rB\J./]&%&Sfgwr rFw>9~9;}vK(Bx 8@5Ч=NC,Buy=Wy6_دV٫ " z.sŵ% gcYY4$cmdIX98#ClI1NJN٠?(`66t\.ONQlll ÐG؎nb3(am;d28EDQLB*\LCv"\7eG $(%Oqt 0[nl1%MTMP,_N U#G-i4\~˴p_x$/%J`hvko#*o?/,"˰t/zokoP;8@1Su(F?oPoԱ2vGۏy:[ܽw  J2;#RiLLl6{|9V9?_=^%uݿO^G&1J;,t*k*?SܻwY,+_'a.ELBΟVMȑkŧ?S~.m]7eW#*ۻ(*$,kf0P%ݝ-kc}tM!Y4tl{>KK?P(z8zlEQcbjqh4#nB@Ӂ!xiw\o98ChH Ap]qXq <>f" ut4U&&R*/^d~~ ]O :SSs tݢ^o$ V&$,.P(T;h7+T_`o믿K'\q瞿HѦ"+bW^yС߷ض6΀DҀ9VAQx{xiEt\L$B" k!\׮_7\z}[7nBF IDATܽw8I.6ٜA.o11Qb8s-y,fIӧNpXLuD0xpٌETk4[ulgi(4 ]79{I "aNbn$+C `}c{,JXfV˽{\fE2jaD@Tfiq{0Hd>V'u:acUѕ?q/Ah 2eH(jڍiX֣M45Õe T|)D1o[4jTt]Xsy2 S.Op%N9MQgwob"QYXX0 &ۛtMIܽ*WTJ%$A$cXϤj~BM=A=c\~2N… ]v8RWZ\vS'/~ A ko/ie#";o8G>oa=U?zQ fE y>CTw W 0&bVz}dYakk~j<|DX$SV ÐBKH$㗋yD^Db0h5[΁8N{n(LLLi,jFdtcHHhDDk!e~$IAHDZ5R@AA2˗o I2d%b,/2==E>ò,Ud( B>[LLVwg?GW7cvzg0$[XŠ7 c*IDQ\45^X3*P59v:4m t3$HAc0A(x$ȪB H뇔SLMϱɱ̑xܸu0IPuvO|W8wyYdYSOp/\x;׮7-Ntb8t8-yݷܻ^uMvvp!F\.CYE0Lް{_a2n!2RhdMwlV {)9F&[ҕ z>2pc8NF0rMe$q;tPE1[sX=nj&|AEDQt>3sdYYF0-r ,{f)&'' CnGHW?>fP*2/"gΜl"2iv#(FLU:.:ꑣܻsVcd M?՗_P462 fu٩I<}<3\ dYD> h4<|'>I.\x:ܼyvˑ#Gug9ODXNϥK bc'Ofvv0Lea~HYnh6ZWvFM\ |lGtr9(> xc;@2ee(,..r]\븮?@!iw%QpXR`o,˄aH'z}#B^zAџin:Q#wnߡ\*Q)XY^X{.b~O6P(v m&&&!)K2ǎ*Bz=6۶s=k?|/ɩSY=$J4 0BLDDT u|hZ@Edff;I!"ADz Y1 #AP"$!NC2Y Qظ^H X<Vw߻ J$t{]( NDXKܹ[;mV{kLwt0a}7nf$ \C7TtCe8cY(s }l5uD"(!V8~G0u~+X\\uSWDH8 /pb8BF˒HdhU9dQ(!Bc*fL~\7 ~>( JA?@pnbb!C/M;!KcO!v'|'Oկ~JB6u]AUT(&bib&pis9dIb0\??u\I' j 3DdEc4bRHiuGaH#gPd|.K%077mr9nܸA6=|MWNI?F}y811"*z*^t]LM70L IVF۷ﰽ3n\I`z*&qDBDaKEF{p8@5<#IbLDO4[-$ύ7&B0L0@TD1 r ^0tŅ} @tgw _BA뺈H$dYU#ce0iLMNP,[clomШ7pmNƲaX.S(㘙ZnݢjaYIPۃvwvypa N\6<[?\!q ?UmTU ~+=>`ar 7}6RE&ON33 ܹ,Q6S[-N< ?']C{a:BQiӘoU#cY:y}N>i wt`Z(蚆(4MzR;ai|K"?=t]y|H?7$A0BDtUCW50DH<`:~^}A$iNfPo4tA8zOTBUS,IcHfny!BL&GEeo&/e!,BHQl4dIB5B$"{QX@U4)Jlllp]8M|dYƶm{HѠX(P)(}?3O7?zp.*F뺎nhc;HD@tdI$^QHp硫*ӓtPU-677Y^^FE4]'Ͳ\Ffa?`8XHӟ4'Y[;"Lbgg/\3LLNr%NI~:\4syl͛8 DQȇ~DDazz\.G.l@H1"{:3*&XaS( _ @㤷FEY\Z"`nzR@Tdzjb!G#SS9(S$KƲ(Us {{U&''TY*eN>s\*2mn0tUQLrEUynpУ^ۧZKo#2dLg C y.i KSZ% 2IB͛m$ߟA 8,qɝN`DQL&|<%ke;lop|83Tw N]^HDA$JJe'cY|pFZ<ēܾ}J%( 6>яlK/c\%ceȋAR֎:.^Ixh5[Yaa4z|3a~~{nEm0??O^<ݾG@>_`sLڐ. H$TCc-.IWM aQ_Ot-En۶ juome 4{9u$O=Kcyii?ybf[ocS:͠2i8 dQ"brǎ#QȧIE M~PCD #'&15Cu&K2 HP,(Q(Hyt]Cq8{&q(*h"J6 <^3m_$yQ[H"4U# :"IN߻ ^AQ|"ހJe|@DddYP($L^ 6S4Mj{),pԸ {U^+d 2$ adfs! TPEQƢ4SfEY+IH$ս*Nq=Hzܻr~\'Z*2ay.Q'1!R,߯{{t{]>1~W~USY\Z}<'cUAߗ?uf3|ceu(Jas;w{nt;;o5A,;w}UU<u wɛo4Qu7j יp)C,$R(h[yΝ{%5mp=EU4 "vT*ezMZ'͒f70=33"uY!/}_E4Vaiy sywر?[H,7o&;;躎 b˳g[oOӡ055$ZNpsώt[Y]LayyzM Iif#vaohpNHJa\Its,Vca`Z/xq^&|t-LMV}Ξ=׾_qM>O#I"N"㠩*_XgqaPFɜLNNh8A`Y&c86~HW< a#+\ q\sF+nah@Lx$ =IQ: 2Qzc+Q/}->f}̌jd9&& Yu QPT==ij:qjy z}H20âE}\>$؎CHpz^x CvLLN24ȚB&z! *^0D*B,8(KGLD1UfrQ:f`0j@R _;cqz Kt;zT!Qa:C*NJLLT!SI|u]癙<}VWWi6tdY"X1VnCUwn#,/o7^0gΌxQQ.tE>ϑX;QVɵkW}^GELOOsR$^J.e8я'>1>ٿ·'E!(|U]0DEN?tm&*,v0P5#+WяϨ ORd,|>z]0=4UADVVY[;|ĉ5z[[p8IX^YٳaH`woܽwť%>++i>o&sz]KKz]$Iŋ:)^GLzRwT0$LNN277GG=~BgqDEܽ{Q|>71:3BPZB4$)0@$Sr,(2 DLRDV+7pgQΞ9g07;CH&1gϜ4uX[[1679VȥK$QDVS#2$4M|I>ϰ,!y?b8MȲ;v:ݱ3"tMqt""ace>"_; |YUQT<:AX؎$Kd2Q""\DQb1eJir<|H.ҋ/233Cӥh]7 "a98l6uٹ9<ʕ+d28hy>n J2*s]$Cv@03z""B?IP5O\8&c IDAT&뢨*A{caa].ekkwyMKSRQ \'Q@uwpluGJͤPtw.1c&qni69{陙y0?'?I򕯰׾5muiZu"^9boweܳruT0xi5 }4UDa$j5>\'IԩS%'O`ggQ e299a,..dxWm" }ܹ*x;nj>9{ 'y≳,--t`dKaE1r%effM:vi6d9t]'3|… \~EQ( H8LOM̅ 蚆;1 >я8kkklod9?l:SSSKhۼk,LMMt赻$P,IJn$$q>%6q,Z A0P?%A:ʀ G! I$i$qyr]SiZԟTPw~IV" |jUΝ/^wl:qra$tS+c)9!y!(v?k$ij($qBȒ"+DaDXK/,4 ,ˤ벷KYPMU$ Y5EQYQ(}tCGVdUAEb8"#ԮB$I8? "gfnCnݺM2 62-$Q"Smt:=TU#ɢ( 'O~dzzEQ E%H64[- "AG7[nZ `.$[:QӷnP5 QǂWIRm#^\6KJqq֣-4UQo{SEU!SaH8w=n~fnƈWq\4]#:01=ɇ׮{(Jݞ{:}_Aȑ| r,,KΠiX`X-ONsLLMsOgie? q\25x'ywT O8s }PJp@%DQ Nb4]j1m&aRi4aH̭[y`8dh#˧H}dEq]ڝqYsܹ7s@=D"m8ahXYl>KoG5*T)t4$ Enܸ4k#p#rY:6qogΜA4aEQ@VdTM%!6ss,\fv6K ݽG"(ٳOpppt-S\ ! ";;-H`8Ip .˴I\!c y^Y}Y,/qzMj|綾X=v Q (~ gF[ E!;\!t1!K{{dYVWW$q r%ȲhN!BNjgTe@Ve?2(1M3uhzNk~(P>`78Sq,+XѵTDQD8K6crrnɜz$( #͟ɟ^q֙lg{Q, 2Qgaq-j)qmymjkS>2Ox( F"Aډolo я~F=t5G0Yӱx&-!?0b;6AF! „0q{`? C4U\*Ө7 I DQ܄RilnnRf3xmfIo=v vCQG7 |@$zA0dnX$a`h-I<\UU} ƫvi" :&naXVqmUfffz*Y* |'<7?ھrvEu13w($SefTq}(hLNO1tlr< Q|{w9v(VSNvi6WrC,`RƲLvq]Qs99r00l A0_ebrkׯ$1obee>?/(ʍ7sTEk=gN?}cvp@,=JOiډ58gaeef7i[\>{{x:Xi吥%W0 F7y lYTU% B{{ U^>r`0f[ =tH,"Io#J&GQaqAxl=LF{ASѤ8IJRraZ-nݼð;ZٳiJTH k{h1jvu>nA&7UKaskBM}(@R$\!AQe$BEtC#&=T(\q7,.,Q*m)N3ea&a +*>T4/ F8fĐm "S1tcNJ8T MczzyDD?SR(ǺL&2i,k3=3x 9ΝBHcnaDZNT$B&$,1t{=8FVTڝ.q"hf]T5uֈb]}8I@ @7LDQ" #nݺmaLVGU5@'P*Wfŭ۷0Z}%IBE<w_'L7?Ʋ6$9.ai/ K҈L2l?JtsxIץT)s):w,,λizJk,d{ =8ƱmJKKKxסNu V>w€l.*lmoeYXXX,bY%y{^{u)F4$fm401lن5c"e?؆1Ƃ=iRZ${#\*3oDD]I84.2ovތs? e (b2|lpiJYre^ʛo 5ƍg;{S;;4nO1K5Bnx"2$ #d!q {>m14%]7_Ǐw;|#mxuN wt:] -,=_nwh4TUEEDQDfdIJedyNGuP"uLaQ Nc{PI|\q7JYi.C?L>UY/Wm;XX!9y3NWcUUy.c~'1W]#$(ʒ(IGJ+~4!h6ۘxK1\.|CIj|iDQ8DQL&u"%`< el6{aDð_𗴖ve0LFdi0b40YF!0M& C:._fwo'GG曔U<9|gopO" /oK/:ϟDzUo;ItZ6~~:v=#ڝ6/__;um4¶M CW\=| 8(rLSh *%^Ʃ5i6łS M$eo˲sUN7 a:29w<筦._6o|f|1[(=WW61MA(JȲ\**,%S,A5lƲ,,R4M!FYD**8'E%| 4.f vxvvb/}K+Hi[ KO1M8ݱ(,x6sg1mőHTN,f8\| 4L ηùMEG?c*VPZ-N:xd2E)yEE0Y9;{=P%k!,^'xxp4NQw|("ˠkP,Grth~|O)G*ao|Gfh!/ aXp<e+`{{8]p@*$ѣG؎!lp|t2f ZUX'8I8<:"" S |F |LBXjN0M4àsZJYPie N8eŒNCEX! ʚU*i [X]@ nb K^oU2͐iN%%1ͩlog#ҏ;m:0Μxt6%R S`tz=tӤ끮կ};w>6m,Ӧ,aoa*Ym~2aʧ%9Rd1_b=-Ȓ$N0 x Q;b:W>f 5%4e2*yIhqpx"!{^-ʑECzh [75$LLQcKt*,SG$ye i3HdUdmclLEJIBf%~5]LM4߿2Zw$J& \~ ?t;S\tCk5.(&뚪f nv;yb1g<r]F>*K)8_3IҌNd2js}0uгΊbWHt6vDzUۦne)''N>&}DZɲ<8}ԊjwllGsmGEJn5)D[8ÛoA3ʿ1<=^};?g}cRdJ[h6Z?g8??<ǭO#dVaXtd.qC7!??0UE^0,8=d08q\ݻϝ;o`X)?nsxtGۣlRJ{{L 4+_{I`8\,lʹ)ʒwի F#u޻}F!OHL݀_U y) 4*5|w], !LL&%EԆEhڤIFo蕎VO<躡Z2,$B7@G5MC%ٔER%xA:hyBؖZ$^l,tuMpƭ[7ڔem[f)Dyƕױ\Ӷ-, qdRVN˙gI4 /'S'KSW0up.'h Rm9$IA+x W$ Idtt}vPce2q|ͬp5rz&Bh8&O0II+_W??b˦,-4Kg<_PYaZkıtPI$f/۸Yƭ?~Y\l4 )IKow.[h YΧ^(BÇ|_y]7ui^ʒ8VcD~^cy|PVH_۶Ud>ܳno6f/,muv*yNQ*o$M)˜dlYm]|6gscBr) q:ip||LA*UUrttm+ˠ+믿ٳgY.4M:3/2hZJkTeK@!Mx UōF\~;{d2a`eNl>lb nÓ'iF!Ks 0TF#,S^=e mmmb6AUA'CUV3Oqm Y`[6U .X,+yeZYAY6k c2M, O|B4K$tX,Hq8x4ƶ`@e`:{nOޭtkkgtBIk[iAYJVXn۔EQ ,uAQI@,U%L+ m[, .ĵ]³*(2 ݠ( 5VAYTB44t(h)V NSab&)vǬZ"E `>pU@eNJIHKPhyUh8>:"Mbgb,II]d8@/KtKg>;>Ó1_Ȓdc&f`z:yQٖhIs XV IDAT6-,S( qyXԘiYhN^h( |6k;o;X#l'(맙Ƥij}~p_oTӟ܇o|K_^S'12_@YZ  NZ^^?x!AAU)4%8IH]Ӊ T-Bʧ :-bLK)ŌJ*ZjfdiBUI(e4k=@U)eN$filmReVb>9'!EU tm륗^`B~>y#p="=f$)`y611,aet-z6-ϡa dc "H(M1]L00]M7&?ciy eHy1ٜ.? lo+s=&I>iYediJ\6!*p]Ri9;;;>}qc'' ,Ð(tnɉBXr؎G²,y}{Wi짠BAKAQ2I,1M1'L&Sc=z/oߩmq 666{Ȳ*󜓓|po!t޻+ SxR;w۶9>>mvMBnwag4]o2Lxf8EPU bI! fYV~o2~ n>ze^WVl6Y.t]|biˈ'4MvQJˊt E!ӴPE¬vOC *gZYQ낮+aU,~e53jXguEJ!3ʪ@+cZPղ*S)/_^*$YMO>YwfSaΞSIa2)B8> <}0 }6W._Ӝ TIJL^x#ahxCgeAX:PV"˜Bh:CJbZMMVx2"q0nlo)JP_#i }%RvTRU \ҤDu40M4E*4PB(,HYf !Lɳх"-*/T+,/rLCĨ kaLUl Mr|M=zG^xUrUN&SLTcOq>ϾQk"?Ea<"e, N\[Y:]A{] )yYZeA\Ul>4(Zh`ꄋete-b&VDf$Eٔ+ [P)懁Z_h6"NS8˂(=8O R(ʂQ BRGK(;|@YBAd laC^NoPJuʲF~sː^Ǚg0I8>eQ9+0ާE^&)iҪAtK/>>׮][݀!` It^^[[_Y 5M(&??p8T}VTVS ,"tMW_ ق^{KpΜ9l6V|PwMűf3޻:H4RHh4򗿼:,M(Dw#hb[iRV@ ˲i49`Vh˲ܪ6)Ί3uu />C4j{`!4d Rthr8 ɲ2& @S#´=0IRːt=XULUG-&/)Z6gN&{"bJdc[6" Ix7G%R޽˅ (q?E$!2z>ȲdprÇxrxn2 k{7?M'?I,:ˡFtMi+XI\ǥBMDʺĜAcZ#K4]_5]g6v/L&3:hX.hwSaYYR(v˧4E.1 TЉ9Y"uiKH;fZ&q1(|~e 8.O)ӧNqE9Q @7>l41e!IUU±a^JZc U,KAx(( M0 ]MaQZʽiZ]*ɲ TBN!& VU2>嫑ɫWe)Fv!T;{诩nQ;E8L,z%aRbHIFg,o|[ufZí[swzvCQHL"MR# e(E$}1(`<"eiJeEA)e踎M& 4t%3 @Wp)]-b2e1rNTz hn1= ?a;9! 딥➗Tcc: IӤi.gc:ceczvKw<ΰ4=Ʉ'ǘs ~rQcOGe,˗/9~_$v ltؖE)%NRJ<ŪhUUq <_> Ueh4b2EjNU Lu<ڵkAyN0Ԩzhq}S.8S?$2Qlm)K =zDaȥK_5!R2Nq]r! !Lt:.I"k4Ln߾w*Ѹ?P%YahjS1؎n8ahVPTFwm˲=S;ʱPNQcu${]W1C$I" ah8+,B1Y1F<+5SXhj 0o988ER?`wwfIdojV¤%ɔxBd"+vŊ:GDS]ȳL<ױ10tPDDZW> i*Z}x{Y)DÑ0 BDm[X}N00p]*$ MSCb4aӲp\2aYL32MvwxM w?G蚾Uej{iQd>z>VVC'dEt>g41EY2ɒ,ɖ!YS"bAg,i4p|>a"ekm66׸v[lw~X]SptD)d)F@FzES'DYFeIJ$r:k@膠"4Bl"dxl9kzh#h4X[_WfZ%4~~m>w>$Ma/jiKǏ(KuYId)1yLSFevG,K5vwue-y8 g}ݬ$yi$M\H[x2A&Ae4[-zE^1 tA27 C@/E>"_Y#z32 ]y䘋/r&/| թ7f,0MΟ?C b1~>=,EJQʔFI:.,=/RsdF4Y̗SX|c(L&t{=Z!O<<_mmn룣!tpQrV"4Ipl[LAYY` gLi&yze)jB"ZezC꯭!LnG+ 4y7fE'yt:(*.iYeVv:0Ά0}! +eal4pu1j) MsFPW 8ap4`:2Mhz4M !Y`22(1ZfYX}VMpjzB͹ːdJ+hPC7V ,v\,Wm4*,!,/2$2\&q`2|~S<{NKolc$%cnC~Tև:92O|"ׯ0H; hB`,9i~`O趻! ' C=!OmUV5-u"j1#Bʕ˸G_xrQ˔B˄N;wX[_w)8E-ߤd{{QNQ()BUwhCA.OHUJ*YPa)eM>LbI>g<},r?-$1HnԺ4Iyj4,!\`~mX,4[-66g4.g3qG[)K0H%2.] fgE4&U*p)es$2N'6R9MjBi+^D2L㘝m$*EXKTT, "K4tp SXBuNmA%IsyJY,s,$stm)tΝ;|SYX,Oc!)2<ϹR$IRlŋshKƓ gϞa208}vxDץ( ƣ㹽ڇRvUqHYyNEŅgNjճ%B72qmJEiJO+pCH) Fuu*ӴU1M$ulSXNJIeP9c낦1`ێ4t5af,kρm>yx|>cF$rֻ$)0ϰMKs$)DZs9j)X:Y>eI[خ٦I`c谳AƱ  BX&$ị9ַ%yR1;&2K1 ߵ{Sd2l6Y,>} aD'a0,c IDATa2/yrUU:%*K(#.\ѐW#|gg{۶ >EU%P%]uÐpnSzVm<w㳟g)ϐ<ω+ekdymڸ!LC }6G1qxʙJkGkk \Ud5‰rd^%ᐍ dni 9cQ ]J@Vi؎EBQ͘ gdqLӠ4ؤ0lffCYekiiX,!^~O-؋/!E12L%k}^UPɂvAݢ,%ض4jZE,~ɀvrn4ԋdgkt$MZ[iX8Ip||̃~Ѹ1ehUEX`&EbOF)ZE$hAm35(R,6M<ٳ#ݿǹsgi6edY|@ 4X}y҅Ad8jRB v]*P L@/⢫V>ܳ~fiL+xp6[ֻi٬ϟe$B^^sq—?]?qanK:oKߋ>{ܸy{@(tl|2cՉY!4gm7wpis=ܿy|_g6' 8<>拟$Uc:l96Ϟ=jyhȴ?<w,s3S& Bn߹7-I!KIBYzfBY,^͇o/-USQ Iyaq\.ܻ \^^pfpy+{H)zo6-X&f3x ֛-ao88Xv͛X;/||#lt:7~7/}߅NS?ז#BqU$*SoKU8ϸ}+98%Mɔo}ϘM./|TV}^RQ )~iBǔeAG|a2|7U73n߾xW'Vkn8flLj)RNO{x4b6aǔet:ﺡ!@(EݶDq֋ڮk<}[kOMҔh)$FNt`ӓ~oe]^X-LU q5 nlcx9фdshX- 5cBDG#,;f)ѬW+R\\^$NxG#RϞ>EJ>|!O?ij,# '"<~Bw|+_%I.݆dDT4UͭTx1b{8??~#pS6%z50l d[ϧsd̻o޼s}u$Ni˚(8qݻv;&Ϟ9͚Ǽ:=M(/Dq=Z<{8IҔ(g^qѶ1ʼZ=j'H)蘶m &d2 ,l[q?88fh싖vl6B+ tAyJc$hm89=A*>9֛-Xڮ'Lf8fZiO'گY8'?.zWG1Q4-gsXS׿ zy}.. fb =};wG4]㧏RpxtȣG?͛\\^rv~N:Ni`峟 Ʉ__dZWWWGc9wndmw[d X6yJ8+Pdydm}޸n[IFTh[qxx۟|҉/_2%b2ѶcY$ xŭwh(ikو*x{8?$QDDʯ.zs1ĴeQvj;+s>qms| fj( z!2N1ְKF㈦kQJbj$ $Eeo>G^wMS' ]G[[\?@kzPۂa59oݺ2٬Ck4V?q|x}W|?G5uMSՄA((E]Uz}58G*AQ;wx1IYD!kks%"cdjՒ!qBEƔuIzy&1wo g_\qyqz!BfJ7o o}m$( $mZ?{NSܹszxwQN]"/kyц,Ic@K=: Hmz8DDh{lmY^^=] €jt60_`GOi)8ky#!{6}pqyn1=ⳟ,}f3+3.*0/YVņjD*buk7QL۴Tebd! udL۵ܿv;@zTĉ&f3vHvE GPћljA1?!-0 i@߶đ$OC!vM<,qqs@˞_-9<8ΝۤIa)]+ʦZ~*=*X_sz'prޡwkdE B$xJYɳSzPnquu/?c6, =yBEQn1L%IwݺfrW;¡;\\\"$F%B8U/S5 cA9!GW;W}s2z ngSp{DymEDqD2BIERs>O)Nk8] `pA4}-Zӏwf耲0}M(nGhaYmD}!}o; Ã74mCnH)PQ̮,(\9: g'S 0B>JARk'qu 8:g6qtw=E$|KeHHaiQit4*w|#yZ Mb 4 ,/i~(gI)֩="pcbc}fYcf^a;]뉩LN3{%ᜣ)jFU_)lƶ(ӔkaH(h $}p0mr_$ 0PuE. "(#6@e<\oXo ..׼w?Y{.qĮ(*3{mV6kL3 MFL˜Pd0OM$H URq3ͩ ֻ-Q88I)$}3Gl7[jV!X/ bd6#NS^#vuCg;/ x)UY,ؕ[zE/vۓwh0>a!Hs D:>7AH$jhoDWgܿw~ϟ _җsQ"`zX.}`d7#KC|uϾC%?8^pMO"tIJR&2ZmHGsT!q6pS?)p ZQ $HA)(%=9|ƅ<  !|(kXHbPx`Be cE "c|O}}.?A 0BiFUdqJW֘'#Ab$ILv$"883 =q(RDqR ›@$:h=5m!~MI{Dqoɝ[7]Gw4`0%yFݶu*Y-|ܶRT8 I49h`2oi~Ȳ덏~{qB]dם8=glKB8;=耢.Ġ "Eg^? 7|6K' h$qqz֚bS'9 N/٬(oߢ* P#'<ĥ)IˆX(&RC!mݰ7<:YH4 ֛-HAa4GC? 2:wm+?K_1 ?Yy8]y]ױ54M1Ou$Qx!Tel2A=Qbp)&BXKp&qazCDQSFwW?aapø[$iZ Z|;n[t]C$( s.}Ey>y[Yuzp0μ)b"o>Y2$9eɮ(}goL ( zumG($mQެi(6 NkYfm a_@g>Ck1wmsj-Q1a јQ>j3$fJ0@J"ZNXI_ IDATH)G9m c2J0NL'@ ϰq'wď|A1fMG : ѐiQ?8`^3zC;p0_FRI<mw~,9;`o3F٘|,)Om3Bsqqppc=7nͱ]D[7$Qp7\] $;=Z.A*E (V+lij>B4AeY)^aKш8N(6' 0 hUG(]kR;;CX{<Hؓ="mHtUFRJm: ӐƓ a I'tJhښnM:ʈӄq`8GJPOOFc S8oScj}Cpv8m_hXv Im~0 t1!Ǒ0% d!)JStmE5[UQLW@$@:l(IqZ"4mK4qn@[{ i;Eβi Ƌ0BzŻ] րvt[:yFF)'(yb!%i 2S޿)(g^ca:cTICCEQ20?P eQw>Ai N&/aGOƘXm[g# < EV*?'^-uI$Iۖ[TE$@8nY_4m뉭QOI8$n[O_4˘ FeF1YlF<}x//Tϟsqyt2%K2궦[v'2A*3cF6I\o胎فtJqzf@C[~$m_18 H8p Y^PB"=Y650!<9b^)XgɉHE(Hc D'QE@aͲŜivC9AetJPaH>ʣ$Zu$R1w "N?$I<)M2ʢbyb@&tXcg O?b<jk!U%,=JHq1{qJf>j}qA[Y N1O ÄS%b8YW `Aؖί(wMhT2D k"CiQ*ȳ<[La_I0BЩ6Z;!x mɒ) lR辣K l<2WHA-}S{qhʂrZY}~~J紽X0J]RX7`IÊA のVE~A 0ם<:|xxN!Av%I=":n;n[H-͚Ca}yudr dV8K$~D*4Z0yTخ'quEK`X}8%m :[ċ7uؑ>gg{|.R*A]K{cg5鴥6# c4jC[7qL۶}BЬVteE68*P}G4*1eݑD 8[&qzF۞y=$K5>0Bf9,X5՚>غ&RE]wx|:*7:t>tA",$ML $) j ?ip$qu5=mݰ^O'ܞL)뚋 ꮣk:k!X·g%KD~9Ҕbx=hs4ew͍wQ]#?8q>*iZ5,s#"c6͠TxLBb:{4MΑ&)o<}裧j57nQbtى_t-aӵ-dqю(t-AYКF)vْfW/ IJ[&Ib&ip(Qܧ6vDd}yyN[Vk &l/Я'RZ_cCdW*~~l,|v}Y>V~/pؾDV3 7u/,~۠ùגxfI88GoE efŐ_n{PvľgWa֞P8m-BE14m)kvQLoA;J^m=#!/P֢=/NPCD@aCgyd:q5gnAo 8'$mРHGz"0 ۶̌඾40ċOoލ0)1MQA;jEյ;_AS՘c) +#ȓSV aotU1rl߱lob҇)] һV#&iFvab)$UQb0^F]73?Rl>YH9Iu=UYyuzw=N6-e]cJDA@:oqtlJ4S^zh<&Nшhĝw(n> ?ԾɄSIXqa,h-J8jd<'dI(MOtuW 5Bd|<=q#"Iz1km{!j?u0PA@~:a$SS B(%bȈXƜTTXc`k-AkRe>N)U7Z#Lp*fw^gMr:,Q4$Bߍ"&ri=hG"FHm GXk؋Ժ`G|m@$HWBzbPwC1"BڮEkt:( |ăy#OHB5-ծ)PaHo Y#$IS?ҭ*lעz% C?X{j?!F廙ۖnSv,Mc^J: ڕ!.](IhcnYg$CүE,QR-rxsT5TҌnPɲc%\\^1zZ67Jl,I(wQ1먾 P4u5 |!f닽 :@tszqif)af:2n:) Vѷ~:uvvK:18 =,#$C^xm;FQL{, h* Fۖz$q۟]^kT}OAx4f6Tvm;*.IW'}(OpX0ѽ,Jyu1kںf6ai,X6>Ӛ쌽ȣRq<9EGI^i[l,7 `WIKtxu!VkwWW{YAF0`vذa6}ioBI6(ф^cc*BXyNe\v4%},n40Dij,hچt [-:T q'"hC4uk;$iłϔnG<ACkRtQxY/@!Dk@*{Dg94姾DDrMu#n, 'x$ m^k je!YaFm%c_1=^8a^gsiKQ>{4:d( 8n Oq]Uѵ A(!=*@{˲B"03ƺi[B)o%(\ 3Idtmsb-YUQ0W%<TueAUUId#~ZiO|3B= ZkʪK=:-1{w^TjWg NC$c@B ~f$ MO6 2k SrSBZJli8ж-WWdZӷwO2ɴ!Ā<1C@*`4dE9bEQ.h%u i,4*Iy"NP߼KɱpJbm0]\ .i (cLg(gg =9BH (#sð?bM Lʤ8%56D;h%i>iA)À ƉKl"]֜N 0KHbEOI@hV84we-gUUS%$J4Mġm /5bbP 웞SsJ 8uCT(0:bHUlV0/YӴ-ͩaznGpjQHҢ,Z=}` tM %R.Bď>@Y,9gW<<C;9bsm3Ԭ/ᢣ\. Q0:Y}3vF#Yl@bk`'*)|] NGc1D踼8tnnBHFƐZ# tQY'Jyy"}O'l.$ezV%g|Z! MRBGR^JMňw7D:Ò>m o~@A'laF~}{s佈q~a)+xDJ2C3*PPTΘf;%JGź NM0 1]crԭ"%wD5h){\?fYn6xQta!E Aq:m>K0 ! C vG)+uA@E-`Rwt:% G0qڟԙ0uQ ]ǶkSaa s`z,0P5}ߡ4FTL>(M^yNV׉=63CbFXfC˫+lя#Ms| U40Κ6Kmr9Ɖ't7R34\'fܤ(Wl6HbOpH(rO32h׮j/&kϢK{w_gdJS0}tB"m>f5 ݀і9)g"1"E~lCt1D< dJk)D-9EY/͛θgBgE In,e|ωR092i)e Y]Bp()ѧ#(Zw*maNMCr'| )L'n޾%D9e^mlya$.O_C@EQ8ByNPJSh0 9Lf!ǻB!-i)˒RK~V!PB#x!%1*31P%`Q;9 lB b"> x15|ķ"n3 S4n 'N?8CY]\ U2ϧf&Gs:w ~p]#V IDAT"mh%4OZ9QHwOw=aF7₣2cCs= |$ a2 b(U^v4mK۶h>HƶLA "rmw m~{+yUe,Oӷ,KK,+YR?>&j&D'BY[W%(|pT2==H9j)E7 9ÉnlW ei,^FEAYVG2u!&vR*{2D <>RE.Ȧ %etDz*QJފs MCӶ` #%Պ~F34 !,e9O'mcʀyn1`vY/YZ&;ԜجxhgLPŠUR+8"?wl6I/%?+K._٬Wl+D wZJn޾c{4AUAQigt7ܱ|A,7:b Q+VWLc'9elQJPK: cELg[8Y H򂻇-劮% !d~wD1ya&F2@D O'191&Kɗ!2Mc,J!ڠT[VvIǏ#aL9Ïi*$i8D8C %!\ 2 ӄ7Lቴ>~-sپG3?懼-+f)+/̂ʱ?>ǀ;L&Qa?0y][mڰ\,}X1e]%QRߦۛVbq:YmenBKV&=wJamCrv~6Wݩ#|fxگ5"w_3syGBtJ"(i#x8<6ի/8Kɸh~J~OXߧi;sapuq~shܼEH! /^\Seל-ӈwׯW_s/^>Gaw=yQ3N ͿޏvriOe7dezR ? 'x!% ]OY7dR6y29ir8RFƱGHC,׊z\(P">D,0ab40ڐٌݹ/¥L-B)QeR)d5DDK&}A$A*C. JinXh~O>&~$AU;3^Ksjgނф0 $t.mN?"3iqCKEێ./ixݞϿA:X8 vys׿xyaw 3tX~)!/_|@{a+<#~Զ}nݡibY[$&5u^)Zއ'R)[TPdmEbY(RۻF@K586ylNO7hc 4\$yf8{黰| [li#c2 Y4tD0*ƤqiȬAktx r|n{O2 "#L~uU(y|2v/4t-ڦ| apD!9[!"Tu¯ UAZQ)*$jlL>DjipeFapCZ46ZSG$ =W"B1ch! 7M3)EY12MP.tM;pdgYοo']%$Drp)+A|1u G0Mq #@߶Te>B⑥a[TCK璀Wf6˙|`X0cၬ N|wH3# M^teIaPBе Q) ΟCX E5Xx=ejbQ<aۛ>%1i)($Ha ΁ Hӷq}Dhi ^}DJB(ÿamkJYy1 }Gn F(yH gCKY(ؤL~MJE4 g>FHLc F\QֈQ&^&?!L(zQs~q \i軞RSkw; aǫ/__?7t}W ʚ[~/8vTy1j>y%MֵZ!#?%E}?Cs}C {|$s֛Xkzӱ3]qEi4NXkXV "C/J9?_#?bX&**QdVp؎oinʪa1g=ZVcYsQ%eQ pXc !2}x$\_д鹓P">P5n"rZ[Dp2܈Ֆj)ƚ'rF Lcr 9>x q)35Y6 8%(8ҷ=Ǧ! R9Z zZVxO~yy}MUOG,58Pml{~AYLRo'64c:VUR$wil !tk./F-_~e A  Cm;,g'>=n;?3>x>"m{ rBx/f3Kp#XVg\}1~*ve䫯f3ơ8lOz:x"KDiŋY.H)Y,u$i˯8ZbAuߓ9E#Tw·?_'ycߡlKHI{A$r(TnRC+3# -:̢˂8MhKϏL>1$@HB`ʒjx8X,6#_,9\8+`&/r'i(^fG@ӉnjI#3 i4|.>X/M RW%_Uih@v:E<͚zRecKء"GZ)5Z[@buP8DY.hh۔`Hay|2M`S@F!zQly=eUqjNUU $o߼t:X˄]9޾ڴ L/O[_o@ֺ*Á>8 !eJt8ɇL-@xY,kv¹ O4|9nXT .ܡf&6ggǞjAV !5ky򖷧"E%"ެ܄s#]JfbBc:uơ 2集{e,//RC0e<'*򪢬9Y)tA3d]O3x!i5%"_ŋI"GkCU JGkEY }V<4N«]0~` IDATUv\]]%Mϛ:]hr']',p>`s09ϛovh_rՋO?zEfs^KW_ޜ Gwq9{~B?t}7_~ȇ/?m2k8ስcu& 4bEN(Js64m$sH4ɡֆnϩ9ݞGOAHp$e^`^~an^]')-ouߜeo߾a\\.ƑrfAkMe fsmbYC È$?Ǒ#cJ29XʪL8"Te"9.F'idsy ;m]^Cc c* "$jc-5RJNoJJ\79 $ڤC OHF,Q=J/k ?ER ӄR&a(ŏ~nmӉiN'Ӊ(Z ,:|}s3NK`8S yY #+,uMwj1M!kɤ) Q2[z͋/X.mg:5%t7_}Im-uV̌ Ay~FQdurJ ,Ja}@@ocQtgeà2 RJ bdVY1j&FD!A(@+I!eH) I9B"4ׅ i[&7!u?!k-~?q)}۳`<[RVtkOIC5|W ggHO3-#?8g^>ߐiж gg4mE?ytCJ+8q{wOg<rp`ZC?嗿xEY,哏Ϣ^p>qsk(l*mFYhi(-xKLxk\j*Y#~Ogs0)XL's2, gpOr9j5ُ^|#{v, `1M2ĺ,8_%̬I~Kw,%Ƥmn'=w<@ 06'޾yC9;?ZgggԋŢ"FryT>\ QpqqvEI%7nɬAT@MGݏ#9!0y>0[D ICrĐ f·|Ky\Qx?_ /syܠT2PFHU%n1ƦSI6ìde斿>8y _ H-Mx|x`M'{Oa3B~dOaH7qCf]%Rx06`TurXE<֖ CہC0yPZs)y\~)͎qDJI$L %YfGto8;mZ-Q*4͉mޤǶ,={VEwlٔDE۴o0a@@a#32-bUeVe{oč~kGd[dbj'n9'[ӧOXhXp*($Ѹ0ږ3В)?_𭸤ߋ/`/{bzYz ~xyqA|1P<I^$i˙O%AI`0!_gfC7*CH˫'t]mL Brb t]\$bFyEE ˶ep:ILՖyuv]vH?c/α΃ro߾c4ʪ(rTqssß|'qnn|X )_~*&oxiY %^yAx? d*L43bL>p|] h-EQR7=Im[G3PŜf;$2آUCw:L3(XT<#z*";7s*abapgϨ+/^q8䫯dw}_|W& m[1`G?@xETjEbRV%|oYW,:-i^ i&)ncӧLCU(-s~qZCߎHQlR-b&$ak#VZ>qr$~~iyÃ?-|1c,}zz-j&x! XL5x!KvB*IvrZ.cZ8"1Gx$QeUZ8lج7@~9G.EDuY@`rΑ$Qc$ 7ybwiX,+i놻qIE M(EQVd()ʜrj¹,Mȳ4zŬ0$Icra<( ơ%KSp-@XQ%<˼dh:IGLÄ\ "2'&")ɑRØ4i3[9w.݄ڶ# IL(dvBh|c@$UY~xEEh* YO7u~]*%%ym(W_ \Ffw@lN~ls6ݚ9&u]I"Zj[;(p~x@psc0 $rP1[Hɢ҄{O#,}{'GÁAt)|iCpmɐB#O>~T&z9O6LӄZN0P5YjHtŬRpSy"!%eg)rQgn~PF*-zOGꦥΓ󌗯^KQةw8\;] ?ŋ\]ة,8\\sO<Ŧ z振dYv=iчR ɳfa{O>ٳ{|5bY.__~g(%hwx?SL<4P RLaiRx 82L?)Wq?真S7 yz&IM>Ŏ(q :D$j5MEN$uCv:1!50slQ&x<`%4u~F lrn)49>@f4#Fp4(|`n$?7q[;aAMaP|{x<'<ۯg"uCf66)T9y:)$ .ĂRI()b$LvDƁ0Y\]qvhC%( qY7 hۖ@ 1*1&^qĠ>0/^ѯ;ciھhm ),%x`sqJ).,$2Y!YI?5uZBĩsؾ}˓6wyn8"-BŸl%AP[~ucNBǙab;3xTH)q1ى,f'C$v}7#]I>R?L}h.q5X(X4M<ʢϟ< $u_]7t|'lk|3,бmyzq5g%@gh9?;Ƒw)J5|_"ǻwo)$5K~?~ߡ*+~5woEKR~ooG m;~7 /_Ž|Eˌ[0`Ls[rT)e|{޽yKԬK޿ߢuTfYNS[(HioNFOV'Qtu n7ߚa7|8\]]QNW,Гox;;~\7x;!|`*u*ODG6)Q?f[)R.ޮgQ"#JI C^| Q墢n;EbQ`TD7ޱ$* 2ńFP"&yV8gy9gSޟB1:֏|v*M}ے)Ւ1?!bAX'oB]߳=ՆuLӆ7I}j<',%Kc;{&q$/(^ubҌ$Q`m ²}OhNm_||D(MX@$iz2ow>ZPqasOr'<"vo ?Nxy_]X<$cuDpsR&n( ŭ IβZTv9Ɓ02Hv^xlbbh(ҔPR19؏x$ M[)iEk_3ZZ2vNmwE=O@%x-QUu-UUryyJrD)8 oNQrHSߒhm/A ВOx#ᛞK@uhs -Rh` -Fx]椉&K7UI8 ]Ne)vډe쌼(c3#ǀ&WGB!aS,J]@+×/2aސ0zqc .XV3Fg_GX'OA$lp~uwoYi#բ"O)2EV}K4G;t;F0"/v-&M=m1^rsrf^ cdk۞fM.Ca]t<"$s,GR&xݖ$M5D4|ǏUh PLϻ3;99ɧiB R6B]/ܙ] ?wω{T IDAT"|d%B@ͣ1ÛB""%~ĖxĜ R[' ./(ʌގ {f8`g`YLezQ\`0H&`" D53Q%Z¿QJsQDCǎ6Ag].釁~.)Tef14ź0C dH[)(NHu@nh@F4yEOH?/iJQ9 haf0TbMMgceN\zlj:ߓg@[&%IRBAIM Ș1T{0 xpHxIvq95 {\qyZ!JM2XXg.J©1ac:S>cA B]GFJ: ? Ay^,פBq{w`lV+\_qv!IH#`'vcsa^r:L\^b(; ,du4 -WeLrΛ[5{HòDWD?2nG[!գN!RLC=!!MƤ1mчDTGLVľ.fO@-Z n=[['PRe9!`8' 2b9k<&gǞZ46cwZRC RF-L9 B#IO??Xd mQc~O_(4N 4ߥo;7g|WWSL[r&e1d(eQr:}4yL % U Z|)IUAӶsM`{%KMN%BKIM\qDqcXr<Ϙ@(0岚a9X$Y7,HN,>ehZ3Zn{OюE)CERjn$S~cZ.9۬Zӵ 8E2]U1ȋD9v[Zں*Hy<񂛷o/s^7 MWz$ 487 |3%>ni8R vcCPM(8$zNӌ"PQw1*%R>R;Ñ8ơVjz٬7 @HdD cSQ#ĺVDRHvޅNӄIHT* f@bQCqG?՜B)&M~.ξx,58ŢB#BZY73 $ҏEֆc}**t  %΃8gnZX?1? o-n4MLb>M0 Z#FkOЉf-fM3!W} ~OV4d)@?COoGc9ޜEqhEѢS?Mq$TO[i&1T(:~QpYF9 1ox+7H-9hEp0 #ݞ#URN-?=^>}Adg\_Pj{V%;GF![1 /_&07$i c1(\cey:/9diGc5J*ZBpNDcU>P'I3>S:;r:q\.i EUE[M]syqp`r)_K21gtiJ}bZ`_~͢臎t޳9?JNik<;Gpޑ9gdF)3GZ蹰׌w_13cV_zRC : 9kfdamn Cef݇<i},2Rixb)c'!jtDeXuqڇ~`͆L9%s;n9J(@QHl~/xʿot7y| !dIC__|j-qRH3e]rQgMCdLŘN~k$#/ 򢈌epv!A(H +Ԭ}T È^i$?y$2ؘ>psqqY{0cL%eQB90r{}Џ|oNS zǓ'W<}m:<~W1|5Ib( H~щAz[0d4kvcaY-P*0)b8F}G`N>Pg8ĝfjb(~똦)gK P2.1 iO^dj?xgQaL'qCf"DXyNnkNN5wspT{jxcڰXT}GӶ4M0S'\$ `E!dlFϾ?rs}Cܽfbqw$BqK,?Oxza c?2ƕB SE\?98q<v?(N"6Ŀa } &򢠨"OF@A͆JϞ?gZcGanzw4ĢOEU3|<#JTk'՚өF4IHLBDJӔlh"VERx49bT8g9,^zmcژ(f<-"@[71"P iH<9ߜjveZpk1$BrF1| $ ?яx/b}1-۲\V44upn s]1㩉;B9*X.bH}v>i$ $y 4q#U4MS $yP2:4a{}ϩ1 UsuqA׶i6wEZn>y%'`-{#7BN%xOS,R|fd>0 !Qq B `]1%9ijD ЏQK5&AI8XoxWd^$Eb,i2pvgưkn9D' \\^2tZ (kVk-Ӊo߲:?#I jVW$hyᇤY6G;*{b}rRl18gETEN_saw{OnRܜ_X.aa84MC͗_>pnxW矓9e5]?e^g=!x./.ޡkّ^0ˏ?c)y[6yokkw׸>cjvmep- WHH[. D q" M !"qnw3a N\ߵ) R$;)QNay~[/^hChe(̂a8-О~i 6#uydo{,suq'M=~Dk 02 {Qے) تDZڬY?E~o-w~ł['es'%݁-^ax)^˗#mUϐ1xw cס(9ܐ2%!Bt-]Ln~i- >#=|("[h+wGƾKlUXܻ)k@ "ܔGy'$rB5A~G ѹdryjh8jIo4t^7ʒqiZ\n͎4̳5x*0Lh E~ߢBv{^|CaJ~lX,v7U< T\ .|#_(* {UŢmi25G6L ޼y+"!瘇 4}OSeETHưجIJ?$MMb;egjό%ȡbËK>jE.h7[TQb2,sr"X[7}>GGЋ/p`QVxQLH\2N3 jּ}i2)J#BzQFSQC? ]w$MtaE>>zn49.͎fX咲3C1trf@Ȣy//nޱlhr_\NTy-BidC@krqq/_sw#=9THJ@mYӹ09\?y܏7Lp IDAT~:ݑorm,&ivn.0v- n>R$L?;ꦦk$9w]wC~#ooYn7 ]ϫ/_Ä!( "h#K `ӴLA,x F|'?aZ19qs+ ~&TLBѹBuU$khǾ0ǻ=˺a8r)]{ ]>'^~?nx{QlRRtJ Z+ʪ*jʢ!EE=MUcUF7.LڡM՛\ݿb8bC=³O݁EdXQki,,hxr+YZ(:kcD kRfEv&ޓ&s]]c']DDX֕raag ʢdFq%''T@ hk>PU%8T%S~ެַ'ww,Xm(;=|s( Mf~CY4mCa ޼~h5u5}G"H M#ֲF޼|҆)6B mC4!z^z4 SQ%wh-6LD]hNtcOS<}17*yE_/_+tsr@UaDA}0CBnev<옽n߽e@oݿ͆79Q6%nϢi ` 6 q,hj6t#LxlVKs\ls1꧙9!s& F}aߡ4%xĜ.LD)brPjtiq1Pan[N|чl/(YmpѴ5'qfy8( ..=6[:3U2DXh2V&dmOA2IHS,+f#]FZ!fPH8\yy<)kz@)^_k+Oa?4i$띣kRl2F+=__vԕͫ7_mwD& 'IoYXk꒲ҰKDڶƹr15/_VS( sL|g,+fng/^g ㈛FʲLxK(d,ñ*]oyOt 4}GY5$6$(+!RZK](kMK4SUPXtQP[0͌n§&|H D(o^bІρ*eYQdMYTuE>FNJ jd:SX}w@~1JkY6-MU'6|,r_raE1vUU9dRncnWˆ(>RՕM4M-hԉ1g'z/_O~77`莴mukUeFwk;"ua^ 咏?_k"wor[|^,:# +ASh 5ΌiDh܈BTR-,4s,ZcI`6b֊X#׈5qޡ8bGM3{/ƐEfuL49-L?PWSl1";VLH6oް^~ $oy٬YrQ*a%m 82#1YBuMLk"a0VSi}?PV M˗?)mOajme~9EYP%M^(΋Ox/A&<FZ%lc?pb{iNWe)4?q. QFQl{?pCGr#Qoք.YRh K44JkI]߉tԅ%3ZgR4}Si Ǽx%h!߽|f{yMYὗ{.ݧ( VeS3@|Ɓ͆Þz,*(TO]=;UYudzeZm9MSg ͻka$xvnLmNve| m[.//)Ҽg܂2tY˅7@Qi`^Z/{v~(цn.[B h,?Sax1$ʚr,̯߼o"zsZ3?"iMmۊ>Ak mM]V|9wwZE!9Gkl/.p89;T%X/עXjnѴ 65o߼ijʪ[9yRb46j- TӴ ǾvKˋKfޢfW2!DFkQns3@2E* &ikf,zǑeYccZjn޼&Ύ~hP::J*'5!DfZpqqrq77oo=) xҲzBTE`ϯQ1a4eJb{Fo R貄ẉ 1pR8˄Z+4E][LU"!uH!}SVB)CA- >s£(ʒ9OG)1;<˺synF!(hlk332O-ʯ j#UuULa5ʔ}~cQYuQ>{49L\8CTPB)G`G) 7Qg5;-)sGǣ`?@ׯ1́f{v%-4Z keI6,.?giWk~wwӜF\\hS7ް;!8(38l[ zЮCjU8aox ߼%m80Ѥ9D1$%*6{&9 nGڶeʙ8A:1uج8?ȬYIJmUb<ʎ|Fb %%$ #o߼ɇN1dU?@~/dqfHxK6 Mpxn119ItNt;n($|Lgؔ`eylysѓ K*Xc)5zg3͊Lۜ)~z j4زbf~>(J>3 ?o. mo޾E)űZ!dxw{83b9`T^)Rd "Q+(S"<; [0Xci8,Kv]<܄@i4IJ ֪,)C/Nak4Bg4,L4 $D%Іս{)Ô2kNlV5cCYQSb, Œf20̓`5͚]\XX,L~7%|!5IVL` eUR”TE`,hʒʼniSh$@KB)!\FLQ4J19|i&@a,n6Iw xB~0jELQľ.#*#%Ir>'̯#FZJC4PQ/خ,g ăKa?H7H\kNC Α6Fڦ+=O%s٣eZSNFM }rI"1PU ŊI`W/+ J5DM+A3{_Z->,Xl.UɏD7cHf_qѻׯ^qscAEUWtw{(pᛲ&jC ))x|'|JO{Kzl|C'܋i Ez(3mnY)K!;J+x][L!=D:@X_l*1m5 R'(mvVղonh8qs4(YK,Kyxq0(E ]( 9J햲___wߟ/a!F ՚͐"KZspu4MbƔ%01 x˒d#Ϻ%ZYI"!DS{^mj)aP"ƉmhI`fY枘ĺN[c6,WK(DòmIATFiCh#޼yT%'_H 7u-X 8N1دRk ~`vU)R=%Mt-ya{VY#X.igYCW)a2֊ބDYX]2Vv%A [s_Q|1f:v7o9K ۅ`%,떿[=Œ~% >=޽{itNnqҊxtL&W0$ F%4B=^eYI IkeAYh;^yw8dRb}c: ɉf@k2ݑ'3ʪ?0MI0#;Bt (jbju(-<#>OWB 9'j*F1$k,H.QE4Զnyb'ۇ(-Qbr?qw)e]X6-!`JqQ><)W3YSrKQ4lR@'J6k4Q%^rI1RP%*MKlrz=0UU唺7,-hRTU31fH.x "p==~,.ʰ ˫+#1ÐN G( HXc֛-EYUB4_p-swye lmxS>skm"cm"xTq 0-(4VtMr_ h8Q!orp4Sڈe1e9hҢ; N&&͂R`GD]9]3bàI>2Gg/h9ip޳nv~(z!DjM wr%7;~~/͎˫"bYs5-(7x~Dk IDATWjm]sߡBJ,6–L,vSdp)nh C(EU? zRuuTeɢm;HYhb7C˪a8jXλD")X<9O> AB[=y'w>*?pdN֖B A$gJbso,ysr˗| Ou>9UiȾ{XxnHAW߬eUQÁUrJwӚE qֆq H gջ$JbwU[U"iQV&s'駟Ү7YGRRQ]4czX-ǻ[u"$瓯X>w -bHW~UQme8NeA[7h_@J"ۮv ̎vć8w<hks譱 Z~*$ -#J ٻ7Tlyh^PJs8EΑ*ł<4ۊrxcs!i~v2ƍIB)]UȢ{4 w77ǎn).%R >ݞk, #epnfw{Mj#Z7OaɑJyם3G)$IQiI &TafOQV"@}דŒr#(hxDkC]3wn*T2G!Eږ@Z<|w6ѬV\F^^s{4Cy %@kRPr`~use*Tv[K=b'Ox)݃:~sƜDgsB|NtDTLZ1l{@CwQ?S|S,̳D@!|^0ZK(Ctn:R^ZkZӻ17PZŸ3j=PdKN,n~O?_E?xm~+zEYtQ* ņC-]w$r@hY$dF@r`E8Ό㐧.00 2=PZ"yJ!o!E(MY0/_g<|R>p#2A)AYnonxb2*1}/ڢt@ hŇY 9O~ZI*Z{Yú-bfF)<h`)nt.p64uhOĘ(Xˢ(3hFQ7mniVGC=ZK2w=Zif#li+Ze]Sqd,]ҮV(P", @ eR+Ir`$Gtr."ْB(F%sҮu.,ma(]//0P5 ͚;XTS":!IWr=s'ϳ*lm S|orqu%3T Rm"dp1 ?,lg  C$9ەdA ~t ©>]{yJ?CYL>' 1C'y-_ TʓҒH88_˗4eFV k*B,,+LO#ug?Ӓhʊ%>y-n(mA &ۦux/,.ZҘŔ6Wn]i)Nm5FHfT<@Zv!Y@Z3!@۶TeG(86@0rFDm<$iۆ9%y>!P<cLXTdb0)IMV3:N 19;R t=;.;|<IPq|ӟ,*V%, f8+mS1=jϟ~emM۲Xx=Q"Md%@YZ"+SL d=5N牟- RVfhvwCYV ǔ$Sd8rnlaw> :Pk͜ wDYEFzFY6QֈhW}m(,+1:ֹ6VB^޳&Nvax,V+B YYm(} ʪF+RC?͏e+O\FG_}[ 7/_7ƇP5UKL/sVKe!;kAUSTr@Kw2bta='Q:wJZ%Hu3p0Nӈ"QT5u:ܾ}%Ux5h.K~鏙ǁŢp#e[3[?u*DZ$]5.l)@A;H [ZLU2M1Z 4mM?bMUW8Y.280FSײnr:J82)B؂y-JJBc N25Nz\f1=m,rD3/ nnn9X[0qڒaڡf{qAr*c?pqw{C iޠf<vfhX.2%zʦ*xSR Xk3C?HW2v< Y0Z czbz cHWx)5$rZ'_ef73yϽ-uEٽ#;#yf# [c%S̓90#s=;GhN9R%.Ƴ(%S$ޟJ)0\@zhw8$B ޾~-:,NUưny3nхbL׮z=Ab{QgqǟyiOk,fѮ\U%dUvEsv<]*8}+MʂiHL~g,NԒksT9 ²y`3X,GBHrfF~dD0}͛7\]/O럴ײ@8M478d|8N{$*9tG>S6afs鳧Toɏ?M.//3G늣q3M#R\\Jw(fc 99lfX#xS1!$[ ?׷4~XSW q$;B H p"N$E@.@H6Xvlm$ش599{Mkz.wlDrW~Z<;pI^U`4 }'(2̫ 9>9ǎ(ڌ@<}1Ŝ=Iut%1DAgZcKD2i/xVEXAL{䎦t Z c CMݖT%6[sN1 >*QM6 Jp(kJ>> 'ψ>S*TPt)Q k\a']y !xV\\qztBJ/I9(-ZE W/-*Վjmw`4Y]bfIApr^I7xnk:dl%e6 NfD 0FQ-Ĉk2t(a !K<=Yfu5qٽ3˅Em6\_3[Ur^dZn;UU1D/ꩺxm;r']jhj>cqTR\v-F[sa&E"#ɪВVH1w=n#WbDzĺ:?nct&GBe/h08U=3-{.N|$B(P*+!4t]y >d *HjagssO<%5 RQҦmŠ( ֫5m2Iy6m!?Jq}$EKjcbEfͣ {26WYU8doZZ ɱPUYӵ-#^p84|1'Y#]{tg7tNTXcr&(Nf6a>e#@S(1ΊqUѵ=ݎ 7X FY%՘<:TʎH$1+-6gf@&vX:p[En[i )#Cz&`VTRR!cd3t > FL'F@)%V5.)޷Hq$q/\DyvLo)/R@,슨$[i=1g\!÷x1O>ٳgwvj%UUN'΂0ۭ0ؕAHi""UO3`= ,s!xH@Jj"ʼI^A2>Ru}ߓDI GmǰnukaLȇ VU6*"H ƻVG!p3& =$lYKeXjcZSVpβmAQ'r+ cG3*By`CdD{ I׬G89Zp689%d?x3R[}!]䘤*?B.O=ѵm|9]E\vHb$q$45قeQp@P3!Òt]KwǪz Lfp_Uʂ,Dw9k d#yKy}e\1jƼ8'%Gonnm:ፄ@k^>_fY?`!ʌjq%d5,}?" ⱸpP,8c>\(!d4HANlCO?HDr |$*`s| Gُ3Қgc36Ɖj\^~6##? @f(_ ].^:yov[ IRmɋ*' 1ʲbssCJ QW}~#J'd/݆g|| I&!Dqe,k:SDȷ//6(I~׿I ?#!c.υG^$<:[z=4Klc>ecd1_rrܱ&* aյ@IrLHI]dgC]VC\]qq~䘲*' O>P$j} WfK 6Th9DE1"JI\x7olAґ VcbsKi՚j2ڈ5q^`0! Iy3UD#ŗJ}`z$MJ$i1x'qkеm#pJ}8¦@Չ!DaRV$ftM{m;IQ}fnwY˳Oϰu%D$NsɊiVtM%חW[| s QPNEZߡi 'D׊ș"%($8"!@1Ff%> Q*['K+\Z:O ?c э<&lZ|; sN%{Ѿw}' i1lywy7qxs<Beko2̌?"m+lOhyOˆ>2Fm#| J8c!0 @%* &%SGnZO74mA٨.!T^mhb[&b0xT5B!%cɱ|`VϹhBbh1YŜvᰧm_S?]z|! qu7[+\.HJ7{=_|^{1<hb\d- !*1s)JHYcĬꚾWVa=4]z5ڰX,dA|=a$cPŚb8=bs\V\]\z)o /vϟ=Ő!ZsPjB`?^AX}k(% Jk 񞄒t7m )=]߂"C[$h+X,bx&h7xv+UGGqF|ʢ(}P(% IDATZ6Р,N3DK'܊5tm^bww'k+ V"Zƨ4]N` {vu`,pj:oZ.Z3Q<I+餕kk!xm\]F=%1-JuHVו;GshʊY=ꂾoD圳Ff-Y{?VlBU] Z!s~|&GOs M1\!Pt斌~$H`%%qG-m$@)$!3=努՚rE v-˓c|m{|>'Y*6uQȋ O ]q?HБ1kUf.%>ƜePNLK5:Q \x|wnܷO+z dET`&1%2/!; jDuSP4> \(eF6{lnRdׅ$B߼ /T37i?gr/^~&O>c6r>hMt)]%)!a}灾%h|m9SUJYvd>OHF\]]Q-)\IaKaK9͆zA?k\5su,&$U1-CM% [9:e W1 BEel6ώgrK.{:˛ElS`eE+!JBTI6)]!w|N]UUҊm$o>Hb"CVX+(Yp̱HN.(=:.rJ樂(mmn'Q`on@9K{8LaLSc蘾muvCs8phlLˏ:n`h;|vdk3j\8脍o]O9ƁߣH%"ZؙCX,8wёV Y+},NY꺒tIJJAtv\d^U6{y>xNNK5%"ޫ1P֡,/jP9ntR 9a=E`>⫐A a)I3d7 I>.$b?gIw`ra Mk4w>& Oo͜@061a.Q_( w I|nn7eY? mn4 E=_y_Sƿ'޿/T0FXLCU0Jz>~*>89>͆=Ŋ•WWD]/X1BɈŬ9&^;|61_,846 Mw\lhdѹ8H!>:xmj$JzADc$%.5=eՆdވYzbRf ]GUHgf2IJ)NcPhq1F^Z!/ 0-d]۲Iv|.5.wFϐz \.to1K8z1`P8WHl0L*{=l4!( M'R\DҶ}7u#hCf9=ᣇszt?X)2ܭ&ٔw4aQ@wy@H&;UVh%)R5{Q"c$EV6{zܹ!- 9==K矋 "J%l;ȼ>PyĐ;J)L2"h1ЩDPjڮkw(+Yf+8giv[tYrUXJ|0 f (1(J8utq6n$9GY'| tX%('[|$Sddz:eMO?82PRKv?5L 0'-#poBh&H"Q|?e,TVE23bzuG~֊+)"J[Б]+|X o&i _ U n zdx== JM_kmģ oW),KA bs%m+) KʙuGs4 ]']zbs|z| gzN1QC/]ײnꚢpei'*SbhiZfȉ~h}GKLC{}YC6g)0C C+#]GYIUG TTA"Xmi.*8*D\_^tG G"*) f ]# CCB[G㔪dmwM+AM.zX˜Evqm4I%%)Ce5$CBvhCV"A[͝56&RHnwk* ChKYUh;t̳39lV~^H5uQH~BI0{g@F>3_yodh n33"fCA}4RWX,ܿ3蚹6Zk{\ٵD"{|+-R>l?H@J!yJg0D~YG9<ڌ 7`ۊdk<)9rnه%*Ő&FbߏurgF9R>iCh\8"IXmbOUSc2ߦURkteಡ˾ɉȺ܄w;|: ;;k]R3FG yS|aFI$!eth'.ӧOٜT%]'#j^xy9C? S 7~{n&(gIBN%.o}W=Wo6zƃ蚖SUb}JfN0 N Z)f,IJ:>+pǺ9YXQW{7v  6Yơ,0fc=]O3*вl0C`u\з5b},v: @$x#s8c/.yqR̃M|c1v;2UU4m?HE#:I1ERS%{7~2:YiTdD5 A:J"i7@oetF: ݆*Jh֘,N[|qEś_:2+ rj9(żo^]bk!~eKr"ZE]YʳD)X+Y5ˊ PZ-@isg$< AY QPS}-޽{+kaZh,9{"74-Ib{!9fy`1eƏH=C!r&9bFtꌄt-/ȋ|7qBveM6BHSIzu3/Ci"͛6Y46r ]'yv4\Ŕⴁ;$D< !aQO^8?.Pn+MvLҽ [6s/QqzH)jV  F`䟌G  ($)hMd=Ŝ{웆~O5RƏi]v%k<ԝ$g#9lCpC/;7̪7^yr_ W_%~<3FRʪ$jW[Ǿi pX(]fCvԳ9M?:9WHJ`nOY8a(|B'Km[Vegˎ9lXWAGXe>NaC}Y.샠1X%:FiΒИH%F5։#DB?䰩^ C6e1hv{bq *icARڜ(cJ؅*4ݞ٬\l( A[a@;=*cɐM6f52NK A&={)HpJ˼=F_ YbR赤Pn7[''|'//'C!_Wy v=mRԖ/8|=ϽX`R~eUn9^S !v M{ 1'J% -C7@ԋyo(cKV@N/d!Fhc89>bKqr3i-:ͩ@H)2_,$CR)-"u}$e*,$!)m`UI,KV>{/2Q)nD en HG!ojm2$wyhwV N)XjBbyL@FWsi=tN|> T.F#:wIaTA,{­c- qIARIF;$gj;<,CdH߶\_syy)77茐#Ȯ-樔hglΉKI-5|_ab'x*y2VycG5O}jxpv믽믾'OCUȐ2btmkc eYTTe{>bsuŋD%r\֡1GqJS3펡o9 rلG㣧zaO4*<}OCNuSv#L,a1AoAf)E*MvƀK\r#V'nWUز~ra:GM9'Zh%.Y ىG'1焄+eY~[רwZi%(W#?c9_)Qv;A(;6!DǤ?ɏr?(?nȣΰݎ;Rb&#L yp_ 1<5CMB>B.P)Pt%PΖXH*[Znv;\]^R؂]OM;f тBL Q 3“7)e-6!IZbj//;^K#o.luLV~[b4dP^amb=4SV W՚fеY#$Zڮ/j5:ǥ*1x h:Jywbqsuţ]!Dt!es?}.q7=8}׾59qv8>:bVYI2p<kŒia/<8y.A+Cs8`*KQ<yxT•77=lU1DW!BmRuM=cBf^ R[kp"%g.سEm# t}uhrE][#o曬M>⭷樞Bӳ-Rv;+4+vO>{Ъ-&咃VX-zuc-&˴(c<@UV6t!9I>q]Cﹹt}İQ:鶅!,cTLNƈ|'sNь֢,PI ,>JC-V^{7Oc'CV(.0PV%!4ƀ D٠{BfXm$HB-x;]=EvQW3../rqq Á k? !ོZǥH]J;8l1\YFXg( $G9uUӷ\ J{QT3ˡp򀅹V%}Y!U-䎶, b8Z-""e:P%1%\YPtJWj5bU]rv sD/vkHҵ%nn5 M4w zr&20ffٴ:'kD}dWwt4g+gsaHг^UpJ7$jEqB&\)<~HEYHba8fsڛ-FÏytz>LRY0R%h}'O+$k[paˮJH3fk_^'qqyb1RRT (ʊmu/FYtFXNĿ#HJLv!!%)0c{ƓY,+=&ގLb2ES0 xL:}z|X+|5`^G!$@柇 A!HLӴ&&IF*Nzt oQۻʿ;n㺫ҝ$ 2qv#Wb, e GQ9%6#*EA cx!Ο]4COw{pY]|<|Uc^}9'<\\t]"9B|>G@?3$%)zKTUΫ8zl='9y]VuK*^ ?W{prvʃGıMt/]~łz͋/pEjv{fC۶Ӆ8ƭ.W)]GidT)E4ng5exX,65 !Plb4Y11ZR4'O16e7P&iEЊ>%|U2QT(b&O[bp+2 PdFb @Zミ`U02 mQM8LyB4]܅ɉ1D:'Z\~Ms*kRj9ph;ql=T0Hls~K`z=OQ^Wd>Qi8%,Ç|A6k軖.sc@LTNDLIH ǔu͡m8>;f{5I IDATr%eUR%+V''j% {.F|UU JIH仹Fa^< 1;A_%жW&!nIQj2F i|o--C9xfS%lM6>d^ʸrk$ąFN=\Qd'L!_2o82F}j734j̮Ha&[u<㹛0$CPg5|Zݚ,)Vc=P m > ܃XJ k:Flv<>yd~9Y,9=9jYQp\ ӧ*o՟O;w/!?U6" G;֚,94$phx))x>EV''DW^_g~73~/8W+0Ic\GQ3{3*I*"h軞áz-]O{ H\pְn)ʒ_pZ20!&6X;<{\Y WP0d&ufW H>elDReQ!SR~4(pHʲ$ $*\aG%s+EWgP,(mv'W]0CbEi-)lA]ʆ\l8WжEi$7(/cw{ke XT+><U8fD}4`k?Қ/3vrX/COR(k=3YT5ZOp|F]G9(g5'g^Y>^P+5]RdrSNO9P*}N2G ZRj|@J NkC\ݮ$ciރQb@iMaI28 |_i5wM\Mp|+&A)1!fvB%cZ@1f[~y3{(1!dU-&.WoA֨i]T^Gϒ;u=RѝQYLjWJFd : zl<)!/iYIUHO3=Z>n;̫|`*RIÞ0h2{| nfH|0gcBvlUR1&<}FUܿx1̯_C~eVלdp`>"Ĕr| bZR˅< "Uམ)pp@VIr`( M"[ceO 435Z{BRبLv[TSFH@rr0($VFc%JW8(# ,26!iβ]kŬw=C'Ir#BpX{Bftʐ`+)%z~@)v8uIR@}@!uuI ݀AWmba K fVYC]t 9 ]Hr'q0I g Xz!uEB0m,%f8 E7!P%eYN 5e,ĬrVTU]cPu783n܁ 33-m,*z}% Q{6qQguEHQ`gp+Q!I=A\//. eYt0pUI=|on@UUe/ hG脘WU(=b a*4V^:IJR(+Fk}XmG ҽm31*+v=|YyM 1_-[ڶKz9[j̔l6;6Vk^y6WXWRSBB&eIݸʳһ+c']UNKFV̐4uUK ֔鑢O5މiY.VĄ9|f㗾ua%'ɶɽ\łRoS#*ema{),t[̧P/:G(1a FÜ4(>x9 I&JR8asn{CQIw8UeE=@IF"o}\_Zfw[*..y@{l[قb`ݵ蔨K. cYb9ZeZayr&zFbQ<| GǧUG7V,ф1qvMA$ףJvWWxmѮP21L ;69I:;) aХG?@9Hv*c!*Z9WGXlKblw ԴAO|n?tR|sf;8r`bC?oISRcW)$I^DݽܠO{?|4I,3Ⱦ"HsیpXV%ZYc2):I칾~0?^]=x@U< AL0 ,g?q_n>>BCO`w*;cyx[(~@?ekGNz6]Mv\ɏuUyK|%z4H1) |I^x7_5շųßk6玤[TMݷ᮪,gϤy}K$ێǟ|lSoXk-o˿+|[oϻݻX4!Pvwu +Ơ\c^#轧l T wQJ&MjcB׍[by(90GPRd38J`dxI$Z)R#f܃2ss IE d^(X 8 D=h?J` ,ş"3{9]w m M)^B~ -5e}erMh+)w㐝#[Xb"6< #_ijgD K>9{D͆E^=)]1)XДeU`\< kKߝx_ Z0n05?m #hL 5oiVzkj}F=/_>]5`ˆ!zʥCU(%U"Fm|G2UXvcϏ>/^~/7x9z %?P~_AM [y`͑|uSn,m;9]oritvw kl0UتkaG0&{¿~ѣ|w=YЏ0lV9M%ukX._ E/AG6,ģ]+a8aA3:yNAUx%ЩX"MSIS;TRbd/)B_.Eܔ 騴$pt4ऐHIw=2 9fݎj5ù E]ׄC8]qcMCF5bc+"N? ɭ(J`k,FųL.*-Āl3F!kh'Pm$ĩcNyLy}~`{EU_ZAZ_=v% FuMSs~N5bi]cn~Y%֖eIY)X(mG7[ R)la60yŐ2?,JݞX͂^<%kECHeC& i? 4MEyY-ib ت9- +S t_6T$LgQHhҌ)%y?wlqRV{Yrz32S4[gOΆGBJ9/E6`zM*|TGs2$Lp )1Z$vx?á勗?Ms~v¡o1P/$e@ a Y]G2D$LF!Ptԉhr$PVV*؏x7ܘYheE>ZКf) Fwƚ9X p(r~CA2J ݌h%>gh'2D54M1ངe _gB|T( }V[[.~PS/ qZt9T1SqKT`ûXZb(e%ҥ(хuf\oĔȼ["bN5P-d- a[ r$ 'EC늢HRRUKn^mǪ(6 gvD~ R11e '_oyS40Mɓryrf,]lʤ(":Sgmx@x\9k#cᗴI=s 3{GBg6\=ݞ/^r8,5}9 nO?ho/q>\5.ZFCDcDŒ.xI)7~zWh]v=>ж`}_^_'5>` )M@YŦ5h7(;,0fP|{ū ܹai0p'ӳSlNNXoN8$)xw nBF]+¤ 򳺄I)X+F" D)KX%2,IbXy5JCƏ#:$ mIA?\wbT4UI{}n"@<1͆qc”V%HhΔ{el($4*[ꭥ#i4q̺y}#iL(< I)ǚ(7#ٵ+mM^(R!Jǖ"^DT^r$ |+LniԢOC$=O~%/=gyvj1PWԋG2:>' $l l*˪\. i@8Zqt1r0ks|,Hj7ӧ$ fR =EDK*#1H Ļڣ7Y74O`M!SS*N$Ϫ)8Q`!597O?) %dS4OcRS27s4ZV+w"zB9Qp;0q&8G;O kőtjՌQ3sz8ߌHDѱ>c<~LݎfѰkTMbXմmO$0#jHK#EY`tK,{rq6tRԍ{p}+,BmH?nY?s~|)Y&c#)p3*sڕzx,&ʈt!dtB+zqRB Ϟ3oG7 X-9D۵)M)$7_%qW1)7tU-|Hj 5ee/E)8^OUUbpOJäGwR،#!D(ali99p9{._^ ۃ8DjC4łfC]V10x/*@U!nycS.?T`Hd4AеTE.Je{JVX61=+#)F7`(@Ɣ(nj|*)JIFӔe&Kj h:QU"'-HS3yE#Q qC(I`䐯1VU9GdƵ&rWV ab{F^>{[_*1܌? IDAT-~G9AEJhk Ʈ?7RQΨ&`.%*Y%ŔKIU±GY;)0M//ӓ.ehעS!]ײB[-KFBA[Zۖhk\cH"՚vEP=zM ESLPy3 faPc*F:`|~M[_Pڢ=|,9L *LZ13%ćOץ hBzA#05 RJȻEtN,l膼ɎI޿^r)0~rsyfϓϾ>W,:QU>ØkO[:}s"+V^ǘvI5eemPVb͢nZ9W;gz|_av܋p b>`bJp$ܶ|ZMn%gvnY\__b}~'Y]dC^<}k;qۡaZr8HF3^<YVoB mrYAwM tOYk5*R.z q.RŘ|w(#.E;~)Dt{b=t1Ȅ. ~}hÞ*)kIt )u-h}IKYUl;?{5OwxlFNONW;4~@/(mw>]ÇyglaeP/d_klt8]Y]Gl7Ήų {Y+h[ apUAz#DUU UEQ[͒j QjbE.QưXų!D|Jԋ>z e5QeVtYT*%lR[49R7HhH;qCυj0VK9;R:2'"e%LTmMΦ(oB0|1EL&oA2,>M#eYPY}`4[CmGLFG~uw~WQ9QP3=MBQ*W) S*kes||G)r.E"<{4ȟOӤbY,WKۚqT3 n(ORĠDZQyKAƛ؜ +Fc4FD9%xUZGn.' FjUF%M*Gg Њ78 SR5%hq̮5d`xtKn̵P ٹH64؜:!%jZ"o$Ny= 0%/ǟœ]S-400u)AG,_`ԞWv(6+, T(Lw n2 cuah)eU9ٰ\-x[nj}=v_2㗮AҟуW413\E ǩ$WiJ9j}e'O/@( shrXNG")dOy9˿Ç Jt1"24' WWWhlN8==|gO3'O(˂YǑQ͂U$:?mQPz {R!s-~.+w 8OEaJM<%˲B@Te-))L;ˆEݻ9ٜiCu(+u Hc BwU7C B݂e)Ibd;zʪF@^2;#6*~vIRY,%bA 6r=f^gjFH#ZUE=`-@iQ+*psyERj}<|&'wZRU0q}Oe9(HTlzbe(8@(&reʅptk 8=&;"$!nN6꒮m 9f`t@ȤqHk}6*j g%e.2"#anُdN>SpΥװL曜SF@Sbn w,O#ͤ|&/Z%RJp[C" !8QUΙU9 SRx|L{jlEjB( ~tN\3Lb[t]JĮnwxϟ|?cAd>b"gR8F?@FF֣h4?m [|RxF|uth۠tC%_76G?=t 6E>lU&gH^ C|T+ƁUSx- 8{b轄8,?1ʯ||k<+kDkRJkq`ZRb?pv.9wwSnjQ(.9a"Z4 nB;bL"O90M٠Aǎn7-er_+%;'OOitY@kfP`k~B{MMV߄6Y"id2e &[M+apأxڎ?ˋK.^] .^]eyC c0sP18?"Du 128G$Y;??'|.t# \HÍֆa <{+js5zf@<jLiNoIH<0q$cI)ta%)r1p!=UQdƼBz&vOQ'=˷>G~]aիWy2q޳l\c.K^xJ MsŽ{mܻs?aVIB~tt(>c$29=J)1"34uCUIAH Q$^j1T5.~06#2FRVX츹c9G>-\69 rAIss4cEW%Rl] 0FEaB|@%%jL$ *1tJq,JLć$zAQș2!S:)K$ݘٸFC&{91$1?FY mE dO>pطZNĈmj\BɦEBff{u),uӈ!e"BV+&e y+368{P~E09&:$ʡIe%0u=f10CtHHGo~-ECTP 4x: !BXMP9<2d成LgO98{yE8zLHu[Hl#k*1^CN,>8>1Οt1"E?57 ɗn%g$uWe3>}fNJ F?"ցqi*iz&G\k\_saT$/9s)cpC/4"۵YOHDY COU.ً?ǗAP3$N &,SDO7#:O>pL1)e0O| FɁwBڜl,ЉJa1PV%A\\\ZI(~{O{o;_ݻum }SPbf;V5wCÞf˳OP՚cdoq[-DsoP[H%Bz( Jm9[cQɺw#faiz ~v;֫ >Fhp}yɰbȇJB$fzRDh(e\"% )%n. В4"r*&D㑀)^)QH,Vk’1yDNZ9Oש5;ap0RU X WuEUטa I%RVQ%W^2 =W<~ rGۖnGûQT*e)܂Y,(MSւy)CZeT (Yg8J@mDѹK6g nzA$hJ "0x7\MU|#oo<|H^֍E\iYg7t/25r8k$Y)1kalFyfn$;daĐAn"fҲҚ5!#|kICP3q2N@%aum<?~8lܬQ?֖p9.ǯb+* Ĭ>Q(B jSϟ} +ơ;6$ܨ|dQun|svw1_ǗW/|cMZQ;׶}{o4QS99alǻۆg̅unu[W ??C-}]y_5C?|V$%$1EzM .  a}vٽ{tm/d)& ÞUdtދENFM)4GE8z07EsBZ<@?}@X4 =|WC{A|tp>Fɞ_)iʲ@[B)v]G{hycc ݎ FNMg=R b%t'VO `}zB^|DHxP =j'yvГp#Flm5F<B YXWX[R [f#Iq)_<aO{8>xCЈ"U]q=kڇfR87@۶2Ţq5ZHo)YWP7[8fB$L~`T3n|)&iE`)TQ}|_gZr0EkҼi-{2ɋJ:@Y d/Jp[z='/c^B>PdžlR ׀|QxjiFZiu`ՙVc +"sSVxyXA?#,"U!Լ:p9qp<}9~1/^< ԘX.VN5%-eXT'Ve(m59w1??|=T BǮp?Ey8gtRDNnu)4#lVK3\ ];3C Qu]֙Tn`Q7t|o&>_mOHj g.,9 Bm]1LA#dEŌऔP2sd"-""}4UD^-Mri 4SeKӳӡ9d+_Yfߔ (YLFzTnH=ۛ-ݞf/qu?0t]/ tGb-Jy\NLQx'ۂd%,- >bB! =s|Lk> ø/U^^jGA= #Ƃk4l*1CF"K@05K ̿\ӝ4=fnGHypd6K Έ ÁfCR75V,SW_q1&aM!N^HОdDtyqG~_w.ΤY#;1(*JFXskhjܿ7.^c..X׵|E)*ʤhxRTH{c>'m 8"kJSY'nGU5xZ.ʊ?#>G:J1#"C&֒Mס?h"C+U冎| Oo07 f4Z8U2 ѳ&yӚ!%>|Hi NL&(@F!ti$RnH`W*:b9Jg%k љg{wwXUa9ۜ@,{ݽGۓt'ﭳQ|L,+a'~D?C}>c'P%vaGjixTJiϡmi$t vnu\rOXBR5 ]w$Ym1~z~j X(7 (*"9")!:1 >gTU86҃Y-s3qP%G@D"*=Lg2ٚĩъLT-t0܊ D~Pi9&$aD)/?gyۛC?ryq˗c1oeW ֈ}_~dy*nnSx,1ݷ-JC7UB4(UgO+>H Ý b01!zGY6 cښW4MEO.v?'/M_??_S 6!7?~iu$o)7!1rHbR&{ HҚ]7#Eav]SdkƑB8&Z[Pb ltXEt ĉ>?fsrʷT0rC IDATsݻwYܻ{bu  r#UScZn Kjm8{7ɴw暻v[wC/;E .Í #7}A|lQP%(MQ1?9y1xJo*JU;EIU]!^.ʒ߃-Kٲ*)%jC+k4R̍aQb 9+Zhe/+h( mmn(UQ\HUe+-}am^'[q2G(EkvB&̺iqPZ+(ڬN# M* pł͍<|~^˺ZC?JE׶\gKh7|G,j)*߫eY`ft1FM+XiM O) I& ANhV=#Fݎ,8;;cszҚkJQ7pd]:?~oӭuIRj­)^H;{yB ^ 6R3WɈJ1 qjHL)'Vْ<}39=O8?awUYӶhXB)Y%9B FCʹH.FoGq?49ڶc4 :x'dΪ(0 P(ϻLI|e2Oe!xt2 \V%hIVJɮztÀ U]뚾9_?opzAiۖatmpmo7o֚^.)2InAQX&︥V;5sc&y 0$ٽ gFI(k1=eQl׬VR(2Yta_kTĵ-$vb_A~bEA7V`"cؚL$8Azͭ+m:#iyȲi/2i(b &7 =Z)~q'|Glb)?3Jmv= E?S~v-9z|ic2V.[`Z)p3ѓjWW21dn]X]՚IHN^mG'teeT& 쪲 w zoܽwjɃ)lYOr~P͆fC4زY4X[܂O3jQKR (h [aK!x2*R&'6%ES(,i #pR(.SAWJ~j!yTbHZ Ϣie0w?5BaȠ:ANمp*Z|GZ(~/1pQ2>J J@G( -n7]={˗/"NU݁q>qWH(1ėc{ cVduJҔV退/N$.pZž~ū+q<{ Ȫ^ XijŰ);vmi&'*2d;ݼgib>&SEˋK duLmfOqr"[a~/21:\!zfA]7]OQrƁ;#78sZdn$CԋzL.R%hʅV<9asvKv, mw2+PWWl{7XuU@COQt7BЃ4uIi[h[,BKp l B4eUKEL&8 h!s}R&Rb.$AK&S ]H _$@ɈrmO>ifAlQH`X|d'brUao}E)pֹXbDf ]{&َ,1&B(M6HiML$7LÂfZP}-)DQ&3D}Mu ]` ] s>iqo{@Sxm(CȈ %$fKuӰhKCc?\`}f}{C#%~a{CS5 #`:ư\<#ZHFfF}3_kHH_յt!e73G%$atEK>(F^̃2!ɥD EyP\?2&pA*ZtF+nmfT.^oDީ(dT$AlJ!}8RZ"D]U$lk3j;f{GKbJmx2 aYsz^zچ٬Qdԕ\31QRG?9DzI%":UYFKJkRN)H%Pޔ9YrEH*2ǘ\McM%Ҳ/N9)ґ saÒwQ$,I;8}UA'(Vb8U rB);5nGu\__՗_Knooqcb۠tn7Xۀ:Um:;T0lcHI(Kbs([ᚥTs!g I¬R0Tč#U5"$ˬY\+.%%Ֆ]]OU1AԸc-VXcl,Oi!_;ޤ۟8,㐀1U1͕}$+$ l?3>xm¶tq-}1:1d>)TeI>bQLk7xr:yS!CFܹE/^O>wo[orju;k99?cwi[BJfND:oQ^D+*U1VXbQ49!딨C)r#~w Þq:q{}+]5}70q}̦M`53v{$0J$J[LF%P)BB1geDQT*h-fl@LrȚ|e ~t3`9d# #UTK;'rq'Hkkb֍kLVT؈Vi=LVh|R|q K_;ɨJRt}O;:]|Ϩꆶm!R)hpPhTcuz])68 -!F[=5TFVA @>tem-T8!BKWI,IBPCӤ0ZЊA!ƪ'(_f:{ 6\W 2g/Έ^%;(^R(O$Hui/̣#Hjk Vh}v/>e+bY]V}=7zhҘM\lp~ii\u~yIX)(bk| rRR§D>4%}'=o?~ml v1=TtbOnQ ۿ,x]#?:%TҨX: 3&_>}oϰyOɦnFNQ wat=mC ׌J6sK.|iލD \.F G{钴VTFs})Dx!|ޟ}}mּ0[L*#2$&;*#Nea- 1!9JWgv&;nu#/m7ܭ7X ˶bFT A"eЀ^+HRL'B@Dإ!ikRǻ.8o/#t@B0{JR`В@)*0 >@w=)ɗw2.j?{W_}~'̌v{RJˇ0z9' H)CQU=ޏ7]txe1y^È31 1U j N, hzw4tY[&0=L57 u]3K{BL"Ⴈ.t%o@ߴ۟aB2ubco)mOEx[7cJ Sf,Z>ge {1[ '>*\tn!*Q1t*u=dLJ!b;.ɤv0PW5/<K1>l~71uW|c-;q'4b!(k^(UURXkV$u*&Cq}3;#776n./f\x]noonָG'9چ_,غf{aY[g)#[ !Nqtd31`ҕ̙bXf>N C9oHmDm!ϡAe>8N0 pQPJ]XI:f2GB/92*Q͑%7< ==Tν~@J1F="DOk yf JX.8bm \$c#8SQ>(1;`)yIi4~H"ƒߐ *3ޅg7q 0 kEڿv<23}uҵ*f9*]й]`z t5W7A|?}5;Q#Hbn{'cq^2)%ancAy]I8.esяxqo~ {i[\OӴsБ\?XdJ1;$YI|#u2[&=~,8ﰵegc߲Ĝvun`Uv{^x1$wIdr-mIvgfanFGMGs"2KĸE'pisAԕCba$Nr9 !ĩ- Jsd߃1Vy򎄬9F81AFjkiDC &i\[o7=bmDeazW2#7u-Rc&Y*:z:؏_?C㠔( rſrOW?F÷{zp+]8Y ʆIY F ()i" ^_2t=חw{nmpǍRW~ | C/uQ~7n"_|)gy7;›z{ /xԫnyWw}yjryyţG~cf[T\ԒK2{3ZLaq8mK ֧Җd(080qv3kkܿq醎~~uӰ:9Ç4MC4TUţB[ދ{F>0`s'H桥[HR+cH EmP1FКv;HƼx}ݎq=7˗p!Z)[﷬VKϋ_MHN>ƀ Zk1HǬO8X$N< nflqΣ*A1KO %Fѻ^ ݜ 7=se j2RR$Uf۲j!-6I$"Ԩmmr HRb̩>O}#lF7#oV\ܻ'O!0%CD ]/JaF a*R(\@ǐ@ S~tOd & SCQרPGH|Kq,ldM!&R ~Sf΁R FwfK+]^>x總x$#vM􋣭+PBng N)%4#ź8B# }H1N!P%]B$ATrxRZK?_?GG0n*ַk\ܻOL&s2$SAi#?=BTYiw֛;t@lxvU||p_ IDAT c 9ߙ{r*g6oznw|yϹw00uNG) FVc4cE2tS`2CNfy2YAY΋YԨTeݎ$%-#NNOwlƷ~?bGw>nw3ꚨfV˝0પ*!i WP R"3wL fX("89v۝RTw5[jkb>t+./_bVs򚨵 a\S$¤GW8 `l-CdTd J3#*6n 69|F^'11₃ckj[c+HȨaQ Q!^]$~vLFxT֊G.j].6RecVKLnVd)%IRUg>1X-?= ]דciI,dIўyR$|]V#N+<#,OٿL_7=r7& <ǨRX'57lDD4[\A~#xqa ݆gϞSbDQ+8!0=6a*2Z:.!#" K\/uKSg1ŨJd:Z :VdJT%QLmⴙzMCUI_?5~f/H?]bqhFcm]3 Ive}FB|?XX.\o0k gMC]7&E>nZ}k>M;䮬[IlBVJϵ %ƃ!ɨ[)l\ b6@XPI䑙A EUc"N~ws[X6TV<s]3>GNX|xTh[<=rIӶ$\^"1-ѰpamrߐYD*-Y bG*S1{GΑB'չipԕ]w(9-f }OۓGgx=臁ѹɹr(lg#LƢ;G33~!\n}儸 , bs(@)Zp vA (ѵ;,sjk11!јJl dgR̴|J1_.@mERIU-l`IӌC˹{02~Kݶݭ1fQOFV\]O>ᣏ>*>!׷k'ӗ`etHᵰevGJїJMqxtP:)!u@& Wȃ:A('[`ʙ&'ޮq@=^:k= 7 [Y[qe% J3=J\HFӹ1םpCJ"Cp{%e.2l2epn\*{q;_9GL?yrf%d $SOPRCn|N+v- 6n9M`c )%7^p߈] bQG?9BHO>rO uGC C۶R< w8{l1 @.g5c &9fJl2xT7ٍDtP哇#s8uq"GFo?mZںeִ;;˻b%XHF獐lqȣƐߔMW '%Ȧnלw[MEF*eN[lMfvr(5ZC;SeZ6(FB^12k[JB$^tN,s}$0;zMUUж sڶe1_߮/Xk999iZB6FFT{>3ܟ>|??B}#ZsnoIbR5V0_.<9A#R]ܿO\Ɏ.!Z/'o_ |arqzq0=Z%_[q_ 2*`idݖ-~Fqww/n<}>l'oL<.X_%~BQOJQ5>|HnbV(" E.9;x\LJ_R8.4fZ& oPxfy%fTy 5]plh-cq 8;-[ҍNƻJd\Th4:˅µuzh1e DT UxïN rQ6,%']]y?Ɋ/ 1mXpng7ŜG+VHq,æCv9 .89(GP\떘D{ ƞ5 F BDcl͋ϹdZ1%f~~?9==eX;}Lcr}ks{N Et#ŕP./0|B hM]LWIL% Zms!M{%ҹҴouyTO$G´uv]LvNH!6 g<9* ^/IGAF1J3̼y{VrI۶8A&Ercʯo)}Ýݪ1ZlO>O?XV~K2f|^7@G|F,$<ag)D{U ~$ F1IQi=M;8a=Pl0:!ΐo~j*V~ުBr ZiWW\~dIXLm9w=l]<~8 c*ʆRD75aZ2L6d!JHMFsaQ'$!@kkRy.zTuUOEH Ϊ\&ӊLRJF!]Ҕ ŏ"ƈiH\x[[|j8dLV*C5kg۶|Ç8;`\1ͩ傳SRg\^g,X1(5eF80&5BLDވ1HӴyt^$nJcJO$jf"su(ޘYcUyR5_9w]K~,AaRW|NV>6ϏSw|N:߉XG9KkwN_#(Xŧ,,| Tf?F tP*E+]1*H@y>IeD4 CVGmÇg~V<f^ss}-Rcجl+^;bJ fNH.5R5 !|&t tOTAsTq*<-UaRI園0S.C d)6录1P˞V7ͫ^9jH=mUK\UF|aaQ@7$ڐ6s^ Y!EN q~Y柄ԋ4e#lcd0[氶ߔ[ ^Q^/^\|R*k(” G?hOٮo'V2E?fMl"ey"S:t.H q2"1L!1lί_# B#Q0l hQJq)~LF(-$`s^ ?o)P$U~*U-Ewb{'_v5o=ᣇ_\0NQŁo=~bY`+٪nTZ&A^3q{7Ɛ|^cdVVA)ԜOBDO#٣  ~wօ8<4 cURRQŽJߛ/PYS1R.ٔ1Fr/DLO{'^ ᕯO¢s,&UBL:uq !@ T#/?cǫ 7:#z1oXgym?HrkQƅ;"v')(~'xO9v߉y0||mI:b> 2Z,M!$DY6-*CQ(xĔRd*t]dh#HH5;=Jx̊.aJY Kd| /WrTYM,f3F<} 9V,ɗ!f[֬N[.9?;E+0G v!.j~OynolP1_r˿{Sevw׊W ݄iږ'Oŗ'?-Uep1a0#Ef1k|UdÜ" db@8HG<=OrHB~,Pwb$|9TtЎn~#nj}bJVBsw2z|6#UA5Hٸޣ+M]׼}Yfv;vww\_]S-ntV{g\ܻ'#k5 >eJnH*wܹC|.FHWAwD3I"#Zχ'(8*A A+%))tJ\4P AF,CV+v(<+Tz]e[YuLwM&J&|FTifmKӶw[nϼi ٔQ4"ZGTZ diVnjIbNt#YN۶\\\d^~~wwŒU;{=;عxoXwB{cM],|H$.mm Xk? ~Ĩ uZ k{eFVFnx #l B9~ލ C5W|7 'uvcU.;! F^ Bc dN3+IJ먭8]BjET:bMyԒu-~9yq5]qVdb2zW,-HWqS.v(A%ptAp Zc"j1}#ٸ"qO)AS+I/o1hS4q`{ݎy?C0ΘV\ܲ|Cv=O>M=[L !z 2DJa$FWa(7F߇}Eݗ7(@ PZQ$Yr`*NaT>2F['_jEwja%g}m-8@RTFWNh:!h7Yjxŏ>> \f%EŠVty;OƔ80:/Xg } gglַu2.سMCHcyVJ^Ӝ{?z~=^{bbz}Ǭ1|d v>:.КVfOs~ۖ8#}=+ |jsV''Fe7seTs@sZ`)a LL~oKaȗE'JV>BIsR|Lk娤 aB-LhS,H0 L[>{J6M0zu(踽B#V䵭__1p%]ױlve IDAT[TF!{ckdxh-=<*%hۖi1g2VZ2> {U R B|[-b'u=?G|o>|d˫+bJ)7&b%)NRfc1;qqgO+>XgTM1r%7c?9gܭ\ps}ͻZ9/^=hHl7akơp.ka%гpaD5l#% dWH)upp~y/_^B Pvۍ0 L.OHiA Jyl-*!CQuNuBdM z 9CESZ18B/ȘA繂">7nX/ ]Hjk)!$y埥@~z). R.EQR)Aw= įxnod?@T>.R8(-ԡn頵U*9?!9'qv56Dʰެ!$ȉfN X"~ V <>Eɽ/I<,2|W(:PC"x| I+|q1b/q%UBCw;6MlsVJbu*Pbnn9;9$FSQiB჈ < X(1hj .*k l6 a }wǬ*n}'&++|srzJ۶\]^>ɓ R#vƓpyu*V6P?xw8;?g6+[e;n&f%M; ZИ  @6<d47GE9]-8wF7ePm+E~hۖ*;q|5FǨb)p tÂ-(xPRiήT\3*1]8nx~yO9{>|¹@eQ('yz!)8F,`%ر |vM _U I7FJSvx.|o=?̖+?z g'P˶m prU%MG6q8 Iij[\*C* \>zhbʓR"Pυc}!tUme! J,ybYX.m4}Ѵ  $m4MO~SVnn$##I/?TSѴ3?9}Ϟ>e:./λc2x*ˬY-Z{󺯈LJgrbJD4@ * T2%(xHqvr93#+{| cֹ)CW'9Zs97(s=VGeQEZJY7cj %W,QTeB3ȉ"UY;%t:5iH d@bWPkw{0U,%aI 1DܝO 0W)'M_)9%&@Ip#+RGF#GH@S v%_Dٔ/4,mE,V zTreஃC2+z4 WkT0rũϳ {r>B$31 DqDQKpm+\iB3R"\!,ERҟkx|[6>wmXvA ,k[d `-Xa*&@'?W~UsPkUku.|jl {x`ISs8`R ͩ2 T Ke0Y no9%\]^, }Ȃ\ |`0$|ֈ6N8Nt~C^ǢpTH^%kAlaF6$0Ctukg gN0sJҖ IiVk+eƲ1"֟X4%֠[-A)SH6<'9L! C]sG?xsYn[m7 , JᅬP {r_/; vT՛Ϟ=gOq> ~w8\\4֊P[GN8&ӄs%&K9{ƌ[<AQ-wAIrM_~/?1x,i,x8 $}>1N#PQ0v4c?x|0 *d +r֙\Y-ǃ +UZE[Ye>c$! NR2b2=5e 䭵,<7(,{ɲ!Ԏ&\)VAmH"4y(mumvDeUѨ/kfS &T6l ZU d`m61A$1H |8a[,[#y.F QD RtÑbd\tW!8Tvp#vw'tq@-3Oa0H;'' _ǿO_w%`Y"%㖉_7nVwۯk:$D>??¿+4()!ƈJ,tm5ܜq UE!3s2|f$^R03RCe^78.? x$E|"ZU@c:jʫS pU~D0sIp)} ⢏*Ki;WgSN c b!NE%g4U?Rj32""jǹb!Z8\\`g1^@޿yx2u1zm sn76Ilk> H5xi88xEwSJ)1jΆvȵ*3(JN( =xx8k/ WOӂnN4]pyqO./~ϲ=>s wj\.=AX[-uv`aCtE?/]GBxno1"K 2md>@bDIK]!\ꐦýV٤Ua86U>_^VOJ_J˚D1a^f ð!y#51N-\>F=Ƃ^RFY K҆U38e8c3L'iA׋LmIKft]ʲN Q4˄apءƛO4'<y_@UFvC^sn _WTo$GOwsXNGtg;1py« @-HL0x|Jt:VY_+c֟SkL yrE$={|He b!3O~7]ߣcB>M,ZkΣ֌SBet xcxD'oUc=8= 9&i wFRAI`5./p&Uea{J3E-m{0\D0 )<+}$UH9e'nG$=dTo"aF3bAU" ]jm'xrH˄],|D"qاӱqĝO VRJ= Hh`äe6g|Vx *륖 NAy^$ R*NyrCW)^Q:`pCvE&Ew+l`<* YP]2'ۍ972:jI+JA wf"&| _n#w3NX$]"BE{.5~.<<s^?m8Htċ/ps}Ow;s4 H]pp> v;_k3_>>S LI9VjKfbKXQGXto {7\A!F0F|o28G,YðC.IL/P3̢"nd輪.h#+Jy*d/9xy?pqqHKbEkOII6fMHfpiG#7-J%h<7ƦXjfǭȭ0&Mۀ&SV0D]ғȅc/'ZB/]PY5Y+n*6R{PgN\M"-O pe1}i$eR{ QCW_{/Ra - tp;IE&(.)+_)0gI̫sXPfEuviu2d884iVRg%܊ ZZqB XKғݰx,mD kF#\E5%dS&1SR$c l3wB\Ju(-3Ғ}?K`7\`泬AG!RWږruUy .ޛzAA5]b-eu4R X~UыT RRG!hE"dQR saBCؘ5!ϔWUў'<v땐V"n]Љr9I~ O?,}vMߕ0zYJFII\PK²T. 6=S)wH?E2pH"en_+'\ k}oUf3R9%q;}Ay,C -˹/x>U6OLm(RqeMSdc(ky%#u> ǠXo>1`ɌN 0+da:GA"rڞ }fi܊\ f.k\ ^?S.DDCR sJ`GR*\yQšBNJpq\H |>wj% )- ΅O)3 P|ݹ*5GT6=I>}RU+hs)''?B"$ Uӳpw2"Vctu}c'9^u+YO-ܬIEݚ0XO*UnŬU3yUS9P K"r-0F?ȬO15ΧQ.7mۚ5tN( ,*ziR# B4P!ՏU:ڂX$;It xKN>s\RjW4up&Pu) > :.\nX!zt݀%/ 9xmSɵWSBF-UVZ&Th%epdx #գKΘƱIsͶfl ]yVY̵*:$rSSay?9mtk%* L>q"EE::8HfAJ4b \pٔ `U =dpNol&FdF.>Tu%/ i+d"PXmN[CF4L Sa^ 'pO4{Sng%p3M/ ڞ e0 !SʔAI`U,#~L$Y1Fe% Az|os\ZرVZyۆva&A,79`ڨ]!h q7ɤl$ X-1'H]ޑS';sAؖ` pՍ7 Q bTl#zY"`$BNx22˚Y+%Ac*C^fqgM ]$fq2;'bȢW/Jו́l. Xa$% W%uM,lVK^|J( 6C(TzhÐ;i^_kkuq^x+n#et{aEsblp|7^QEX!P౳C dT Ȳo/`8M9IXsEe)L>Dz`E(BWHyBΤKw~sN͂-k_~,z[d1{<x&؉^YbBm{sV䃜md13iB??>z\\{X $*kջsT aȢu0)gPHq`ؠU hgX-ysr-BS>Se)ZcW+r"T`~LBC*Wl: SΣys,,Ɉ뢐'3CR)sbɄ<»`̥@B- GEZ_sVV5DHkJA3J%jޣ"sMB+mfFuX$90#A,-6N:{e_ʀw R988d1N;k`$ޔx+(S@Rxn6|w^qc^ojWS[eM:Z70 k2iYIW۪*̨D#R)-S8Hκ$=\c(iɍ $gأ %e f'0^TDg*&Xk1V6WDDžA},&l:F,s Adia:$A-9p}P TN J,y0){홊N_6F|K_'IFUާϾfM < ڬJ`6k b;W@9?B%'n͕+YAKhjQk-iQ;PSo XI(L"Ѷ5Pn NyZqb]Th\2ءUuhW)+&Mz"[zJh|jb>\ <\ Q*Ze2x|_+m XX`"#t)+ā6{A77S0RPA67ncjk?- vM- i&P;vyD3xԉ_1H(&a{'ػYnmH !B  {kGIu;УV4̼.UKA +9K- d #IPmwL$Ȯh@1 &`^ecZ_[7cJ%IĪ iN=,+ȫ\-8.&\p8\)>yg\\^˼*#2M"AkA*d)-XYYYak%q@l'I&ZZzDXbfc^Q qqyueYp'<ZW@VMdZ(JFE[_mͰުTZX'ݱ$Ytdf(S[ҰVKYIz+pV ˒e#VjG0|IU Ys'DsY+q 䝐悶{X[8` "x!reA.*|&ZH493Ry^̴BvlpuqEOT)\,31#XHU] U(^==P™#51kUr\K\]mkCt!H!},Zs׵V2eֺ aky*`h Ά&=*^d@gZԪMb%鹬‘Kٻv g5j>dCJl s璍0k< ;Lw]U"=yޖdKZC'* hMegqI^LN8 ;" }@)3r)ݠd,,@RE.*"fX%p9R$%T$ê \dNN39$>D]CV֕ZFZ #I+\d2qk(D6B>󡩳,iķքͤi>I;5c$̝4t+@d]7M2+ 1Y9Aa#vOl :hDfo_;E U[nj ^*ccBO*C{ 3iF{quvrN a'!@B9tCN Gx}ir}C2Sei!T:1]z׏wTUX9w`GzE PlH@Xj[T^ND65' ΦFqFd9? LJ[|A <1W8&d*z==MnshWV2pw28W5cI{\Z?YթS$v΃D2S|:5҉]vC!W fiwHN`J2+@Tm znΛk,8nieM[em5N| knT !xcOl]8ȥ v= ; t r,{A'~@QWYtyRCuhmmVZnx zyy4p_˿ W8Drs\#1}˗hU@lvoNU[Z0Zb(Lm ,)3%9oSVB\sһwNTF1xLX$AqJ#_4bg\^\ɓKL&1ym*%͹IpUZem=F@Rk ;EiڶZ)Yu-I,m8n^ù6oUa6S렪?%۵Mw층| Iutr.p~XtEĕS|PSYw[ewJBnZ; Yt wjd?7ۂ!جvi@h 47ԉ>8ʁAUfVxG$I'\AށuhVz*[ f9canT8Ԫ\ J~Eut+ FJ rݮ8f'81)Jh;z|&ZWYY{@/;]D^d1qD4O8K:9ܾEs:G]=y`}ܜW!",'@2Hu$PIz&V]<%5TRwJD^^Ii6)nF9;qs}~eq^B 5% |F{1|@? 8@86A? m5V6O `S+6 VYgTp=o~w&%jz*t}VF`y¿/p{|ov-7rgkՎvQd?V3!;MUoUMXOD'E~rF*;|K_ƛ7M!Co;Tˤ .z&hdh8xP+DH˲`_H+rgFMhq}}i.od[v쓱V61ߋKIRYV6))|9c <7aCEb#iI.yxn}>ki3 Ja0DGŮm6MS QdPiaZA~YQ:^cl!kR]sp7euUeW}$%*y07FX\[;vVHd'];g밿dr;aAz2R{@B: CG)-8`C"o|q:0IɹR*C' z%AXuC* _o7],CB}%rMիU}hc1g<8)AZbb@v#~_ޣ:+݀X͠X-I/\W%Aafgͭ*kq-ϵt69'77򛿉_]'6rL8 Zqyy~(E8 `Z% ^|X mgM߂׍C*+̓B M~f-8:t1b&I8@6 xxׯp M*u`IUvx#ziy{< RL-CXwJ_e qJ D@"ulmMb=_DJjm[Hc#@¼S[TQA@.Z+V}uxi4\0 n7wWTdIࢶH4,UТvx)sxR6hYۏGs k(珣EC ք'MRX&r6gPuƋv\g7ś;r!zF*)u]2:Z]K󴴀agAu]XG.eq j,(Wkt²,X &]ܯ x+@LԆ+Y4dr?pد=><+_GQd}kS^_+S"숛S q l~Va'ArENm*VM b*M6:^; l4ˏnPDծn\I+PzbSp_@@6G 7|F׉AZC'0Hg~~nwsQ빖γp5rʈfL@פ\<>y9VN֟suUmf"HT/j=j)8֊;5x M@Cj Nۙ6QfnW"`&izI됺_/`jh`J.FѺuZ,Z<논53 ut ˯%P6|fzu0$v$KFwj][W AleĶoh EΥ5bsA;qfnܘ1?ś7b8\1#݀q57ϣۆP6n"n FU&rk:P^pZج}ےkkA+ &<#=0ǘ+_uSwG,X+iy` G]{X˲4{FDFVVWuVc$䶐0̱sd3d- !,̀BXBf[0NLH qX"M(ʹ^cYǖZ8[@A$bNV<c>r>U~,(܃|fʒ,N]:G*TcK0r[`RK[2 px9kbJҥfO0:a58\\ݱ ‘94E˭kVr0y)s^6³blm0kfmC1O386q@.~mؾP=sѱ#JnavXI;eY  QlJJIe{z$:|p]ϘΘFM%Ugln/{.%C,IQ37ZKRֹmVܨK`؜|9/i`;٫mZ#FԈsЕ"Q!ϗ>MK!M2ځ2ZY@p Pdv; E;C4h@LUnD[ŹǩeMrw(ej!tndzݘs*ɆZIdξU_Kߺ"1Ԝ 4n:"41!42D;c%ąϯ)ssȋoqwp{'iV4t mo벩T(JxP%]4j2" L%Ͼ]fLpRv/Ҫ 4HIE&(M=FB][ȶqp~ֱ8+&Fhx9]q:=?~5UZμ3MoY"1x1[|z]+jDao3u|֯\gea @]4_n>Q>w-Qbaa18>q, f4j`JH*HׅT]}jl q vy(o Ƶ[O V52C S6NR{6(eI(m}zjY:^uHJ* <8 /D "Q25)ޔ#//΀vC8 JBS$'Rf#{ai o'o  j\~wѨ7^U{9EՑӉopw u ~ϒfn?ad FHSx,˄(HڻgCkjMy[M$^66&˲p{y:, ^Ih8aJ^(|aex{)zsqOpa1,g4IE{6<5&kyhMӯcBu=!Sfd4 o+hA3-9/$M\2ICb{]ױ,] ]%ϲQ;8$^24} y9Fҙ糔  ^VL#-U%3(C"JXP8PX?rYK֡МtMM$k8tC-%θ7sʤeGC16,K!(W<~rwpSBgqn ":'SgXguF h`D-) ^[ %=zM2h|+FBSSY3!6tC`,jUKz}`WP/ Rc03X&*dY s-NLK.xr*dDY`](s cW~ɍMsu p~sE]'mq|mŸ|[Wݽ%Or&Adv{aO ǫ#q~c)S=CG !Ik3Oa8Ox*=v,%sV\zs`,WE5:PZX8?<?L=0<~4Zrix=UNkU=O;men}BMlob6[w`c[ԹqUAڂtFʯ2!zK5ANct۴UzT kIN$m: ?pȔ/J"[x]P9wZmաļFw:Ғ*l4yl]&g}-,ziv,EP[`s%GwN:ada!'ņB$x4f aUvJI)'\SOyрhS i  .줇}pDV >bE IDAT#DbDUTt:%Q$-薩^hNdVoΔ ,K233#:͘XĸsZ@ydBt/ *%sђ[&VÿukHAJu|ġ5MBJ}<@%L+,wdg@Z]9(9|cGBhǼ%4ª혖V P^vqe/G]2NTk:_寞Qks^~iG/+qy%-㙡D*'^ ߽eܷy:s8Y3#C7?&,r2^ZT+ Xn QsT/2.y~}Tnw,s:>rdv{NIU" d^&[9RUsRfsQVӴiDOUBw|.D#A]xT#x؉st:=h/eD6@T-/Z;3GKI>JӝYSkL_f88bc)U6.ZE/۵(i }[k}V_ eS w>:3{0/+UJ'ʢ(5Q8E!G(dɅۜǑЉͼH'i({*+(&%ӂa>OX__1(sdǬN3X j1ֱvRߡjEd~DΚ{ Z;!H> t3K ?E1xuה*yIKdf˚fsl셛5q}S B[_rmmTeN9@Jzq(.ir-5tP(dYK}%L*iYS%kac3>\s㉚ 57WWiR8'uInbec5􁢵i)-(VA\眐{N} \\Sׯ_$ksL8sO rs^|e L ǟs<>_B<x[^}7w,ӗ|ivɌԂy , (]VHJRБN\'<ؼgbZ~/M%@/;Ώ%y<>G Rᕇ!ONP5iD"5U woeb[*:#lbɝNT?ufoH: 3үk}ٳܽN*h蜅Ki_ 9<Շ/J%MENcuhkMه )e^| e kG\GTyvx9k |^kFq޶7?o"#1Y^}N-Z 6ˣrè(SCص#ϟ?W_TL *"&do (}CsKJORb'!V2Z H^I*$qt (9gkn(l1^mJ&N 9uMՕkaPÃ201Ԫrjg`~S  <!Zl5RجЬ9auޓ->׋s\Oι/lI5 ݳe*J1&JOȾ̽\+ iz1JX@ȳg0% ;v݁ӛr?y~?'b8OrAJ$Y@>[)g""m9l1c%q|m"{ܮgP&aO\y{/?矿"#W;N'nqϼ~x=8Ƒ{)qG&2)dXBe\֕H?d׼eU5Uc'T+yQq^𳤩~뻿͟WZ3C?puu0 <{swq4~l6m-µ;*X$.Ʉ=.ӸJwww .RuTp ma1 }{H?tԹlӠWf;˅cD.k\!nX> 0cAuCb:5>81#W,N9O0&[-aºG{tE۴;9- R*=Y V_t2NRB$e`HV+YQ)onk]ǣvl}rfh5~gˮ0u<3νl;]u>}U%%/lYɞe_?awx qZHITӒH\e<ϋb?[/JAk,"sYI 4H(K" >T:;W}|-=3aO-. j`2%=3/ |s>/_sfn)1J- #pFp@ 1ei!9HJH #YIrW@?ohAFOJN>vz~{:p{#Q# k&ۅF,kᲥ@MFc[_l'C]=gk Ul%:(":$cVJJIP `Fבv8OW | IX3+r_mGCȃ[\[Uju Y;#ͺ$r)d/l.q)G@Լ״l2kiӺX$/^ MZU+"~E}L'NoB^ԡ܉ἤD`BQGTײ`:}El6j6Y }?` <SWhd4 QZ|OWFݖyԁ|(NrNq{O gan>õsWݼۜg썷"kPLu4o5N`e7ZF )5Twגg׷ƿo}}{nw_Dq)G}Dg޾'T瘗T!D)QH4$ eIQyӼPp$%P`3"kJe&e\Z{__kZezSg']O'ܼc g]P5Kɧ9&~ᗾÏ90p'N}W5zix8'c־@.PjTզ9(%!QAm2(NDǑk9{>o޼e82CebO6ZKez Y)E%kZ_ZsnLmm {E{]K- XKf+y!R,N8{a4O~)jL~3"[Ү/IKB3}f7gek"3˔AUIKV׉! ^4>R̈́ XZ;hfSs5l!F/xdw;}ȕio^igi(TPJv2^ a*5af7g^D2l, K'Oe .̎%KG8Xrgkd4@ ERMT);&o-rҒ)7pQ8vXɯe6Q:yzl3n$l~dY,q^4xeX}d-'8ZR:S/]x8^w3~f0/q~C޾yëׯ1r:~LB{JZQR)LW,˓s!v.nm͌ꪍ0 w83/^QJه >'sw{OIY8yX#"RkO meM{S$K)`paYCZհ%˒3AFLkDqFϖw'!ME2h=4䜗hLb16š*VԠΆN5ek+5:*ZJ_eR [ RIRMѸtl!,l:OI7W\NڼF<[ې8Yff/8u EQ.oEO{?{nغV߾~밬N9 :fML;!k昤()ۭo$Àoo'#É!x\q۷D=%n=#*欎eJIɭdi ,v+U{tNc`!4'AY87_aMA~«/>?Wȩ7ǟps<=r>>2/k+^ߟҎ,5?=BÙݡ#pǙp`f",@la]KA-fЮ)WW䝧"u23=޲S*?~91NT x4LY?,Ag%+3n[ݖfn_RyX]ID-RZ<>>=f4 صbq}eLbj]ij%%J~:-Rۤ1C~v~&h TW>Fq IO"tNGϳ+"`A.ǎy8bht}K=Wr-Bh٩\`!jk씌w>q-Ԋ<3N3}vw۹E T&gyJQN׉em *T}8WQ - E.Ӳ+%v=q ӎoc8m+t'ZĒQv(0Fs{" 7<ۻ{ |p|%D]8Îۻ{<%ƞWoxp]dΙ(t9 BօARwu0X9杋Š@3/BDw~w_,KnQj7v=q}/^8CcZ%ڮt.4 C3(b7}_kϫW~vsr:8jTQīhKm'mG3vVELo62X>zB@{Ժ!S/7^s=J)}52Z2a`'b 9\vPUrQtby8躞rd)e&ZA)gѕZ YKǑCn̛lKb8R+^g;SA\xu`A1FQ1=,j޾ս+>Ŏf~OJ7u v#LG< uqq3iR# d$|ӽP4-[Ҝ6"$)8ު 6x 4tgb!0L[AkF ʈN> 5+)t[ߓmDQM0cbZ O)>O~@wZzp$4||xJ]TY#H7IqUZK|C%a||\+r]&raS IDATJqI AZXKT| >R,jNySU,tL*EZ4ZQE]_E%ȕRw=yZ *W[:RQVwTS¹ƶ1`ÕYS4RMFUٲ`'k'~*PznNj/xZz|NyQ[:-TU^t ӶA+/s%olТpdy *?k!:ionM3GۛXTkNdZQn> hƩ $rZ1|E : t֒%eΏR9,WND)m{6DLWFJl>ئe~∮kWMCjsv@uVaY9Ϲ9!^'r1Sdں)EX:F4_PCZ_w{won Ɓx7q8lKλWZP~ki+H 6=} 10tsD%sӜqi6(54eRz*,"8!_ AZsέ?OThA@BJӅ@t|W3E!G Ij}'WzYDL*ِ2CܑS6'p`Z?bO@7M"mZdZ#o~#rzxݎÁ1NgagI. P U\CYz}J.g*rg?Zt$)9| ʎwwy'æoײ͙Qv;"Qeڨ5ʋq|T9e+i x/@e AZ֒lィR#%̠Y ^A7O.5S`x9-saxvjk= 'U3Vr+^9kr G;kW]?'zz>\ PGs}T݀˙YGW KR1q^<{.{s./t!2Tfv=iY t}Kr\HQ0Qp檃¾/1 dG*!Y@B'$!Vbj "3hkaN ZЉkTJ3J(@f;YݚVk̔5?C7Wd?ii9Mopt͢*X*$OU3{\0Yր;oc.J.\ji﷾-NxPA"af id FŊ vqV^kne25oco!f-6ΕC65r:cn|P_%ke=nh-":N $P5 c9(`8*Fpޜ  t}5‡:Oղ9f,jT)mI<?IoέF52Fthn=O%-QE T\X X*)qA5SJjmt Cr^6R[yDއ>;8ˮ5qCj›F()Skbk@BLf`-҇yAeYf̼~9%KN3"V{$1vB]î94VRٵ¬FeRm{Va%$zPC:. tN Suo-h_-[R `` L9>ioD(IOuT"jRLӼp^fD%[#GM! #p: ! ]r;WaLhtQVW(m(ӺRx%Y]J 8xL|5>6=Bz'=!5.gZ|Jov[d0ulp{IK?rH˔UDRBQ,K{I~b1PfFpT|:l@az}.vN#ikW k䞭I)֍AX5bR#- F⚞^8  `6:{(a~6ZF=ں,c!T݅ɉPkm>=_\@/}hhb{CQiY2@AJW8ڢ-qܧ/F/O 4ˢm(z/Ά>W70f KN6迥T9vͅ<݁Rfu2 /9K4/bBm^H6XAR˷{ڸ{lgNPYt7Q⠪*ېUq b[Jx:$["`P[M]Kqa/l=9 x[;i_$F D95\{;pdtq {iYȮqDp̳c伌iIoam6= !vxlj~.FYo/J74" {aۊM,%Τi?qF,\~{=cs4kZW%Fswk^E6q题!罨Q*4Jʳi&0(-GF+ݴ{ɜ/p'mJwː~>UZi15cdI]Q M4ij*lΞv}UTjG  71tˢ[2St a(yWt,0츾f||fYfމ|`&4z6U+cYfJ5뺶REEQsֽphf|n 9QnuFtlKX;2nUFfOK -g&IpYgjYH *hSA2ywgzJj3d~u}`zbĨGO'$m] L](GƁ:ZVR-yf78Ӥmi9CB wL9Q<+0By~EW.Ureip>0 ӒHh+D018ױ,aCQ_2A4eF,Rx%4u>ؒ\5r2Y'q9/N#~0y~zXp 㑫+OGNR,(U+EIsJmˮ"*mdo"H΅eIExo3MmWʔ,gr^0Ji{3yԕ!pM$r5HdSk/IWq"¶emwiA\ރIRʿJyi'q]%%+vlf&GntP+4I:I4Ӳh)pNԚSc8)_@Rr YV3jgmuKUr2}saѩ"-LJ3,UǞ~0M#]q6E1-iCPռvi?=-GU-ґ^yFPJ˗|> osq%_,mc(Q^7E[ߊ<׈Ԟ?7DK83j}fM ;gΕz2 z+8VKPZ) ޅۢbV>GګDb;ﹺbIyI1 W(8QKD*FQ=ӫڢY\Vͳ4c$98Ն5Z)ikp%Ͱ*<%} >nN[/ =Ry9}P'[ۀ׏JT2c$)Ue{4H;GV絲fx\othkݬls@=Z.qg!9~2-ӱ]/F%޲y-]5,tї(KHU0d\ ky!'rN&G~47^_/Wq|x>88YE&s @218T߆:yP[GZXS!еzʗz"nknc;zt& 7nx54i@ΙyZZtCNK 6'FiQuڌn^5¬'ğ`'opww׸S' G?ZƗ6`Fڮݲ Qiծn>DpfG+o0s|' vF}n[0o7_[]WdE;D43M)s"[~ݍ |r|$k*𞖝̏8PS-ΩRsɍtc$M4ꞡ︿/~&_~/>xAJ ou~GwxC% 9XUj"ٖ)>2M1usѾ[ 'kb]+cCѧc}2ل"}''pZ;90\ 1I9:+^TFa:,әdͼðuNF2)bm/]NѐRf;iƥZ D)zFeJW G$HW^na,h7]l4qp{еL6pX}I[t5&DLZ$*|ŮS0,j&xEbsRZ >4_3k`G<\"ZN6R+$U&맋bs\ְ9t:sÁ;?Fn FTNr,~l˲ߜs]-.Y]X BƖ`$,x_ fF ml ]U]<طּ0Ƙk8MuV)*NF{yso|^^.M0FbK C gwokW˖j`F?^b. Amߚ蛆Uj@>P-d­:HR(%1xm uY)Fqn؊ѽ$Jas}伫&d6$ZE5ɼm_AT`FaZ9sbDAmfa^ 0Yo丈B/_d!\LR8$^׶2Nmy1.|rC-6fK5ֶ Gˀivg?|%mבR!1 "#CpV3\]/tt:n~˫9KZxxxu8ls-sv-%/<~Ι[s ͡c0##je4cƕdA^UAK]3c{8Cj4RyWrjLrwCr;Y%鼅`=u>y/ۼ|O)㙦h/&sk[&V_@r~ VD=YلQ"XPrfJaGJܽ{G."Xv:mwB$S#}I;8ϑѱU\X"\Rz3gh]Z4'ABe'l=B 1XLwsm /E3L*6x6HJ I@ʏKAF+E4qet3RI -"J@^mfKLPVS\A5JhmGlvPLQ@qbOCo4cJcEqEN'Y!DR=|oN糌[xy플h+ jU. uJ|:U~fk[=^k[f2C^u۳k޾2@8Y`9BH)Ķ .Z5<Œ,mYv;vVU~%%82 Á8uZ M4C>i"sc {k6C?ԙNaqTB_ɵ z5NaPYa'՚_q> (ڎ8Ŋڙg!4z#(DLWkBu5:;٘^G+Q;ZRe m8U|gθ 6MZ;8 ^EMAd82, 3,7OˆFY1\^s-wU={= )'0O? G}Oल! k/bNs WFB31j$R˃$M#MIynzw{Ù5ef3C8M_ ˘~΅N۸9a#X}_862VIgN䬥oT((4+JS!W\]č>@ߵGfˠfP}%-ѓ.mZYT4L-PvAp>^ KDa)qg,l<,0M$Ydf9Wˁ)z:O"B4Y+$di6!kLTrďޟI'mlI]b|.w|X*RiG+ɱuJ #I)Ŵ!Kڤ!Ș&Y=&d&l ǫ3aӑ=Ɓ73Bq2nbP5 1F-c͚<ID"#j,WKmp3yh[ivd79+OG%ݝS}z˻wl6am]n:q>G߯A/Riڶ[A!ﻖmDZ]ߋ@@(h52Jeu J"85r:VpMäeMa?F"Ylړ3o=7~_ D< KQ bMnB❗쪯/3{mcwΟC׿(f}Bawn5E! ?PjjjEh%죬 x4x6jӄPc]8jDTA=uHڬ;4 3)Fѡc WТz.ЮZ~6^ C邦ODf蘍-*qmku F0ʣ5>"\@0 iG=@ gR"WYסO% n/s:Z~+{۠ź'yM[CRҲ}ꋶF_sj-]R -T\ƕ"94Ym6ljS*([Rs+7-M2B^4RƉ4EqMt)SrI.og9m۲Zx j5R;jwEə"]p[uq4M7> <+,W%b)Ѫs^8l幝XU7 >8|0 Q=%FaPWDmP^sw3 B ja5ߖ cWg^n/`ežmzhDF.Q(K8M? UˣTh6hƚr֓!SQ qȥJ\K# JHBܖ6P@E,CݚZm1{1AK4*~W!1C Pڏ"2K{rN֫* iGBU`,c 9rFF".^uY6x9OYʕ, \ dmUߨ1bKܜfyDPK ~no?s(i[ QZƸ6A6m83uq…-1޾cs}s-γltLL Qz,xmFf瑔vO,q\R&L,c88%%kP #kG+s|[+&E[i T =;65oq8U|bQcѶ=Ӊ/q}0AJ)NJR4N4ה~@S%!KŹ+t!^wLZB;d6D8NzA}2Uiǻ75%]ĭsKEE)sɜ_84^Xa\~چ$sO/:rS #rYJ$/VTР"fhq$N=5]BM9s咫3[_2H9謲yizt]_c鿳F1ȗ3j5+%2!4jMd*eHud~WN a,uj@+%5H۶Bt5"ʶ~ꝥЄ6LĹqX]Y]83Tԃ(EֻRgig*M(Q{fz g9|g߿DG"\992\JR9qgd.5$̏lFxgZHgq@yuT]ETJUM4E|Ls*H)A' sڲgT:gmD%C4W ;pD]]q?8vkBxd⛆p`#UBQ%&4g.Ȋ,0eI5*%S'ʼn)e7rus__[YHSnyZHZN}w#o޾C\A~%ͥ3A뤣ӌ+#>QZƘLѮiYmnk{12sA<0ĔZ!H/-=0ƹ_,%/y㥰8k)dWQ8-D4 q8j!LlږF:V-jBbXŰ{ZWj~9--sF+'i"('!4IiZ#=(;Le)D*sFDe>pTEpMhp׵deYS)/Tf1r\>#C+@# ]KZ- /Z%>hhTo׈ TgQާ.'uBj=W44e?MiENeA)gQztNXaA,ݥsU)7.;lա.4mxH뻚϶j:`pLcmzfz'WTǡdߒ a1drgv~kvn([DCńqTܹvv >51ҍ oo~[J s>Y1F\ҮT<M'zʂ;wt]˪kqYJRJ'ڮ%t41J 8@)%TpJ8cq:7YFT&mn}NMp:Lt 6(F{SE S΄!q:\eW Qr׵,p 9 t ^jdûR| "vN#n{ҡzX^4Imzp^aYBSYVGNIVWDvwT)vfVFhMDm .k[)'Z'2Q1EQZT e)K߀qq"ŬG[*/Ug\/ِ Rsvmp9X2HjѢS#W~7o^b4^u (*d=XgURیAB4Ɵ3b@$/C|, EGZaXT5dȑyE,¶ꏊ*;oKe_S9:QʳS+@(^_5/_MP _{?)z[- }c&=Y:"lNQ %) ޾#͆cwM::Аq86ĤCX>'|C΢(\ HJpdՎ_|!B^E&o1/i;~KWü>p: :劄ohΫZ(mB%[v\r@FUL;~L it}sp8(9ѭV+|Aɹ7g95K].ˍi>ݚӞ^|m/7D]rx,M:.N#kZRNFօr☦I^=c2 j%Q<ʈg= JdλDǪ4g #qw@kcƴYrEQ@aSJ3I\qs# ҞDP4 FWm% \-QshuF|WP4gV IkJR0Ked1NX8jłqXw}WGPǎn/3\:5;Amt:n)!V[(2MB%?ͫ/\p/\YN \;U4- ' )52,BLbJYSFBq2!zZ+Pׂ#Ks% !Kd /^IEuuRɇ\>G:PWAΎȡe[k76=.9i$G~pdDgO6-o޼{ 9%Ni 6O8UTy?٬987pL"SI5z/΢2\i_ObT/cA\̲-y^΄ElZ~{]AҴ<$ HpQN]בRoaה9B;'LJ3~IT+e}o6R_!g7!AZaP1u`/֡_9/_mH(Ra躶ί}N$̢ =Kc.srSGώ^Zs)Vc_^ԓpø@UR5Ulټ/LbT>FױT]d`;e)g䑓``xuLd,RlF^k URD9Hȥh% J /GZqɓ'wگw蚠TvR*)ܘ}/zM/~cLN]Ͼ`ݒRb8R <'bYo;;Ί6$2C+zC/4[A'E= ]ЯwymI0A9jtOtJFR)4 쮯9<} i G]ezqxn:?mp'^$a6O(:cD[h~B"7Rta@WgƽH#q| w 灶*X U5i-mLjFA6PcN59&iPck6bsSA@lzQXسUm 4):܉BZ™^^^<wU] !]o|ݻ{ ΰLLJg3ô$s%7y6DQ 8RT,M5Cڶ\C:14|ԬѰy#puY u(y2gNnIj[be(!pWr.*&6h%8>E3ݜ^1_j!vI^%hRX8xՑuaG '0 Sk6L1*%AAOД:WRQZ3@״ 86 l G,~jeJYB+)8!軎c+"zGY1Nr2F(ޭ ~tf#MƅfǤS!Y#UwІ4fp<0 7WwwwoүVlUW>P4*{WƏ . ̲:ZlQF@R)U]cL+J)ӷ.BZ~z(x3)ffC0-+ږi8ٶ 1e NxQ,"c%T9Me=429G/ЃwHSҔ*oshrAncm9[MSButF-ThDS.?ѩ F}sq`@xѣԭSL]A N102H3׬WMx>CPiA|# cA )5ARBnvx:sm=7;noѭ"w<& `"ºF(8G Wid^=7<{!G }")9ZعzZSaY} s84xJ :Rt>^9g|(*Ft1P#Fi۞a8 ]mi:¼%KCs^ad,q]Qhږjtԍ]u7' afBzjh%(R{˺ i8Ny2s_<5& .Z1D,dN5$~gq+62hBDhmOC7lq>\jN֗p>}|nӴ-_G0c_?~{AA%/*yD#!vJ2lrH*tc:e5#-)&h+V$a/;u}:R*(2ߵ Q ,bKqnzyz-7R%L-^)GI$>CO>)O =Uþy8m_XTi)rb*d9\FڔR#CO ^Ls4#E!8\-ƉiiB4FvݖfX ~rl'(CQPE*=F]5% ;ǨUv] HTgms~fxzRuM#cVJpىH1G1B+RZWhNK F T390U ҙZW|=<ҜMq9jtU%Ⱌ낥"|\wfDŽ֫Qպ{)(\sMW]KY9fǙ9 >9iIakZ܌\=mb>_(J]::aFʅۼ3l[t,{G׶RMF+r쐗rq2sJ!(@p{v=ϟݲ軆&lTK'ѵͺu쏙UXѧ@v ӑv݄]!WvyWgOyx'Վi!E4۬780m[b|ɹpu}8R]'?r}!FQk93cmk+൮m!9Pv-rv )YS}׶L0 bl5Q1B U7kΧP>}Wt߿lHfn8|o&ʟ3ztmm>onnlw88Mۉew0it3 N #n"PbCuš&ZX ?Ҷ"!*_kL;yUQNIN4P*vɁY[4nw3V}ym;Wl|,*0h~4JɖFaZc"ʼY$raH+ ɢw6{G ݳm1ӟ~}'z "YkjjMg:kYoNGr)Gv-p *]5 (zZݪR5(vQsLvNgO?gR2<}~w8v )C/Ό"Ҥ!͞ R D-ߢC+Cs,9[+-7OY)%.y4|.Ҷ5QJ1ʔz{%Ǔ06*) jWdazMKkgc7+7ػ\SEspY`eѴy w&e#&$9e1%" &$xi{b uTDaF uk;9[4a%Kbdޭ1W⵼hEJV+9ݻ:O3!z my,u]s*m%ϳ3:H#o6J>^9]?93IOptsho~tbݷ MV|l6O躖jgYopE>a"8qseq~%@mF}߾}C"w\? sHJiyww5_|oG4?hW[#|a8uW̿G|] tmՎ{6ۭ`N#'۵-qvw@On)r8Q ͖fK)n mjbH=%6-{8iDX'%,ec4i<)1NssS7 /Q3mެq%q޾o=|9n6HӨ|hgiϭecVw_6_K_O.+#faD)??ɧYmy-¯oﷹZ9Nt]hoQ TI3sPʢiV%ʸj/fuփHamM84IЋ30Wܹr>+`) r)꿧ڧ{֖4.9!(6ݎ\1IJ݊ʤ驂4s$ZSQ}7GYvìebmH@D?i_#d֫5T~^ 3L4)VգJ@TZܬ6wwIƮ2}.5ۓm=XEL)}1 g\~'裏y~{Mh%xx/<'Ll=cp@Ϫm7om8e 9Jn|_&|O8<$R5HLCGLb939*˼xfEt//myxxLvm0uJYb'?o=/_"Lz"ixxq39%v-Ww@8:x#ikJΜ='l?t<ERU߱]t4Ɉ&E) g-uiZx SLOgA_B%lka]_Y9RqGl$'5aRXo7'8NTA|䔈SLM)YOUq ZI^R8%yЇa8ーS6\qc5);nάWg޼nexԷ:%{O<,e6râ\;S Ku021b mדs\(62֞\-`]8)Ur-777򓭏ɼn|j!VB g Kp1wi}<ӅMͦ< y'7t]pm$]{ P\&則'{Ӟn#ynonYGv~w>x>Sp_oOy"x{@-?K9O wOUAʹ|fZ|{rIPȌpf*kvaIk=)jKLȺkO2mӲ?R #Mӊז?ժr2cd8e|vZJx!4VV5adF=Jֶl ~HȪ :#uennoI)2#͚UcXo6L)Ek3͚]>#۫ә۫+ dH0%S5_u (S+`Nn 4nH \]]ka2k8N"BYBhlk#璻LIPZW:8I7M6ҍM*'~wk$/Tz]2O=@EnFL7uS]B28L癦 m{[jZl6[3+a64¿kwrNk8T ƹ\maEwmêq9GiԷ=E#8"xCݛZ%aj.װL,)Q6 Í~ Ȁ='вM{` ́ː,j@3QEXTսW*+e{OՄ>7HhN|kŊ/\7\fC!hw-i^0 ;qAb'/_5"n7mymA: $ K>wgM3->x&|W^yVQQFJ wCqea'5?:teXFd81Ƞ \ͣ@0|NirOPfl8<%x871FIK{Ku64D0oSfQ* zwYվBZ vtC:ՖJQjkwq%rwa=rłlFɅT]%иQl"iNN3U5؏rs8O8Cʵ(XSVuMT0+ET][Ԛy{B{.]!nj]嫟Ȭ:eyʓٝVUr [r95߭OYGݚfWkTHȦ1,2J*uu`rL Hܰ-~c<$jp&^ ?D:/G 8d3ܿ~hr_x\',Xx4>|'{]ώpa%,yFwƀr2 A9p8_Q eԊ0pd" $] p"LɈ=z43d캈!v^x]!\~ɚ Ih@c# Pf=$Ǜ7p}s=7x/0O#>y!0 w^#.ӄ+"+V eYňe9K5v^ESU!n"'Fxl\KJ\\JfX8 O#wҼ(" C֪zdGvd#L38[#5Rdu0A +ek'zrpJeY-!XwnEElua6ZKy)5kZq$H VP1 &h+AM9j+u~:Y q#ERvK] hdTajF Xcsf/KB4¹g}{6)J 9 ӱ Rb$}qh6Ws88Y7lQ-a$;AV\k趾-Sqlgj[ȚV 7{8M24c\Ї?}]鷿k{+F\<<`u5^9>>|58\ǟ~s8iD=vWW83<41FTuȹ PR°AIpu5*Ғgq>¹ =,BaJ )Ϝ#nlg?~{X+i<0k zP5-JOܙ8q71G/>!R$ۡj[ͦito/9Ă0`ԀybXl')̊5bɼ|p wX kQ[' sve1ܞX]ݾctf[`AvV,s#w軀^jQ"!U,1pa:=bJ [ Bpd1%p3 \]RayZ*0.9t}JTq^Xc?0Y%:1D>;6^VlζdE*tzKBE;y~? }2cx$v{q5wC4b*ey>rTj%BـUfK3"w7328<.SQ{(vML*XOyDĬy0GXps"@i!oEKB2e}Iԩߎc%`J1Nr\gݦwi6TJK}5 b/6ւJ!#8CK{6f".3sN*+Pc+n !hlDŽew9YC"d7ћy;fB5u0KΘ ͬuUP'% a ;<sbs!8~NSApynun~ƆU9qXKbM#9 (׳ҍӷk4J $PY7ZjŜ !x8OH5b#)Ƒ4/2vl)(l-iԋyUy-(P ݰh#K|pa›13Bd̀B(HqJ&\Td" ׆ZPK2Y5]MPkT8Hơ>Z7<#ȵcd rwqW#B%c=T|00>t 2M9Y Z3.2ƒ_2M,zeܠ }Op[1McRJM{g(sw*2Bm7GW־tQ8)y0?69;'#%֖JR_ WHUVlWxrw."WDM0[I**LΎe`Aߙw iA-Eb m6qY޶:O/#ϰ}P4Ǫ[U`uRxp{yȭuh]RAMRmRе n.ɰ@'m3Mx=D-}DX\T%9e,ySp{rZ0O#iDZfŀ kT3fo'Fa\KBBK4dEgNi׹mμ"rήT`I-5a%2=e` 5wRPJFA7.. == ;P5%-oUqX7^)S8 heW*˟ A>Psmhjmll(%n.ybPR-,A|3r#ĮHq`-\yFπC9H37,6YqU´c۷^ Zdy`~ %BʬEH8<q@8pן-Vz{dq~\[{͓lkd JRb_!ĒoBEN iIuzC@{eFEܿ~__ ?p}uKB~`,:\Zʌ{-%c.Jg7,x9`'A3L .<Ē3߼i߷ P l5z{u `RxzĮ[™NK$zpy粟*AJ[_GKk}oh%ϛ2;Q蘪.fj;} w@7BʆP9'"rYuNZ?)nf2/H 2ӠwcǨ1ſHSLL{To} "H>BD#bI(Kt]#krľ ia8㙸&Q= ,{lQ grJ` [k>*Ry֨PݬK)W? p/Uy?G˟ DeY+Zp8D qbDZ#5VĊNFW㱍\_v{[n5c=GTxsJw@H]A95`6`'PCsHʊmsB*嘭w}Q#ٴhs͕X.rPH7MǖNz]mꠘߩ m14!]:qYdqk#$%2%Yd!"F0[>(Nwu IbKY~R7:7'klӶBgG#JpJFM9U %&tPC^oiIJ`pYjӧ]N\sn6\z*jo 8/=KL.D(d*H23F&~oTu]@%!]PA| uJH8 kѻ/EqeW3s99"d!Zt1"|y1ϳ8{X`4'KC8NKexCD02gyI_V (Lqx:"v=>})-?I agKiA',񀜙|dJPZ^->`.o2LхU6%|=&Mr:6d]_)'<>> 5}}Ғ`:E-Cocʩ3Qr6"-myԧ^@8 DOY9%OGpq'R0Zđ͘n,4-$zۜiT9 Qc0woE/7G`eyQsv|"i’eiKgJ))qeǭJh^`ǛKŕY5zj}^quWލipVA:#0r9٠Uڒ[SM@[=:ʊm4bJlw=L((0"WnJbX af. L9!p<]{Zxg"#x%C+f@NØ )3;R]H vcid],"#9#-!(%KJ1n抨w{:ޫ@Li"㖠ƀ%ǒJiANu! +uďҜ ;^Z\`|Ga9g9~ucx -[!?{v7,!,~pЌCRώT(E@mmkx~kfZl>[ȑ۱,s3?i'?.Q,7jJ(%"27qyZk.dVg,;jS2>7w;܄Cc>ۺT09<6; }\ЀͦO"5-Mo"sQoB5F`_І#Xc,\s#Pv]M~E8=ut)kh<Z!DL^aF,{R?}lM'n=sA=M*9 ECޚ1ԋl+1z-hMӞ|s3̽ŠMp(9 jaq’2\ JF0`"BNr3H.ābn{0 IDATwSZ:,HCS2㑝O%8qE?c03eA.2Xwakc\H:(_ZŰ4tI: k #R1N#!H{."ƀ~{7m}B } DpKDoK)17!~W"ky-..ѳ˼0 F0G.ыt4gyE.!">v`iR fЏV!9E5և*G?*.5FBYV|'nǜ wm2ifIn,/a)\͘?e^sțFPө)۹ϢOtlg0yF븽Ӟ;>9.5c {G}C@uMqxj1FcNڮw]8gfMZX5NqnѴ¥dQcӒWǷ\6.THiZǚ~]WZ9SPCxǚU|>sQp٧<3v 3^b,nc7 bmZ &%T*9aޡĢkeaPEZng5.x8jJ'xLyBZfjDzuJMFJJH|BsrC8O|݀2v=v=8 %Q9WԢ C!" 84l"э0i^E*6]Jwo!$F;|Q0 =G1!;R+ -_7Qf?m"Z\Br\8F߱u 1F#zY!J;9jJuP\60wVCs!#^7mqp\5үOɦ}ɫW$^K-+"=l9(|iN. 9iW&c9n6T9RZs:nz MA`7*A+4>ԺSVP"A8ZɒedʎͼaU.[GUﳠͲC-Fj6lƽ͏;W{')s Ғ^:әB黐Q? hSΐzOXd 4cGmʥڇb), #owHb0R@wwwOp{?!Wp8p:fD#Aي{LޤTZ"ӂ(sB c!1p7#)-ȉnw?JAp, 5V>1TLˌ~ Yc }MDȍkPR3noЇ \_ŋ`}'p799aəYرk%?Y6$5LѼ/`ݯ̶\I-`xcm a1vO@0e:RX- YENV|,\ENܜaT56 e 8',ZT`l<>> '9Z=-ʉ,jU vga.ӨS7Yr߾Ayz0aK]O6Au S9 x @iHrI"R7"Z̍"QYvLkHYyH}x)H%JY 22k-܏V  u oThB@Wȁl$M{kVVJk짎Ktٸ4]yw8OOfժxR |>%:ͶȀ,W",KxB _}Cpp=yy8N>}PPAT+ [(kBzhD/@v56˨nXatQ wKFrM%/ "~~ !{Ďśf-Ho;%Hn 1MõG6Ϭp_et"oojuSu. t#gy*UrSC֍Aȑ}u.6H}2.m3N#}Ӯ0ph?u)"]#Ms]?Y%)ܓe#XɎx]TA6š͚yۍ*~޹lzwVOZn z6D7 sʹhsN\5M!>~_{{>ĭ s\ц+y~?p8aaH RX_͸~ɧ.G?&b0MjUZQ#%9B[ٶZXu4fmyk8~{|Ͼo_4( n"~闾ׯ^sæ%8s5C]DU ZJ _^kȞEX ?jUЌ115P)}W~"jG's@DܲqU$!$SnyrTy@ 5cYTx%}˼0YeB~:eP0M k__O6Qn"/E$`[# Ĉq`/V87.Q_aӰ ,8k[eT, NwW5Y*8ezӼTy 8iI16֟qWFN4-dp`c5B#6azIKw{RfF}YOC&9W@ac~ [`81x. iYztC-yӌӈ8Zh`%Kˌ-մH){>ȳ1x Ç~><'t2Ny񵴊@7ER=3bE 4K/*%]AQ&_IrSzf(jJDJԈXam}Jڠqeha'0Xp.t8c>a)ۮ"}hW@ͯ3͓t=DD\Hۍp+gu49c^eVL Lft ȇGkKٓYhf2fu[Es}BYFU{&0⠂dsb<AX >;쯟anJAT g$F$S-BXtzÝ}D-g= kP!|'8=00$C, bFɃ"mys(Ր_^qZװzG_ī/_{ㄾ0 G/} _6cLg 9}/ F`PꅑkYY ֧(bS 6,$sj#؁*!؜!ި pƢ($)Nఎ;~VHyMhV!auNPſ@ .`-f~,v>kmpluAPiC RIo ݫ2sgMm ""R36vMmqg#ڨ8X9gp+p9cRoJ<ׄ*6ֶgiUpIӜfSnmcӽPFP 7 ~H ن,j{mì^߄'έ>zO /.sH :sZ!b5ۅg8ZT `+uu8A.<S"'`8,v y(EKE]n1xu,d2sJ8N";1/!X=3/[/pY>5RB`"ƕ|}Gk l \\b<pG.t1O ARWZ>+Vִ<ޛZ8[ap>a e.3L;pF;p 4DT ߔ]-BnnטSA>Ad #ݞ߼ưcKy0 eV)ʛ!h,YxmURo6cuϮ+|~]1 |@-4p @jTsXNj;}8$RY]\2b )jG. U~"We."kћC~/(Y#ѣtaܺ h[Mn44tfD DH)AR/"R*rIBH Q)ei}iB!.r$I&H9!}Z+ရ㈛ksѦ]5bS.r'hϿF01ʰ&>dީpZ R~x]wICթؒȺx V2:fn.(eEPl#6/g|sY,<)'*iFuugHY[JQDɽq%$F(Jz:/Oo.~d-ɥAJg %$0z#b {оj8`l~>Q8U(4d\ AGt9ZbR+m"78Xᇤ"^f7`ψ]EiNgidrشVa(bԛ_T[A1P$7a^&OC9Mv=`~\2{R}q D<I BMƹ1\{#,^~!x8 ћ$BE 6eȲxf6xkrg$1J&0kZXgo} +ہ-~wqϰbɬR郗{d'B=jCHR)PjE7778N,.k }9gPpqgtG(@fwRT !kg~lZk) @$Y#xE{3NSH2[JC>x1b5BD27"v3?f^$gg_o""ВZV54b/7NJJ<|+UJnIV6%iW>øu Jm޹Z \݀q6l+k\I bQFΘnݍ$Zd)"ԣv:V%'ѱT( rEu\N^*w8D)7y>WGSK.yHkG_pKiG}5nƴvY_A&jmq%-mMO;Ň0$sUgݡg]oɷzx||n8v*Ӈ`,f5 !XjDV\8Ox%} 4!N Ä5gYQoY\]]HKDejӒ-ڐ"ڵu3'\k(Mp*ǵӱg^!8Z4]F/:Ǵus{:>tdz ?|%ZTt:boL)kg~׃RV|NGJx5vWW,3{Pߖ\t9q`(">t YPf֬(Jr yCLpP)J3n@t>nM9w7x/2c|<π1:9evN'x_:^%>3pqoC*sZpo`K}yC$d$ŀejMnPcC@ɥ5; u9TA IDATT vWA-(T<êԅ;=r)+t-3r:gxxx8HoVp< Jee/"A$sQItZLfx']8|w YѕӷRAsB[toD2TF)`T6I#7Ȓnneu*HYs_ƨnFV0\nkm Wsmq_[ɠ1Z0AOڳKרYv4ɚ[QH->%*͆fb`.ƫ՛S?iGY`jތ=<6Z8j:(+};?4}jQ(ϧbn q~p6oqgn*JIȹv% =- A_Uŋ8ϰꚝJ<ʁ1"ׂib4/8Np\}D2W~il0ޡiTZQL!@/}7k?zR  #`)^c\ww1#N:2VS2|@88O3b 8q>O|uWV, 1FTX#\iuLb!JrulP.-ݻދ(hg;<Șky Ϟ|:/1>#<><$G<WY䊑(;&/NK.:!:0- vÀA? IQDW{3rm_h6tL5km~O[Kl6hh&G w1#ќ#=}..DZ5+D+S}"$`03C0 T7Uq?u萦 !w<lF~}4ۇ+I1j#ꪣxP\ri$ CX@W9#J~/svRp ׁeR\1S,'jalZW53u9+/piXF9egVTg=<Ɯ1 ^<C,lpT0GKB.b:u!DR0gey8T`u{}׋c&n!N|߲l#bR`xGjC]p@8Ngbg%6K#&K" { SG_BA, 8awZ3y#qD[k0/ v=2pus:%uY$)`4L20:{N5$gAx3a202]r\7òK-Nj/+!0#Bw՟ g9Pm4O3n*lL`G^2#p/#'Qa3PiFKk-#R ͭ=%*cZWZ|O\۹u8 ;6Zs "C9dԤ 7Jhm~̽حj'k(o͐*T '׹MAxtِpӮXP>8,3?QX97ar$Liq}}9!gj71V٩zex>Z>ћ2s#y1nc[JWԭaX]f_ʺ {Y"vWqN`Ɯ1OPɓܸvDGGa@{^ۖ{6ޫFU"R$€Cl+xaKg leR JĮ}9{5x>dZn{={52" ^]],]W%xJ2Mo+t"@Sd-y𵙐/:JCF9'o9?O",Ci^.(IεEଝMSx]s5&`P7L^﫡.:h:Wkj)L|o–" 3E<.Df ܎ȹr\NʶΜER޽A{bOT+n–zqB*vj9Otџ??,Է }Ŝ g4ж  B`fNGBװ(3KcH{RLyGNe^O1~N{)ヤoE,_8jzk2/dM➒qd_i{ޟ(8-x'\Gaه3%1t1 w:D0f5lNJڦ<4 w*y1p:qy=츻{hmP#mYT)보C1MUcʹHLT'ٶoiۋilS_~~5- u-yt<|CɥV1,52y|H9(ĩBɣ%Ҷm~D-*q$jKZn"Fk; ]bVMt٪S!U#Btq)&z9w݃@_ˊ$lȥu;\|sq6թq 5U`8@ns.*vMw (Ϯm% "_\K hzkصg^!uH fV.c~u6Nz+R!5S#/wsq2عu}%D_ꜳ:YoޟO;S(UvsQrgFY_(A|Z$D,PY0" AHv mڎcpacE%4$hӑۗ/8O }kCе_L.HGyHJɫsX$c'Bq\2nMhXXJ&'i*gu|etyYs<'Tŋ{xx.HV|Kn?pp51-,NDcy!aOR}@č@DNkeHQgT ӁZfY)qWPsqkEQg7#`hE}-lEҟrVNYr6vODwznsf<7øXT#FΕN{M鷕GT>Q5gboqYĢ)GIfUk@%@ָ_Dvx+55(ޜOyv]#_oAͧ.gm]Pp^IyjU8NvOB >pAH'i5%<'UHyv3eڦ#.eI4MN53K`[003x/à@L NX"ʞNim F5^r`~G-45BrIKjOɑ2)3t4J39ͤyU V(׆Mg4sT S6YY~E<6W_ %Eue~:mfB- 7n7_o>Ŝ 1&us^"X5׳h'BteIF+?ox{vVicMz+y._K5!Z\#GiH%28j`>e4 kdicWn|-oKd\B1xۖۖ}#k.x"mEd|gfYǞ֙C ۸xf†>ciU|!@ۛR3[+A(,T'!i 1j=9Yɞp,'{aiV YӷKJqԔ!8ccΉiYh Lv@2III9Fq\g9AI)I+"*~7iP;t]󙶓bZ/Oaz).tgA /)3@9%q_|(\D)A[s봪LXJ"g&Ot}ϰ3ZdqN秹-J mCt:z?W~/<><0;5zN+ n AEsT5^[$Eg>jNl([ p84ǢѸBe#dH!PLGl8 r. l6N]QI]ui25h*\jYsa軎y % ;[duڞqur>$M~a3V)Oau]w2rq#0BQ*+z $ ;Њ^JU;|ik`ӴȞk%}BjϓuvJiT:ӄ0)Ƴhxr,׫V}6jJ&*AHKmvNX޿cD=#>:)}ߋ<)fKs#x,$/S.,Rft]4,8O"S6^Zฺ E]Kdg)Au^߾(ƤNk{D>|[z?r|aKR }²63ڝD`MQUm1%hݻ}+V e8Ҵ .M#}8kt̃9=#RkOKONRZ\syWRH1.:?!yF9|vx犚EECu"u`dY i\`巘cEiߧPuA0Gm{9)9P 1$}tߴi;}"hqEEvtS}a^MA,L(Rf)B }4@z REV} -B(KRd])&UU*`DO?8J8QRޜ!_CpOg+N#}1/tev;R.¼BaF)r:)rz1~)q?дܓbC߃cQ2^{ӄMag"tQO/sr=oSBp<}nHKfܶ]0$iXKes>0Y!fkG+FS<V`i[oYYlNif$nvnцFۆKjɘp%]: J=Zf[uݲȶk:E\cm ,_ /߹p"5բ?;7Dd4^Fԟ2qƫnt:3N#;bb%R n=oPa<$R]t8M3܁+w bgn#ťw*Jgۆ "6N1uWKxGhRsb2Uhb}Kӷ!.WXLk&8RZ8%}nĦk:_))^L1n8x/*|$JUyi;cӶ="5c-쮥oaHw$m9CI+92ʄd t RI€&&0YRTF?cI_tJC;ht*5 F:Uf!^7 q΄Re1ad_ֿ{*ɳT`<&\#-ul j(k$ZQYyI"99SI+J&zV4 5G,KVF+yޗsd`/76tuxz~[vVzw OݻU{BQl8G׷dvEqm1󬈍<)~Ғ*3PlX xEt5 o>f|/~q~o:u]ץ RX$0Da;u;Ƴ̘"s^sP)^Z=m=\J7ث)QR 옣칧'i{pۧc4_F&:i>Ss\Eđ-'d Ԃz]ۊ\Ԋ{#+\ r-k 4B<]9-yCC#CH%#UBcgJm5էkͿ)s^>hQ0i^!5RCj)U˕eԿu#(Z3+vs4;@6#`%ڙP{rبSyR4944I:EdruV<3֖T~[Qǜ 1ޗz)e]k"Nk~F\C9Bg-Atڶ:PQӎ³E06Hqi KY!pSiTLC^y)-;NG)4Yycu7.0**(M4hC,I&ʡ1ĸulDY~b#ӑ&xڮ2v}A_|O8O7tbw8ۖGOWBe^D;hus^UwVY/Rk<a:e0왖qq=8_ÇO޼puŏ~+6PI^/^pMp4"p {;ydqXimK\Xbd&S{yqjWqd+cPD[IY4R:mC`^R}GNbb֕1i1N#ði)3I>BIn;'9%0ݬ{µwtZ>_kJ8>=n,^ꊫÁ8J0Vu[KG/}Atm%k#ׄ`sb&qYLݔ¦}>yb۱ą4tQWH9'Xh@̂ZN8ujdapUp8bFx-=^C{/n_pᑤmMw=tǵ66Fw㜣4j4rf^"·l1Ehj6hYp" JʺJkPt#2(ՙ|ia/8wkjH61w]V.[}nRR>HQrEefsͰsi y[RıJֻCT75GwVy:3$m;E6HWEsVXH,7Fc[ό$rR)"w^rr(9ۆR(b^4sm<D7pLӬH &@w.]߳ȬfvZCe) /meдMT2´$Bqjk UXGiI12t=q'Qn!J]-gT|8~NW }(\3 8WhZi}۷=ַ;,}?pnLqiZNV9H77&a: =m0ǨD)e^"DNX5%lh/`:g4x y >=a73,ݳa`Gq%eq>0,\1:N4O~?|`:NOO$_7~7_|~rVqKI%v;Z@6gX%FR:y> ,qyQA-p-lu1֎A>eo 3H(zT.;#gkg9C.l8l;Ť 0X5z-ҁa5j.6Ė5} - ~ d@[;62ҠE?Y(dy!.kyS1>bηٞ") oAr<ר^+ϛhsD`GBCZV7+c:0攬3 s^s' ] ÃHBfWyso|rYAmOʑ }Oxx/g\xIvLwᑔ<((wea)|#]JfH8jA0'^?6\9!SϟTկ0u\ԡf=CպVN6-R!o5xUݜT[۶Q˲JIYw{?ϒrubRJMM5MS63rN"({`4,Hܫ8!ekrtoNReѵ_.PRf$UI-,j4hQrf~9!Ƅ/e,pRR7'o[޼ c;JD/{r<==bՁdOGfƉH<]߂ ;յvD!Rp,1NMXKF ΑOT| Zau1I7/8>> әy>H7?DƉGnn3NK9#Cu]DdKڝF%bܶ+6 7=$1O!B$7TdfF|JyA!%%=G^|۷o8}_{8&Z4`휷N4_tԘ+"kQRT ͮS(gM16r<6Qh($ Tr8vhOF]DbG#߄ ̋9VBpb<,Hnש3duqb Z$7JZh' /*ߩAOipqfԝMH;m"TR+z{Z^r,}UzڠJf{ܦ @2 #KHp Gz!R+"#,%#i_s%ӗqY dnBڤW'|> Iok9x򳌌h`y=]Ab.*8Ggi5Bhk"%+H L' |) !Vx %e@^,Fj9 +.p'W%]&ӑ_'7=|&ýA F#}swڦLJ{ۆ̤%ruu%<+?%'N'i׼{ә2n`YOO6VF! F6a1Rtb ORdIt>yo=eiǧ_K?GȈ9sNjk{ɓ 7\wYk" aұEb4T1 TX8爥3+{\⺶o{Մ i&.ng< ޽}|ן{ȇߑrax=4,‹/ƉT9FJ}.q!L۵ܾqдt䭃d_p#HQ-('.80;!$2nBqIyYHv][MQR W%%)im{::̉ycm S"?DFy)ĸ-_Y7EZj&Bb'5CE!UG(:ޤyct٦h_%1JZp1pby(8*V{Q=p'×)ŭPEIJsK#޿A^^Ӝ1E힗't óAq5 W2[^@5t8WY x!zBc֭V'Ac[Q&cg 3 O6gT׻R]"'GAŻT\ʙeJ% iPB+ZN)Ѵ%>4rfIGJT8Β {臁T/Dݿeru5deIR8drmdI׵grZ5/-V{ Qn( IDAT2eAQ1{I 1^B*eq>iB`1L)qx iT̟jM{Ͳ̜3K?ڠ [BCh[()V(yG٘F;? t_0G(i9>H);^ܾѡk̇orCA5#As+nl{kIنQ̲yy} qx$u]&(zX-΀zEF[Ef(PYglHsyUMsn+m SH\l慨)%EyP5 4"-Ga[ykdQ ͺCv1#ATen#H9]n78֤ynۺ"9uTGn70o]I(Z6ޑSn4KrrV)-R㫃@-$eOEW),Mc}ia`mSOp'(L,@)HjVdMwmII 1޹*\rfGWzMON S!PYQq6#:5u:E^i1IAQy %ŮkW|yzx_ o|ׯ͛7\_3w?"ae1=2O\_)m>{?яÇ;^<Ϳ޽@'QF\"81޼28/Ʃ@6y"ghB<Δ;j~+hͽ*&L6i۶jmtzny=7H}Oڦ!.iXwq$"op[_mY7\dV"A "KaiX}HhcdeF'm= olF4{f\66UMj7EŃATFREj0Um7:6/J,\#fhyKZ:11}-6@Em5#J#hN^2{at"dnpQvh5,jz/`Pglדq$W{پ<*O}CgTj$m|ѷ=U!=_$embJ GhV]['0Jvܮ,C6ΊQu#aTffIDֹ'rUՠ E%6iچ8ᚖolrDHq3g]O)cwSm%;뫓FwEs!B(BQ^"YAӪR?Tаy4ru}s)gΣ/]ד8yiE-M e j^"ͪbap6<y/r)eiz7pss˗=y5O"}4$$mmM%FTI4 ,MofkcJdezbn7[=Y__i~w}TuP.*5AEy(Hu$J!z\Q A*~檚_]nFz,]:F '3&$>sN,JnU[U TE\}7^+IdF,TwccWRAQnx΋`9^ Zn޴.F>KLEz`+ƠXFȘr9cۊg֟KW<:\]Fm]d9K,f6g͡1`eYzp'd{5yuZak+gR}\]Q 1s*s:yoK^< MK* H/TuA*j"~swpE EMyXѾi=yY(9h{yhۆ&H Wǿ¼ZE|&yǼjWs8WbzvÎy8O Wy<>Lzt4څg{|%遛pqNvr50g\vR|⋯޽y)f/yWexs"{}u=!G 8t\p{{ˏc6p;{n_6A~vC'\v; $(j7>d%/< [o8w{mic-Ṿ:0 =}ú bkHPJхJzlFHk/p>qfMp޾/>/e,f-˪`m`MO6 vA(MƎK!R`/9/MӀ -"-9W# ۈr5^yfT)I1J] gGj8m\".HTDtTmļFsv~Ұ +EV,MiyV6}Xg+"Bf {mq9f˚rrŪTP-dAEVnNf:ZJAHhnk J_:15u_:;HEg">qy8 7q.?dcsLlZ*#މ¦9uE7yڎLb$*"5-Qidus+eqptaXbor̲hZ#H2/JȩԦ^).m\qi] dlj\b"$D'%'x軁$JFh:^4AxsUn;N+C84M#FaI`( |x{G״L,Z+WWW[ܾex$;pbLe͗a7/D.I, ðwt]ϫ/'||)2Ii”3D)҄h8pXbZrvt]/B*J>Fڲ"uٖՉÓKG^V@yxPI8-UyܪA%tŘIDF- ӱHg/#Ӊi`ikѸ5T*luKJVVrNpo#%j䲖vNdWs*`F*F&'C@ꘃ#f(98()׍< DiGE _(^\.8u6|&H Xi*dSr&Z[( rGRlqg¶]W7|04 Ԩڭe֣#*1xGH+뺫޿q&:gWt[fhM-˒o7DfU HZӔ5FR&$$eH0 +*3#{mN >E #9zwi/_z1*VJ[g\,RER:1h 1)"_iIAX!P X)K &z[{v41iHSSnK% J;PVR:U9EZk1ޓT<4p8ئźH yO 5ȕulqGP:c%)I0"XypgD,-L2Y6"r-4-֩Sm[wj*oW^hU>95 D9ks"7a&| =y 5=X˶ ͆wkrQ3%g<ׯ=m/4n#?xO߶sm6y \_^C~Gl8'Bhߴ Y}1-}ۓ?h9xoj8Xh!\[%Yo[B@w”u%mIq&`y|A3 φwiIxD0NC]b~ˌ2AbL %"%c.YT(rIVAPJҊԪꢱ"e%1Ϗqkl2B;UC7h\gEBsbnExyGbEB=zrё5עՃEV##mD~w|:asU\&]fYT4mqKa0VdVյja]o[\ӊS iK<G]:O3!d ÙLw 4wv`E[4hDa1śjy("E%OxZ6}G4xh}Kk mQ$nL AXסBm&)EHv4't:-^9,D'v_w^oZn1t-q\]0#qE9KL<&31ZCx|/W;b\]_1)=3l7,\Q.0 ;Os8<Gx09L|ciچ0sbbl[qN"Mc*$bUPɉ"\F5=& 6́q DHt:'8նdleXrj> <24qy0<Tș]OAXJ[rJc$ `s d]a[KKN@ZF~@"YiNVYVtX[sI@M mR/IAJZvtYUJOcJ _s}*->9g_(2Fg*RN"ǨI%0YZFf&k%U;C%ܺxQT=Ȓ0K$]mM!s )JWRo[.#& nŐiϦ 4*!wm2Yu/]Kw!Fz'wwc`& !&b4H[+SGIM-+s)u-Y>Ꟃ,io{G }O>$%*UY~L$rk:&mCM{kmM.mlkX&z[z1x۔gaV 6V xddaJݳUr(ƉdVE A} 鶐NMF9ρm<9!,i 8jmutihNG)85.zPh6(绖k\j^cի 瓜FAc$c`Ӏ1!.٨Ta9OKlpcħ77mUyj8K}-]sf۰Ӱ鯽_w9?) ˡdmr6bHy[K3f/oS\a>h, uZ]dC $U㝼]1օՂȪA$7cVeJL&hbSP%hIzJ59wFYS;n~f8l^DƱ:͕{ZɒbW|@.U d̯\aBwWQ/%hҷT% QC*BQw`z~Ŷ*k>\Ȃew=q_5OB$-ߊBLOe?*+*y5IP(|&ٶW#9_xXkTP7o%FA ..<ӵ {Ȧ9к*5QV8c|8b~4ݎስ%E*S L^m9c !sM#|ZP΢'%LVu\=rQ \Bp{ F4F=<;޾7p5o_C޾yC*Sqʸ 4/huo+gOGw'..Xd>~!g|--8gq8*gJ֝y>KcMyX~ _#ȽʸYx+d[ e^}^2[QsAG }(H!ʾ a-ׄ1ڞn6bDsqǀULZvrNx+σ:G-13ϑFalH&aq Y֪ЛyD9Pyפ]Zt+v<vKI0v<~|%A8 O~[N'eG Y.gd8QJ2=wyx|{Ji|H1quuɿ>t*1YÇȈD0|pتb\t /;Lhk=cn_JO TUXdy ,H^dtWL,M~!yn-4 q,F{IBb+rSƕLVc xMH)caڦsF{zТ}]ijM27\Pg9JX˩ڡ7?@gkHV 2ذ2)rMWI#jz@OU )ɃQԡJtîq<>>Jr#m׉w,JIJ?4,vgɔ^`2.Y`*>ZŨHNm#/ uue²޴/wN:# 'E1h^,Q_+s\}Q|&:uZo1eif:K7@ŋ5Q[QU^W$6w*S]ƭ UmZ#󽺼! @1ɔ1w]?ꃚˆyvеү;޽{0 t}o޽aۉtGq9brYq8{`o@[4KXc$e1(^EKE--08HxHIF~TX\Hp> E¹m {.($EZYN f`ePB+|]BQ0:Da`䬈ꥲQ@NRQD dF4aR uٚ%kFZ=M#s)&/߰Lo(]<|V:Qk-kQHd 3)5(8.CɬNLWT4A+KRHJށUz]IE0TedѮI8,5,p VAV`Oh%RNE&VXV bV2YԊ!QfFI2]UdcK"e Emʵh۶e4/F iRIHowFExlҭ0K5_^[5GxNnZ%75.62] s ӄk.w`-a`Ӊt@pb`U'T{ tfd`HnW 8(Y]FZBlږ0 >HhZInI8!s<Ǒ_ɿvxhb8ea&޿{GN^С?o )E.@5+noyG- shiIBkGNoZ02)c2n/qw=W7P縫+Yq:[+ wAVʂ1ľ5$7B^%-! ZZK )鳙+liAؚ Ʌ%XBQ+6ZRɣޗs֐qYk҄\OTYƋARo qKmP^2]aD4e$;дQ߫qE3W77vիW ۻ\]p?%_|u/^pΜ3͵BYpPj)-V?\NbJv[:'~8+:WV <ᬡm:%:ŵְnچˋ E&D-$]ۑS`{<޲lj/Ep8Jg7|l+>|PbqyyIma{͆LLx{gykqg7x%!fo޼&w,Gmq c Du8 L 3<^~5Og q?U+EaΉ<8KÀo(FNlVeY\SbZ$Ljer$s%@(MtU[U~s,2 '*[?g'tAƬXkS ʳZ9YtEkŕR!K)DUI,D_!Κ$R~\ kZI橈j(A4 ҆pMjZ=OƔ+h@A0|A[4j ]de?V$%ܩ9fyu<sX 5xxwoiGRy={J*)UA*&sP^,su\Gxȋx8ȟſ<u4~àcm2,Sp k-ybԫ'ɬҕjUSkbRF6; uil6c7LuS ÐxB$م_]nK~O>y=O?{x'\?zM|:bmwRbp$TH3%vN$i¹1iirKґ+i 𴢻#R9gのm0YjR`F{I>x 9G4cs/X8͜UN<v kZVXX˛$:ǔasq1e':㹼Ti牔?a`ʅn hMOBB9XB,a,: 0!HK{¼O EFlG20&^;Oiwgq8xɜw]-t- }^AfKEj-ZBΨ4V9w ѧ , /2CRGT} ^LJTDLNhP3YM2Ϊ`V2}d\ Jh ii@&Jfo,r8OGJ $.Q?{=A#_Ee S|5^a$@q&XUxٗVsRo=JWz QpWm`reX`)Li_D+BqB`3BFɆd=x8Rk+$.1&np:OU,(ė_~I4||lw[^~-oOyvf< k7IthQ]/I]BN6p4'2[WNLsĺ9D16v3 p:U)i^X[|B!0 r^U=m=ӑ1>Ҵ-Wg77#y`qwwNaY@tfsy M%ihlw;޼kv|K^|śovW]~'-7 e"ᨤH5b Fnpdef)ݶgE/ghKj/i{H,[@O>M&AFW2R|"&hfmrYQΐ\kRP'0Ib`i&-yq{Oeyx ߴnׂ.Gڶgqqi9'ϛ8m0|[sQY-!oww`ֵ!$9Crs#ur9̜ĒTXDS aIdu42dU%*9NV M +MkIv[='4r_i=- fA0LzNED(p:j;>NTf2EgGX Ծ1V@Yq9(W H xb;:Ǒim=ݞaMN] q" o-͖\]^=noo隖?yS޿>'_ny=ϟ`#R"aV|*h8i\K ( r,R2Qxub8T D#՟sÁ}]lU휗17.Oќ(t )%76[tq9uf}=h򔀘*LPuaїR@d񅔹R=݊BRfx xkUv0w4"ɜ͊70NRķ 4}bEwcke%,圭h4P1r4XˤjEFb% % FKP)+}W$XR)Sd4ιJԗ#͢Liڻ1mZr4a X%)F[U/![dյ $ kz2KX. .i1̶& 2*NCjQ!m9&Ci%}18 8q(ĖRQ]pcݶqp7=ጣ;M2%۞~8MB,>Em} uŖ2e]oZ 9E.g:gAtf S:eEj1Y%R[@iJKNZbIQ޾ó=i~__k-LJ;șoҝ&۞Fw 8#e2Y9ѵ-'^xp$x{80p9BLg޽@p8ȼÚ̶{A)$~\\\1͑O?o\C!4-tmef6m~ӓ yM09QNJРGfUk& RHyk]x? !RƷ1J1V4{4L<ϸ%[Ç;M_%Pt=MJ^2Fi 8r'д-1Dӵjww4my[_ xkbLM(B5)6p=g}Nׯ-b"EPt&X[)̸xvQMSZ+ֈ(NB$a:~iϧ/17i9rŖ-9[Χ#Kёͦ|:sqq7߲ndvZzm6Lj 0v|:q:&́woޒ#01t} dv"3ݎgXאՎlv˦b'kvы-of79CЇIa%"bN\$, giqNquyHuO'v-'\2hRfgB{D .{}-R}Sd'y€r^*UڽZe0KgB*[M H'R.(v]_Q[oDft[B,mm1bw-Á9%^|ɧ~JΉ??C&z gC'¬3r>f#7UoV|^5*\HΦ&Q~@W >nk\?Zb&۷oqGc>|@ҩfC4D;YDmKb3s neVNѪ Áo~m p:bxOb\p% D'./m:I{WjKid^#;3h z6}fsoy~m|<Cbo B@v'.//i|ǻwom7 #y#14N|7\?ib:w{Gcbౄʄ9U|W*@rD2ّS #}}r0b{>7` )JGs]e꾯*\t 2S|RՋC9WnG%Y\@q&J:OB!'PᚰW S!P_vd,WJOǬYD܉_AicI PAM-/Jy%x hkTx*RA ϧLQجmѝU^i{i*R嵝J;p0I&,51YVi=W$8Uy]+ KȔMi#g-xZqFxIǓLd+oچ qQ>/*1:U)ip54^! ȫWW8Oj,c1&<3Lp9q52f1gmʼnV4[wBF9+{In60c3[?C1<4-ŗxxj>LԽI-Yv&u2Vt 5 G2lYXSWȢ2+lO<#9i[E2"{mNn=Xk2rSxu{9;"Z[> xǷbDnqW߃е 1Xu-P7 U?42܈%) Y[L`AS7hM F1m-X7RS*#v\]b8 pc8, ]-7E҆gtc ]rjڄj6U"ں4Zx:%fGYЗ񞺮qqqAp4Fw1e{i5`1NNR0'R)kθ髥#FfF!m!c)~ _:v{f?*7P4sGg{?h=CNds 9'ҟOkcay=)K;w4uǖyne,צ:c/G)?GjmJWdNu<%Q|E@!aOU. 9K/*(:ALfM73LK0I"b4Iz0>͢j6hnA(=ﺶ0֠fGB'Y[<?Jo(-H+in)NijJ䚺!n'mӠ dY$BǭWG9Q cж80`` ukh9N y%/!wж2x!`ٰR".l&DF~}E΋yF$&ǪZǀJW~0f 9 DEuž>qbbfj(M@CZ CL0Qpy} #^xȞ3(d4U nٚt<+e^u))j1y86-*k٬q{{/~FeOq:|t*aPULmp<rUB^û 4Gv 1]ٗжBFBRu./v)j ާ{@=dĸQ}.5UUtI[3Wh[ c5li=U)bKoy _8 {O >FxJ/;3Lk+C挶,ŬS ]*/@z $H0,cxUZw\ueW%00@ k}?Bk:eEGbFBRD.rAhE +$ U*|@>~X")Ktދ{A,rIfI FAIH{VD.P`PƔ/EbW,I?EnNRF.^A%~yT!?Y{}]`E1c)YL,%a%m$N$(G)ՒZ`EFO󑖠:%SP#jwHYVx'x WXPK**e |M۠ܺ#3diahmFsUEӑtGk;mG:㈮x۶`1da.$9N]޷\4ȁif21SP,{=O0*&'@B (ks0[֤KѵN#../p8챲w<—~͠v' #ѨU3I[E%0 #*KcZ -@85O30 hږ{HPlɇMyOjߟ`*dB`H11|v臁2|=q` \im}?ikj[rYop8ᘒd:#u[məp8gNrFn_1g7ˊ IDATuӠnx4~^<7h Z'v=.v[kqs{_տժ0pnk"e N ѶdT]8XKl[<>v8xma5޽ ߾EFU8<>\ﱟNϩ0 6{x}_1 p!b Y[ !$1RNݡ2 U[^UebB#mbkھT6XƤ..<~k/5)JH@Ɣ*HAC3 |.|gp,sli^Q k N"h%˜y$Q^u~50 hlo-R$Rnv\%90@0Qɘ- jg08Df4Fi}|$TKrgFy B\Ji[֔7"AYz3#%JDr̶ oG.c Td=!,"1]'HIkhkg˅|Z^g#WЗp6a]S3Ɏ3븼ߓq!w Ϛ.݇6I/iM"7b8Hv]q) !ca40BD|i! Ti׭kHb0eڪID()mQ`YkHR.b3?ozFhcAqDuXi!.s4Qŭ#Na886Lӄˋ G?p><sLӄ9}#C VZcJkZL#6Xu-9~;" a8_c^on^oPU av(Krn6S^ c-úmחk6[\^^v8nPU@4J#Vg(áxU|Y͇ *PPdӦlWp}} o/W_JA[Jh(#q0A J0+~rֆ\I\&WOǽs*p?%#\a'I̍^&*|<&9gV+}F㞂 `*9pv,ilM3|_9#m$ ueH - pb EyQEJdRJ j1ɵ.g[b$Am{U\ |$Q6#O ʏ%b>Tkk+XX\P%I}l=_9t$AYY!sw]Jp'sF)X5Rʅ֤u-2Et*I.O8N VjĬmpi_s$"4&狰R.3N(Re5HȉX=lU;z&1FtR$΂j0$d+VZ cT` :$kRtCNc0֒BL%AޡC1i/&Cc8d^IG_+6bOO1B7+|D5t ";fq2!L@ Xӄ-\p~GV'~K'\Q(xO4&#<1=RWӀ G8O^`Z:aAkn~FZlJSn{aQ(U/k+^`aQE^Ȅ!Ģ-P8pnB6gp?Pזψ{0ހ3)ni/DE1YIz@sPg*dJ숅(U'*>Σodi}OGh,gѵseuFALZkHKZT}w^ˡ;_Z6QFRecⲺIUϣ¯P|~, }f5oČ2䋜h.$SY !QkTVkq) ܟ[q/%Zj]ғQCA55, v*?MP~F!B$ByZjNx| Rʓfy(ML$sc4VmS=Xz.D(c^>X8OB{ҒD~e jH;BZ"s%C 9/|$g5}:]GaN7O*[m` YT7 4c_b ÐC>Hh3g"$9<,4?w |GN U_Vjq[;hTfa2B5oYMĎ0i춈Zt:؟+>8Gm՚.x$\1Q~`U:<>ثKL.aMTH w;$aZVk@ Sq (EvSЦa2Epa@kH9ӄ!gVѳ6p7Ms*!ndm|Jc?…[y`1,UH~St3KO0B+RԌEm=þ\{@5%oe-5czK@oL@*EEZX4Ar3"K%.|Y2Ǐ9ɉ+]Y`E &@ KbI@lEg!)S4T ('s9ۘo^\ULfdJAJ s /#b[>* ʚ~ghSLoZPzzp‰1({K$,IU;le˟υS3aU0,=dd"q_bBhM|M mTWU+ȶ|tMBU՘ecʘ܈"ڮ!C9C#:]yif4&kamE"nP*D4UUŨ@׶ O b2xa!Fz轇4Q꺆vy2bj늦2\ @C^=$ %^4gP>W͓9RI)1dI5 Y JHv+12+BU&kzfW̢C6V>9)bMO|k,|􈉘1Pini+0M0FX&)i5BGr  pkQ'&H2ZgP! r#J$$39c ΄EI9Eh֏ 3Pd B@IR43"ԦSd<!oc&aѓdsPRDV0bUM"@bB?hӔQMji#fCn oe ...0 ad!8i~An5i'227w x\Wݮ?<"7 ںi<6UeQ75q8 'OV5b8OYX"$4IdH1{}jpа4-Rmװ0ht-qᣇi*om-~'?zɀQU-GddDLb;.ielDQ٬AW1l0M~ +L\9z?ba1<  *FEӬG<&SѦ8 u(In7`_n5s#a'3(f[X;yuRBT"ZK=OnPP8kJ>mw {hA%c@w1HK*A,K8`ծɲ4Qj$$RmK5MۢU8i*ĶF)vw8qHpZo\l06 Td_QD4ڰqޙfV8 MUTV`cM)iӦBL'P pR{-ѫ ʨ* A0 9C%:?8cDߏhqbuia9p5Tj xb|,A]ִT  #At, (5#@Je*7T4EݎGJajҸ]Ň!+ fM#y~K砫b=~}N8V,y֬2J*DwH,$ xGkId)x Bq+K<[[LJUfp0)'tMm7}O^47Ө&Nd1&o߽-7xDaJ4@-m03`lTR$!GL.@)CFyS˗ƑV$am6`DZ\"} V!i1<}zv =n \]#$P)qi իarHPxX-@`6C) }y\)٬ɨG[VAih6<˭Э48]Uvpwp-ں'/_nPuWUiR$BPmjcwIQJd*s ELcTu)³2sk40yWs Q'xfs,P?Px~05+KU"\Q5L1"('>XYn?(pT3/obZT ټ>/?MmR 9$Ó& "*%PG- =y-sg3r% FLTr%$}|9f:7j7Z61ms,A2t_k!ϝ7TdJ('}ۥ[;@ ܏9D)/~\ U3\k%˔.U瑨X`X&` MZ 3R$$%u@Sڐ?8y]դ 'x Rc4tI8o,#5+ 2b/-ؒ)/Io7RYt`D*{\M2Hm҅KWU //*2 ̤@>x n }6gf$>Ƙ2NkxDme&\31ry-U5[[&oPgNs.ϭ$3 aTXN\(InH-ٹs?l f#Z ̓QP}@۴}fASU@Jn_K?)޼~ p«WGuEXi p[JM"=6 hږ >Z)x2)qa Hek7䚸Yc<d+t OOo5nЭh m[%r ޿Av{PՖEH>=|瞜E78xx<u+kыv-T8<=aE׶Xw- Opk k4ښpc?54741&Lq٥d+՛+m@(˺8N)흇. axޟzPd*kK5 h(BJ9ѸaG`9HaiԔ@UiL)HWb֤J BD+EMDX2 X70M }4 kHSp';&RgX'-0J# \)KWYDHV+Gk5e)cFhņ@Aj]%UEd#m8*U1AzfJQ/RX':%^s8*+%1U3OT>B 4 Bje-*\{i§HO` 9JL!QbG{t.X3 ؖG)E|cZ6''@%92C:@ v*NV_*x$^1 ѴDVh}r> Q|4KJ>5Y$P|$eD ,v3|%_6=sY>):èIEeN3B mapѮִ'H:UqSDn1=~𫿊!wYj[/qw{γ-֩RSIR0㑓sQu{ڐfFIo0L=^|@Fg[Z )7^^\xuG'a8y5Do8%RAÓK(\TRJނOs?0e(jBm^)@8C. o]W[ "Ƒ6 BvrF&uGApk]#I`DW5~>p gM )OMrM0J9$ý&|A+6IKRH6p "́rş#պwʴG{ct"a<򙪆IR(IY+?g|~ & 7\y%ER*W@VĜo}"bO$+$qs"˿q`9((CY~~̔ʳu._lydHL͑vr 2<& {(EdFF41Xoׄl5jU#;Tun?ԓXRW_9q@ ۫+Tx梨PZN ]-o(V YÇ.vP ӈ=sxɧ!`4bA+RN%9GDXde 1 @(@&<!Xw ̚n{/GX./.P=p`QWWWO޽{G1l7krʀ`mFrJO' tal 1&N8xGH}?9Cfvxu<04w2nq]iZd(<He>p?t@Ur3kTX@BJ8ARf6I#t&Ȁ5N I$'=W1yd!Ĉ Uyv#`HMhMM*3O& iD48|ѵ1'˹Hb@\ҋLʉ a"S2\.%wϙ"m!;d!K$"'cnA"!k _iT"3)b73,M"41#x<(!Ƚ&qhXf!Q054f,V (ߗ`͉U~V)8Ci_C (B`|o=TP 儥nXkbF2Wy@%̎LJ#[bgB릦K&HfE6d]S_qDvwϟ^w~wnOkxiu?{Ѫa ={4uxbJP4o$j#*6>`p8u)Sn[x">3]B(ta^ & }֫5Һ`V D#7!f~E ճ)ţ2/}r79 6J+\vcvBZ#sn::Tj& J!7N3)$ 륇)MtRLЙTcuUV%=Z&XTZz8$US'R|5dUE#@TW31PYXT*[L6cI:j%riUIRt|rc+"Æy|X!H]7HG&N 4*_EfĽVj~3]$V joFN`(eI=j=d!K_s^J:蝠5OWIE.]Elk-mɹ<|'ҹ(Ӳsv]AΊMK{q޸um%bYc)Xc)>ŤִFp9+h$D0r% {/1/@DMUU?cf[׳ʗ_T3NFLxS}E9 Ze#IA~O Xڙŷa2t_R'FWC )4!}rDNdSB r6eU1o Lfe589)`q (I|8,X SZER(IZ T(uz (RO]b x^5noop<Acuլ@T5ږg纮4|)\i%S<%D:X9P! v 'Lkd5Oy_ݷ9BM3sjs أmZh L@LEVJ?w3;|%޼~Ig}? 8XoVxgZi m>lDjف0xm31WWHG_姟*TޣH*'mabJ*B21`5cK~is4Mi t5bJ8O8X7vUp.[*KnV=,ܘ3xS1T)I5s@L EHZ[<C½,3\cg )akm٘#IE bOk4K7.;3ٴ&s9_s)P̌B64_ƃi9Z??0'b[$*^aIbP~BFP0H^9(U^q8@ xkwT9IdZ!IW@z[ZDW c|6LhI+!830a>DaйZa$DQv8,N2!CΔ O;QzԊ$Q}}kje}o~Ld %%"6%bq׼$s R0g/Qy`(i0R#Џ8 l`^0 .//1zOipc^quMuikSZ e'2#LnBF44և"?ؤBLe31 !%x=D,jJi=%P3{)l6- I1"~-V WxRN~vG$5m ڮŻiT,W9clص- Vk@Zϟ?4N'}p8 Ā__“'xsqFͪR(@ H MQuV5D%P(N"qSEq&S<'퓳 f$dZh[~) sX>zCiO7<{vq i`!Q+L%U :U,p}$HA2 5(N%IX*gS̹0Gl '']@ ;)%4"I N\e@M{-2kH4+:Y{ʜ# ۓ{HBa(`$4c>T%I(n})gL4O3g4_c$wNsEPCKdn弥{uVQ(ZJhV+lEVM`R%b$fxd; zʜd,^IYl7[`ׯ l'Э;__,޼}5=4hCn4=y~] cnn#zƔ gϞmxi e-֫\%4t:$ #2ai;*OcsVn k~zf%AkiÆGU^wP`&(=n9#Fxz%SS15K/@#Sh TaC MvfN: q>1`ke{ M4b?9?)SNdz.vLȏ~#Nn7su͛;bB{yZlyd?1sH|//)W6Y3c%'*T1^@ޛb,u\N'߿W%?O?Cnn[n/D'֍' hN 9R2Tm+];EuMxRJ%%aْq(J>1_\lt/d~βJYGaR Ժx|zX\@ۦkO69c7Dߊ3wUMЖȌC^Q,$ut[.hSXS6L^+1 iF+Dƍ. x}Џ@/]&dm9IaYtŲh ڶ2(#%A@g1eKBy(9Ejmm[;-ܻ i]8Ek*6%Dz )=tdY[C:űqtoXziPRa, C6Mpdl&^,~;13U8"| IDATӏ 7{ib{~`)2d(缡L9a%*Gpwy,EQ4$ HS/pkj|:(!DI)HA5I®( !ǼLl"3Te~}/ F'7 VGga`gnx>uK 381L3Gڶ s]J4q /dnrf]2:8u|i3yμ;e,I^~Ͼkg|W/b9g'~בTc =VQ d[1G6 !%|/S|x䣏>>K/gĔUUi5#<،gɀKK& BY< ,cD8vFL"w\‚WutMe)JJeNaכz5oXQ0KU3oMV?pX*VyM4?wkO@\&roH.MZ$Ƽ,XµIJ-|^gM\9\Zi%j.}s*WnκnP׳,2FsYr=bq.R9?6J s `&y3=xϿ+<<<2\F݁2m2t`Ti8O+%9DuLx Z[IC:)GBT'EC`:q6L;t]p^ %m T2<O\П/' /ݞ+Knt<LRxW137????+k#L4Tc ޼~C&szWTu%*W0SWmUIu$65鹿 & NU>HNgR |ǐr @Xׯ?[Gt0DoV8@]7RHL!u8+]0aF,P Nw}_|%_b&n(`Q!ad`UtڒV͠мUB4ZMˈ^F$Cj,9Œ=PUmu)Ba0Q0b~r9L]"g^~XP"s\]]1 SaG|e*o}9]XpKuM1$-:zZ$eU:"F+)0X',sN!b*מiʫvdzJft;/_QyP( BJ3x(P9??Z_ToT EYXm g;! ':"| l&$6 es7m=ʹ?^^XqZVIҒsߋˬ攨N 0nϧ.^*#>'Rh=XAJ+"`Ls 129#ʅ%k2ia{ؙ2^ & ei1AS,aGN&jaH \f^{y$50D]x}/ 0NxL.u9 '=B|:it91LJ"Ahq~L?\{u?z13Χ3Uxk?<>a cu||@#at͞e$k%^"飒-*h4%u#88#I,B4d28{ϯ\>XsKp8H3s;'eZ`2wY87Ȋ,1FAhN$- BaL@]Nsy*,8N X1SۚH ωUpJk Me  <xZ!SI2Y9/smemI7&+.FX֭` !leQS0WUE+ ZM*b&9p(Qê@VT$!$A.ܒ5X9/)ax޾9Y[rh͊{(y?!" J@JPױ5~NNV!BYE.*-ME^(>@q(H w .}ENQ S&;O0 a$wӅnגrjĉs #׷w0͉%UCH:BK Y v{.~48,I=@\_]-7Zvݎ]8>_m]._ߏk0ϼzF#U9PۊmALU5ӴR'߼yC3w7|SyRZ]DA#yh9ai{FHUS)B!ib@[C\,*Ѫ ֙9L$V2\ײ& p|STRpZںK4MC6k'|Y aN8+\΁7  yMr־X`GʖNVY`uO!֍ /$w%H*iq"LIxCR_+0L2$K"`#:F8 "J9/ e!*AQ,b/rRŧ 1Wg&Q4y5^ qS6Vhć֥/UzFZO4a0BU7ox>uXXHmea%6MEy%A08umU%bGڶ6QdtV^ \ЩoS{Ѫd\ײfX 6הNlIeWڞXPE(~!ZP5)@9IGrof'XQוcτQ5Y.D zNnMIJgA m%A@T^|R6TjུQ#!-Mf5{_IdLZJod1*ηWWO茔@)A}E]{~o޼?r9s{wc!gIE˨(}W)U%9q=IǛ7cuH?c WWW<>?33McTpv aDXR}>lD8v4|]Vh8Xåi[IF|Us:c3UW]*zb2LdfR/hb:sQ/V!"Tey~>B;.$[wtm<<kmS2] ?\Ѵ up2ĩ캖0J0|>qu5mr\ p񁯾W^sի;1ߝZ8OX/)k-8}⫊w4unp} 0|os?k=]1LW=Xq3KO֟D7c_DL3Bt T*gr2˂cP+R82m@ cPb5b]{waWp:( Rzׯv3N3}?r\IS_RBPLIǗ !Jl]w@ &~1JT9$ sZQ,n([]<:o yǜNG߿ի;b\晦nh"&"aäD6v9`D9lQYL0yϖ[+%mQ_g Wex<1y5n#% >>J-)/r (tAWr }t"RUf.38,ȳJX[M *<6ʗgZ`bLmlE %Vf9'rBY'I^*D/%Y G(,^"'[}g Z5uG$PF*vIInws^"̚`}ܗI!ϖiE7<[ꆘE">"_~7 mjzmDrF2nYW*&ES/U3x'ƉDtmP熫k98'%$ uU3ʄP@/j/#Kf*c>0M)YT''G̛N]h˲G{7j1A?C>4MƬz!kڮæ5z U%UYfrTל'Rኧn7yk?>VWy9\_ӏ#~O6kq`'>"su}4?Y*%ĞKSċI,dm&"rXJ0mWGA砆wBvsZt!lj|$շC__[{p:?-1D^ݽb'9 e$킧'a!ʹNI Mo_9^akb <=0_Go6+ IDATkYk3MבՙYo2Mcb88_z WbĶv5&G4N?_Ϛ L^ PB9~ZwzX- ]k]2Zi6 =!\nW/j1"1%X:I 1E0L{8\]i'U׶2!0'c= ) ǻ q#]Hce=+!b[< LA[(yqbGd9"c" 'JLyN[:?s Xigq8xa&{KB/GȆ| A 5BK[l",: c/>^NIӛkhɏ4t=8pfuDN߼YZB i ˥W¨v{02h5J]xu{Kdb LS9YH$2UUӴIH/ㄱ:sD8$j ѫEؗW :gVLb|@lB1ؒA'UAQxׄ;xzj¼K"/;.ft_x᪔c.w_~yp0J{7dܭfO/&`A[5Tg ("+k y%qI|ymfUs*F)XuSL,IB4?DFxE(IbNlOp5#NTa'H@ dk 9r9Gi-89P5ۊp!,αh_,|먶idQI$ܢ*+!ZTeXAS_Ǭ_&6DFdM2(*BZ$7v& m21G+먮.*9jA; LӈsO~ _~77Sǟ|g݁iDu 8(SPɸbn2g! CdL 7mpu}W2 4QY~`2i9$uf;L\zGth *-Lݎn8Wi*\ @vm<9>S~ e[J"}%Lʽ P:lƤTuNk 1ɩmŸ4u4OԾzQPc1eb7CL(/qp,l|ĉRTJPq4B71u8rMCnn:֛6-n{,B* Þ?__2M#U%޿Gvr}ClI CZqYu3^$4Nw +vmGSUlRY$&jtJ{;pn41T:EmNxkqVf9o+4UJ̲/[s镢)!{voE| r ص:.IA!h#,ÚmhrPVzYyVKVњm;L|{m;8w_kиzgN+}w2|sXQ\քX*DxC ί-H^U׃0KBrV4ae"eYe,bۯi.pIӑkUz~>r}mŰ29b}EU\q`2K?r v~ ĝ;\5-{ n!utYK6ԕxeg9쯹󉧧3Ӕ\FA s:2KRӚ %8u-0t@H]e|>s{{Kե 'JaVCAQ!) !N? !ꢽZsScQFbN"M:ρy BF)rݮeuGrT1E 9SoS*Uht&j_aTb{2¼k=.Salmg, syKei g$ #~$I7OyC^j3-AfAR~p9BpjY[c BP io-"FYw6ϬU|iEU[Hl=SZ2u(Iv/VV S+g >,%ibsQ , r8&de$HQ*ܔ8ͤ>skE3^o''sN5Ϊ9smSvyi\#BH!8&K8֊Ymq513<dMJ~r޲N fhF%튭4MTNZEcbg\8+pe sJ0wrD%\v݁a Wwo8\;߿瓏?a$8VuC#U*7 3+Ysi6rm~vaEN^Br,gJv],hpv6[nH^U8R,{2NMӄÑ@ݴL|2ݎ+s>: IF99)*=Ѷ)EΧ'Ν@'^T^9Z z*A*quZaeeU6Y*AyL2f FN rfshny$|% 1)aGR tgs l^8~ׯ-A̭kπguk;W{ylYn򔤺J{ WkfL)Ҷuny|z۷(".6FA4%e1 9ʼ0x\]_TnDƾgg3nP9O[א0H R̳׭ȀLqT+ U2fk+iƌ`Io]%Ϝh0M""+c2P{󅻺] |LTq%hBHQ =_eYJƩLT?1&AP杓؎B^ ;k4c&,iq!Uy,/ կTiO HcRfGՠhf ).$jb9Q{Ds3ۺ!&ljm<9NˤT$F9Jüb^p(Sj+ŘV67AxjẼ"+0*\Rmk5Z5 "(>S57Wx>qDwtʶƙ$=$#jj@4-o߾{7Wdk mH<_jUW $PdCb kv{饧IԹy^g يbQ@͐!-Ȗ шjUebpd̈M2MDžt\h @TrtSK7 #1Xkؑ&"vd?Fط#h$NF#Ajf6cHmE~óXj+@fEh%1)I&BewEK(+BSFa?e˂k2l*}=Cu4Qvuxʴ]'K/׶R"HE$A[ Ȉ[0ip^=rT!EQOWQ( )mt`zc}34Rw`hǞe4Q{/%+͓R[cZ P_ b)^-KhMmZz m1.DLX2|S;Kl/6Y }y@1&!psr] m%zq5QRMXe*D XQj .*p:ZZyu-O2PMVDm 8Ӥϩ͓EEIy8Q-\zrww<<ܿ8sIt;^s>ZԏsTTRHQXQϧxmk(Df1/HEU;N(֑pRl[/֛waabL*h,6t|9棏~wrCOS9F2 A.<y S\q9Ϥ(zm|>2Ewږ,$qfn ՞365d+6cy>74uW_~EJ#1& ]Cf;4cD#1iXy;D+Fj_S7{ c irf2OZ QВih8_%Pb{y50u1ەwR!ڮd9`Ì3mU1Mr>sy)% Vc_{PDU9~ijeGqq ZrG9鸖 N B,wK*eo*1<'2Qe^$@ʭ/LqP[i#K$\-I0^3MPJtI^TArPU"Z즢wJǔUFO䥊_ P,H5/a՜ ?g"}M$aYy9LRHU+'äjLq_N1^")$60᫚g9A"kTFȆNыa 399,R\JIa c#"V IجL"li*]2S㪚e-1y:{)NgVlc8f&I+a&|]r>IY,usF*0ęݾ{?=@hw^={cgx掮kxzz`M4Xc]#30E$o \_psq&Q.2 91Q[. MU oEh<: &Es tu0YΧm+ckj5{B?aȗ_~ 0G%KS0n ][noo8Zgv]#,4 x+B&%7q*Z1 ~1&ӅI~X#8;JiV|Cu2J()9nooԐ#p{{{o}_ 9F2p{^H./'Gݷwixs*-2+(:5=04o Xb8=]STx{qmAb 0е-i;uͥ(EGQҢ~< oܠV#'A_i=//޲چ酘>`Ra׈*3̢ZImxy~ }wo8qgq&~I>KPd<=$/ʰV2ru$ulVDBg݁e0Hx]O^R}6nq7"_<)ӵ(4N<=>rb'n xpyij[#B^ :M3[>%]33/}Q}牠b9b,q/BXO~qO Ѓ,n`w7Xy;v^lq2]c&nnnaL1^Fܼ'onz7MKD:k;JD X!,Joo~ w:*gՑbH$IecںJg-u8b2RH|c\j+i{A*0^%p큫:^W||>) N=?ߐ¨JZ]']+!iٻS]}[|=:((Ѩ\FՑdVGI68#ZVD*U!aH4/iNEAL HX"HL&kŖCR 9K  |_Kї"YЍ0Yn3#3//O{Ή[\.' mD6onI`6-/oyx|Pgi=R):itd3ڶt)~ϯO _e>u#}ѴR1Frtn`zYX?y0t97-) #5J҂[qr:(zӅ#/OǵpvX u $` ݰc((Fʴ]⢣wTXI }gֶBNۻ74cEw*kUb##"G睅\d1.cml{BLK1*$_H+|:[~|gLx`7Ȩ`%UY.6Tr.*8m<9 )iy枻;~~/~s#U V*nyEGD=so$k[ɋ:1rkU[rp]o*xSyS4lA(+'xꫯ0~?׶%&_ }ߪ|Ac4*kpFguKDҵ:߇ k_+z\DzhjuuxU%c(I{)9̤ / ueMJ*Vm*IW|Cz F=PGROuĸ\ju]j,CK#4rT㯚:g1>%VtJ^Ɇ%D#T6HlN4Q;x9sv"-"nno8LH 2y1u%c9`2wkxxzL Ӊ9Z^Y2~3M,3; ~ជwB:;Z7sY<?==qK d=0XgiTDW.iWW%0 vwTI`10 o9pw$nnrbpp<,D0Ƌhn)2{?Tqu\Xn#9$1$. !gg IDq(-6MÇxV̙j|{{4MGb2-`UbKfMaY}fɱp\D\jyu^n`Sq9':Rh`VFoFI؜lL=v8"{//k ng<_\E[eMpݺ:kyq?xmLTYUZĤGr)V1Vu=acqj0\yYVn'AZqyGpJIi#{nPzpVFJd2X;pC 0;q a\EGľxL0̺xYM^!u%+΁& HZYTu}J:)Spmwv᪫`67J֬E[u&yFWH#dnMڔݐʰal!\o0M{nGzFs.]OqDL=]B5,1W׿5<^Mx γてmXE`ȼ#L̖;e U?Kr.$u/K~m;Ղ ֈPh,1rsz4ML=]2]FBv 1բ;GI%=L#_~+~<__' 綞fscPKϕƨ{oX晡YIMk+eskot& e=y\E>E leuchJJZAoyߧ')%GbLv`)JsZir &rZX5D: 3 [bFLrR(isiZU-dr$3ATD[+}1)UZO<qQcʄ%"k)9r*R(M#ҾL%H↦Ӊ":266wo`l^ZU_#t6خFǨm,k˨&Hlj@ T&Vwxκ+A-Tvcm0ET(Ζ]f@sIW?o5!6Ƽ h՚s"FjpkuD^!>m$ɜ8qc0tm'(Hm\%[]eoA^F%˶pL6=ɆwX 9ʲR목llDYQmϚDIg+9S^͙ħKKADt1ŻWsfIrz'Xq#;Ӵ~; ;a2;x[BxKj ^mv}p vOgJ_hKIJX1ȜFh1"*Q&xQU1'o<4R#Ak U[\c G#%/G?s8{w\:1%h8gYB.B鄱wDK?e3U׽,@R-)=w7Garg o8of;M#%pww8v; s/7?MfMbMu{C75qɥ0 5-(aHi2 IDATFҟ[HK‘^s+1;p k,PLiJVbT#%Jq6e,,†vՁ^aF":/2mgYɀ5ZR a>RPtAv-kRt K ,aGiHW&5~|<ҽղ9QUg uy@lV@ؕ`Dx=dkcZ`N{1*UI@J`|+ 5r_$i)ec9O,!zck:ժg]jyzϕ`Xc} X`t=H2p BԩBU1>Vri)ޓBD|^W}˼3Xi^3EF/핾7saJ\vd$q4PEřrR.V$mƴ//BGY6 a'$//@BZ-o{0k N[scX8=)xQS_& 3&i["\Y^cmZaUڊS%,i82}s \yڪP$izoFi KUx&Y&efZI,c$́gѴ 9QÐt'i6U qg!VL@fr^fv<8fx6gv=΋Kn\x"YsIS,޶4)^m#Jde(y5nq2<[)`Lmۮ ~( zԗdZu,am,:F(Y[G2Ųj_*EVBv<<==4u*D bJʨ66 !K㌡k,KZu{5ۗ ?y;qd}WWPUW6hGi&9ͨ,iVŰ,"% 煃 x5*8)YAꈫs[0,Q6{D]Xx$Ha֖рXQ\ YDɼ1_ t׌軖eYv D磎KnڬTwɮx%t^@+W꿂 lU%mK:^%4-& fQT}JoήޕP&2>_@Pb&(b:gZA x-u 5b6Ҿxa\pٖ7"Y Y~_n'K˼Ed/KA$#7\.q"ƠɌqVVSo{p23d"$)(9b ]{_4A3.39GQR,^9Mc #SȘF!F2yg÷R2oxޭ? LзDϋH?8p|t>q9w 3^N/]KIk-7wTi QH4~Yoyy~ZBQ"5 IT08a-onaOu~/|4#?\.<=?co[B {{o2K)Lsq*1X*;Eb <==8Q߂)1@8bi|:Qb$.3}F HtECaޮxB2q8N`#%iaY"~תSXko dF6mAZMAuZ QHHihCge##}KOYNi+HrM&g!ՠ%L ,!@8]ǐV7+,6HyKV;N]Ʌ[mwvLRٟo߼p81_.z WjO2zUQ& ء΍r5juVy mcP@+A 5 ,֋,bKNlUR:Q; ys0CPW[{NUzaW:!6[BeB9PFJjlj`W9O+uKV6$mmdkĐ5\ȓh :X%赫T&NR#캶cL횖4( 9wKḳ@P+/5 5-94KL}p<r7 r=|iom[0DCXwΙ[1,<=|` [i9Ѝ9a9j'́qumo|CQc} 8.rEn;$}Gk YQQgJʛQ ɀqo,4289/4MCۊ|M#hء=03YSR&ݮY[. ʟ4KHg0)9BnF te~Dw|_b{IMfLӅ"]C1gJR'"Yu|V}=>^u}x`(x1h6%SiR`%1Ac2uQWЇj0}[5h ˲"M |Ys!;uOϹΤ[٨ ww8ɟ ]ѵj ̚b\Qz\pKǩc|5993 qDQx4$`{m$x oxj$a"wlzF>%55_[6zMK=d֤N]$WhEFR&a[{:{n*8g1MӚDU"ud\c{Wg|=ٰ yayUz_A5߼* 2ƛWmrZZwIy-5L2/@A|-*aj66^"1sv;U"NSH3͓jܵ2ݶR,AcCQQ7HbTnYHy'ܬsXiEAWb368?C.S໿n)*=^&~`\;=ޑEBdAwD'$VQ'Ob#0 ~#E{f?psg/4F+L ?;BX#}rn=BęB˯IG*{釞 %#Cud,A;(yp8B1|ŗ|x, /Wvm{A*FXK$$ӲVF[Z٬URl̐iGR7Idu{뻎]kJ06_^Ъ)N5)9b^+6<]#BR"߮jV}5ɫ3I؊|R07zV}Q3EU*/k%W 8x˪^wn4,d&РףrSZ3z۶]"ҭu,2Qcg!TVQX^Ou2ehJ\5VJ嚈khQ#zhچ,TAFs)tx!CX8x4//gvYb^7obȫ4EZ/!dWNloγcfFdqBm)kb~rs-w=P,7=ϧ$:%0t;n`72rZHqkœ5)jQ\O' ?$)Jx80Mz5d }> aܿyÇ,aq$Law`"w*Q\J!hpvx ;'Zd!U(qߓR4-]q<HljrFn)h1㘦w>m;1€M!o0v!Ήrd)Bvx;daci}QWg׹1ӥ%$nB?j"r,F DUd:!! kY !V]ڶ{ѾvM5kA(,\nv$)%UCմj4ӟi~4m#$OŪͰj ;zI)"YI*b4Ů`;f"oܺi6b1)#V"c[/_ dN0Z{_Mz^fAZ^WkilN8mI++i {lҧ1КDxw I&(9uRP/BP2]˯[jpۘYPʵt~\91X} ciLsH/RZJG\k8/Xc6d,yrZ}߳Ə@LFm70Fy/r_YujTݒiKXlcB]eCa)UXq9;O5^7#-\ߴe;hǗy6$haϲHKr~m8+onQ*BBJ5ZӼ>yw=/ ZLQiʆOjgÞL׶tݎi:\7o?c u1%i q +7bb Bƴ Xڮ X\ IDATM8[h8Y3VK()7ò? ۵_GצU2"k\+/f% T==՝v(YdܷiD{^!Qa~]gĔi0_9Q[ 51=ވ*uP+Z$Рr^p` uɈX]ybNJZvXay=yop1 ]72lFTq,KtPIFlCʇ[w\n8Ol~u߼IlY׹{xDdeeIY* F Sc'a!#5A*!cj Twta>ǮGV%n욝fX03stʙy^:bĔ4\/B86=x =h#$&CexPA_.HeVΉL1K4q@>ୣi)-rLkk7q&D |>hTkm{1Rphxz>̝. ]1 =w4I`'t|U +1r8k aT[^aD<D4ҵ=nΒ^q-Lۊ}D+,oΝ.TkPt 8xyl(baNXvg=:_c%~4L!)65j\7Y}kCBM1댽n<"^ŵ)rUՋ; ޢul e*U)8̹@==Eā1eߊT͒ 8ORM@)餙Z[-'uT-F֪";״0M{ڶ]9Q)Z :cE3/ M^"лA,fckݻ|~xV|(9UXm: EަףN8.:ZµFA@XoN⬶'# www?70%qXkRh,hgKffN#v YCacn{0t= YU^ACJwi EȘ˺b.䤒/eYΒ֌x"hx`#muZEۻqByKxc).G^"%E2czxpZ{\YEfŒbՀ"`_/z_W| DN¢Vx"IM|rN,L1~V7ڗPLn]].Qth 6u\90gN9"Y}ڦAJ8W;A brQ(VQq7þ#[uT%Im!E#(jkIF]?p7ŊwNh5(,n+3QXd׬[ [Ti*DM_b|U J FFQ}oeS1ԱZGUEA |vdg+JMsk&n ACW++[ @F q])9. Ѭq\/.!R()my%㉧yfWNx8gE0&ƈD ˼P($OxúQ t]4[#u)g4Ь֋aStØ$(f6@JqtVC:z?XBh9W'~/M{p$nB&_3i0 ) o!欑f[R,%K9ѵ-4r9釞ixzzE*!OZ RCm< /Y֕?oY*y,qiXxw_5)&_y|~&_.GN*Eg9_$GK\ߔB|qt,pH1r!啐eֲ2!7oOc x\Hts:nZW1CiIjMA"oe$ e~\W@_}@t!O6jj]efk/i7T*erݰu~H,jcE"U&e3X5!:cJs^2t˲rz8bA(ĨhIգ^QVnn[K٤PTmNEuE<,N7mRPD_ :ma_+ai5.nZY];IdSSr_m۽pji%C-w&uxt;kn n"-e752 .vcۓcXQh]Ȼ>|xO)je_܊Rh٪2u{aㅎ )&} ׍YZjQXіznPSu9X(!Dx;ݯ/?&#VfeP//,ӑR54ybikuc {j؎CEe󣮨8Y6=];6=k\X'gHIYM_|/#)8l:J1]Ku\.qzr)COteN e&ߡwk9VU Ӊoy|~:!}cpxgEUPsL,>pfp;Q)w[KZWQ╂ }sIyi)Ѵ!t>u^7~pzkh/qݬmƽS_H?H|h5%^N'^go~#QԘF* .ww0rrn) _0/ 񢿿,"Lu92@5L#eH4c]#;F ! Su2ǓAiDӵ)#" -94wq{Gie]oY0Ps~Q?ѵC2Zc ΫrdG% TPjp. g_!VD%A*ODO4N5ƈI I<A E #g\[Ġ" mQঐ$U;H 麎u]y9ze!XqլQDPsqņiiGaqÎܢ U>B79cz=ւ.?"Dּ6r2ZpF3L 4Z4AՒnYfX_]figc뽣qu]穑 #4]vwܝZ!b0Dr^KW<=c<9|z黁b 23zBJ*v{=g?CO%%N֬ղDq`JQpFN44qXHkĖ7[2% #eBLt$9m' Gt'1O?SE}6q牮kIIhr |wy UH$B_Vojsx' Y֜0F%J@)E\ۑ14~͛|,hwۮ~w ޿eF^;ri\dSLJ@h<+`^'AъK%:B#g^# *9e>"׏".V$kӘHZ=VO4m3)UL'uD?TI -?bx!8?2laZfE*ǫǏ?B*$t;. ǣd}󆇇B䴐B\HA8M$^)?ϓAcDG#y(4|I7oĔsdӔZA6LN+iF۫Վp]Xsq"4C(k avkE`,83-:):Bzq$1GZ[#-9y%4=)]8CI(F!);l("m\ lYQ8NI/-e,:Oٖo%MH^QNoe5@ m84=yv-<m}Z10J8יį >}y$4m`^"<2QX#D;4!( hDRy:hs\1ELWE2JrG0'GBn[9hֺah rh kZT(Úe]7C@&I<=V%ELHZHයԜW!s&QB|F NB3m#S9ujmEQajdCb`ߗER]<8*yEn#WK똡Bb)-.6; *6=Űbcl=g@7[4Ha9 55kIDL ΊHh ȌXH@^Fr:M%gq{T ˼h`k[ ۲e f#&r* ܎I=f> }zStYGbtۺ}UO쇊6*ozR4q8waΓM-|Q̨C%)`w_ԫ%b&XOpyM90e'|qwj?#|l*aɩp>ֹ!{}gXcipOLx" JhD-!nr*#ΫE\]CDi&_9r<3WZ+ʊ+I ]ú$QluLk{/la] MT %z:314MA_].6p~x) IDAT"ھk>?=r>?Kp,EB޾}3 dh[ybm&dǃ0vgf}xiq^0qnNpDb|=^g BJ9!4HͱҴ -ZmM"n>uy"ӆ< K6*!Uc`9޿yü&L6(72%R1xiMpSd釖a@Z+KYuAMn#:*JQ!,N{>P=􊱎qeց֕\Ԉ @l1JP !)yMG UY+lSenJ;Pmw%RHQI5E E-9%_gRY][XL5ō-Śtg x'ҼMEzqq[I##sZA 4,7sǯlPSR6[Pbw6Iپ&.嬩S9ZE\꛰hƅ?s]PDcdFʳP*W0ͮӜe< 8ِ@&ݿQW5/WsL,2G}3m4_}_WDTX/ ~BL,:r6BEnp,4]ON dx2  "۴t] FDŽNy'tzimOʑxaV޼{G1"OB*IIH߽8hsڦ% g~g+mȱ0G6$ww'e׿~zKNϻX_}`^ێhNܿyúFO2sw:1N~/Bz,>G!Ga|D7 {["ڡ]"ym%B u4D ihäp^$HZ T[9UtQ0uMe5 Y? ti)8-Ǿ;Y$d#)Rg9H8NFqkAS XAa#]+i ,ְOqƑor$Hqڸ icV<H(*^LOyx$Xu0nm7ƽ?Y!fbpԟ]Y5!aJҙ/R O3p`U5 =q^h(2sq#3~k_RCyeqd#qIԘh0nǩ"-ՍU L$A^cS3lׄnX o?%U#.EɢR/:b=کE`尤"zy KqF4R,v9D]$veNIgNrqQD1"Yov R$,44m-EضE4M0jtպuz|P/q%l6̉i)Vw 3T$qDXVVIT-s7˼㗍nYnGmlZǃxG W2qYI~nRB;.*ŏV%$E)4JP,fYl}׮{)ln2yEShB͕ΓZGW1U E`Dlr:1_ 3ˋb@Jydd?4Q-keò+ªVÅr gs97Ӻq+J $& ,ZBt6ԑ^mj?]P ~޿c#!Zṳ(Wu%BN2J֎mޯA-B [W1'$GaqYPx.~5F^^Fg~}`^<<>b!ZO3OR|i&W=23/ 녜 ]7=K\%a]9Np<_yāY;<3^/Y:%`7r 5.\T^|;q![Cwغ`c^U!p P!i&C>Hʲ`nϨ\sG`J/Y0_coMc=)o<)p50 1^پW -S!)[~C-kTyť5/{_cH4;FLް)FHкY} OٮbQ9b"Lvߴ":5Lѵmm/Nʉu]8 g M??eayx|:=Ӽ{el)\c[gM~$p:q9_At }/Hm$Zqq2^yzx: Ηq;`싿_q뚹\k2xO*e>Ⱥ,Yr­zur0Nڣ-~|#0Oá#DW6HuYmےi MG53<<lSu()>P}"AÚ>cUC(սq[4cS!M+K\q©o1x1}>9m61U&[T2i딜k4uQIk+E+B# zrCb ºjV%C**O$F'(vvrmnn d?ݾTEvә=dsP7J ޓc|u_Uul2|nN; =֋N+1JW!ʩsbu)y}Tk $ڮ Y޳3f آhEAk\%KR1lnl+eJEyc|o߯U[=due|+I,כvpibkKJ39TFІF\+ʛG~|h#!4-Xx|yTb*0DTtML.ȤHIhLYV t]i(4OHSR$Y.Hun#9#yy OLH)K.0NW.+~ԬVSB12HS=)%Nww|60N3n%Y$"g%nDT2.X1["ͮspX [z޽y|yxUJF8J$L5)lֹulb7 h84Z0 Cə1eQ`yt6xKK׀8E%u՞Ѩz3Rfˈ+[Zbo$1i$t'u:vVptmK(q)I({~ :INGa3Ki]>xE,sSImwE%aBd- ?uKe7Q} (1Jp4cT~Hk#D-k 61L ֋*;[-zZ p:&,00O#]0]XRzHfV\N#]'I]۲+Mʼn c-o޾ې'c%qc]V)%q>?K6SU7\Y5.+Áix<4-qځ_.p<IygMwuDhpNɸ.=1f ?g)J)џOt>[?ƕEg^t;ua"1C!///i^^E%:c4KR4Oİ5J qF.bi|25R]ORp8rź~+l '7޴)tL~ mYCha80 [^uxIKE<%.H*߽}KZ;ugre\yei\/Wb#)'a .)Eq;%*yc7mmƮs $5Rx-80mǼbAZ)mtu4c$'IgPfNvyh_i3 0N<<~p8_~' 4ViN˺2/+{HMZ\5J8:7"P9frN}IQ|4؜i>GbZW<3%G牜3aɅpd8cXΘFbfmDnx,)zE*T2mтz'e-tiv$κ&u!4T$SaQ$.HG<([h)%U_&4ב\9`O%sՙs;+ݷd,jj!@hsYH4z-tM˧?@>) B\DOuޫuYgF"ͬGFB{⒞j|:Lj1,YK? \_b^xۺ,Fx,jdrx$$N`>IoċFДs=B(fv,eU~ Ru]YnT(El/fiI^1ڍzh=h甔Py9HN| ]ӵ <,1E:FZ:qnV-*I_x: eAFS7PB&Kj\n%uBEA$|-7lO>i {3Tս}onM7&A [H Bʛ(RDx׉C" $CH0}{}:{ )/@Pk)*Sgy<Ĉ&5 #GZ/8)HKqCd":)^\*ϟI m-q^W% =Gl1Ǖuega/\R!wA Yy*RF4,rX#aK|ww JJ|:Sa:Eliܜ8>Aꊮ(Vm Q 5^ؒfW6"Y\^kg{!w>W7J߉?KNp|c99\]Lx]0Mgiܽg&@o*Tmָ㌱ . l29W[g7ȲFkzB5 )T <<4^D4(#d _:\S$t5B^A3?#5bDž ai 6[fkl*BF\%i[ /#: u/EX{;"*?*2_qW1Z<-`a+RURhMl~OmoaK3 =6h9xϔ3cYyy<el԰eQ"4U@,Pdx)&IOs }a]f j%ZlUZe6Bx* E \­jUI*hȍ~K pm@[Ò3HV1DZf'Jzd]Ae=qd:?r=;#S.`E|8n(Y BQ⊣Q.HXPž^5Ět;u*9afLrXx}w2vLP@u-:%YV:6ٖnhBgT/j5Z5qy%bt"; c!1/mdm(נBUQ7R=9vcGP:UԊXl@: Ur.܃=9糰w;Ma\5*k\!QGu+D_tL!1΁_Eme  )zٷfaןc&HeS456C"WM-7B5x`S}~4|w|'́u:uʤGk95WgE~hbz5Lrk#S7٩ t|>zwdF+g_1#>-0| wj-|pϞr<9`|>b0ޫ5O#Q鬢I ATzO^jm11 hBHdD:Yw{|qdZϜ9"u|>sšapxlH.`:Tc5#}o`W&6]K&Xrn7Jf3mk%8a-% I4 ӚP+?U5ݸcsxӮ_V!MuFiMqCPz]@{\[i#Ј|;:k3<?1p{g]%8c1x'8әF,%@z^ c?` -ˬvʞWr kɖF=IY,*cjws:>?1*w_`'ɛx?.}) 1YCE͉{YBHnrt, J8pSN+$=Q-$EF\>Z$h ^Fꢕ,$=AH)NS\;Y;(%ߒ ㉡D5>1j&#wx'-fV .x֘AH)%b*jtya|>3<<>s?sO$k*x )]\;S$AQc~1bsB:qV4/xoCAFE/B1w:XEc^P2.tc9?@igŚq0.yM-JB*YA]+sN#6 _ӂvضj`:2Y ~$G#9 E[z#/1%i%t!늢EuzH!LPbdGAȔF0Љ1xHQ]ʃo;q$a[NN+h![Fm;pc(ʿh#\zѠR]f1+RM[1UA=ee R܈ m8JB~hSAZ. zWl %J j nCT4|s KQ[ )[#5ej[TpL)tNR#8lt{/ga,9Ct&VjZ Hs<1Ѵ;ek ۋkAsss8c-kN'YrTq24\8H*>nooVݎ7;i:14W:7zJb U0usΆ䄥2(<}Sy-3|޷y_×~,2~aߎ()JJg/Xs<{˗9gBQLxy>x/k`o6"xq<♱7\Ltg,WzLSK-pIEh V:sH.AS=ffpRh{yA4I֮P~8pU-ӜO%Ҋ8'kCER$4J^|Ǟ2ww?<Ÿf5ĜpAgz_g|vYspu;;~Jb=y̓T!@4W+e%B ߽<1x)NI"iT[ гqaM+fJJ )/#}肬ΘMc4:yLøU LGBLqu{_{_5^ΛA^J녀aWÈ3qfΧp(h^q&8xOś'H{_/5m+4wF-^Vq~/iLB"B؊5-~a+ZiRJd#F|3؍;p,{N @iR~(Rb>J ]Ϧ~)ZbePɊ(p{osz;a+0N~5nEZ}< j+Qt5rװqDZr5Ն sE2R0lFZD A ;Y!//o|?Nyzp]L(pqiuE H)Yx<:*FRo2/.G@3PcTS9Dž } R`ǻ1~{}7^)(r+ƳeVdK qS 91GŸ_wA*0l7hD^:^ryv#e}7z n zO55-`a(ˏ f) 6-E;ui,1ld)r؏ZjJ*˒-ɕ|"P`%^n7g{W18ᙽ׃tyU'-g(ynJ,ˌi:b[??>yC7Γ5l3xYוp`8G\ǭpu =y|09G\5xu<01#SI-4ЉnꔔL̖MtUnԤzx+SsJџָ\kE"(XR苾kVR $Znk|1)+9&_-rpJeC<$n5\_[*b.T. BVS_\g-b,9a ]}UKZt }3!9+Gf4M4t?Thc.MCin+ j/D9(q[O$ #&UԹV__տ5\29x-8O;Ța" %R\:J^XJ\Z {EY|"X1'jT05aq<+3noch0a[de $WLie) y;,W;~׿/}x,糤W5qHJ!R*NYBl U[R+R g~SvQĚVxx|䣗eYbun@k7jvoridQB36$& <^3,{ﳵwl OQ:]3_nS ?CeZao>uW}ҠgA>]= Az^ iS-}P.HēpYmg3`}wțo}︾a>,y H]U3bJe4GLDFNH.hiN IDAT-TlQhҦa0E"oҖuRR&q[GyշHL9Ct kU .>Q.TIotƊS_qBsgQ&j!LK[QD4AB*FHٖ(~d]%`R£'K՜$˵fͪ ضhWWW\dMNY|`pjk7:@6UKOfݤbl5ݱlV %2\ڡ5 kMXZ,Ԅ!\`rXgL?Yq휣svz9;p:$]Z%40 t]ON7ypVj}Ҕ Tl`xX򂯁k_~Z ,Z1>YoC70Og2a^gqİ98p`gebZMn  N"kNMs$$Ku[VXEFd6": rgErf-{Ԏ3F`DiA^X.p>:p||;3 C/F4]^f403qIt .=/?=~'~w.ϮoYSjkW},%mV/|_mLt!l}k@Z(rhd#EzGjʐ qUg o{/fs+ML1FIv,ON'\N- JTl^CCsk^LTCZJ2V n.ЦZ 1Igֈd-tQRt)=5H'c>"$,Y'\@Y3.  HV\Wv@x'krYeR-Mu.|/k)t-$q͕g+^R~hM@ e^@GmT$(j[q8 G;5`B0t\# oφYǩ*Le%vJSm6'N>l 򦟄LÙJUH7p̑憇X #kF*EC9xLӉu;cd%v&Bc > k6C#yqj1\]]RH"T/%NUz/ۚYsP L'SYK&4%>e<8U> cf!oXKkP1 ǯOAő#:J,R0k8Fdx:5Q [cq>Hg%PXBEδ+{Ls$%C6 P%UV mRkmYqwto]h$a,K[肰qi~W? q^b8p^䜬ۼjl(:a69jBWuaRQIM +F vޠ'nkJS((@&\w.\n9h10s= ;~II1%BXW<6 9'[!#{,.n0NЂjt]`&NTFN& DKH"S$@&3mjm$V*gCmL#NKanF[(6< VLL3kdDAh)N(oisf06mzq%KVT$> Φ:bf}AewxCneY6}8}ϲ̧7u2YpʲR8 V,>pʔb› wlp0޾ S:8B*o8ҏ]T|Skݽè!wV}V4(PoV#uUfn8>d^Vi.dVnnGFB5g,8E=06Sb >ʏ?o/ku 5>㊷b_sx)[Fq$9ȸvݘE&w'$E{|w?Q4HY4 Yο(\U-p jH*>PeEfQq'W>qYTƂt hv9kΨ!a0#_>/#_2S׷wY>@ɰ(Lݎn2Sxu"gļCۈewjz(vU\+Nˬ{5.(T!{g Yf YWr_ճAצa:ݡ6X_ 3C+UBSvOiJJ۾T,/|}X-H[Cs@L"iC"Xm5"k|1+]7ZqiY.5 oN9+%֦*&ݩ"fݻ9%"rb( %DCj4Aȿ҈ƗFD5QTQCE]DS+A9EͯcvBT鲵bU0neua߱ }m2wAj⾪<͌eY)/8zriR?ٳ,B?mrXJʄN\V$)&(J"Ƽjψ]|>ϫׯ)s"uhԲBJ_wwD6U=8xTËo0/!jhonnu]5,Vr}}nY`<4v٥Tv%CA(!ZK)O:1I1o  Z| c; iӍW#xBxVjkyMݞu^ÈARbL[ ַaO7S`H3M115ѹ9Ǻdɬphoxt-$nisIĬp%A(Esuut:Ȫi FF3jvEg,Ɗ[4$V<u2;ɪdԥy:Et8g?y)WV #1Pr(q&B_1d tϼ͚&y˺"3Tҙq)"KV[S 7wn',7:t[j3i/_#)EYiH@IySA))tV+N#0R^9O'w|釾ЗXaV^3S_IR/'h~8pz|fO:Q ޑӪ;UpVل& Iј2oHzQzB/7U&rqs }OZW!1[h1(R_/|rcl(8' zQT$I&T,-c{F$)zME窿W4,nLKl2HaMkl'>(5xO_*qb g7}G#77x}~-hXMũ83EG3]/rtqvtC|b+52q#%Xy{ ]Zo/+'$} >_gH)SC(Ycdy^$ω]텔"Td*>

1̋ꊮY(ŬQ3V2brz@^xYB@BA]JM=<1/}%Ϟq85I0Xf J!i0~[F]n\XXL!V& cNAA!#tA̖c=j臵8#dqS1?DFe7_c?{Jxa)y°=6FkE' >l:>q9} g|W/su8>12{ִ&ٝZy󟷌N8m;XH5bd%/;ϟxGIī*oG(Em2z!Q)9mŪ}vTq2sNSJ n0Bu9?\ ŗ"hn7ۋDʨ!.F# 0X_ۮwf%)QO 9o1Mbrw5B DDdWxBk,S;"]5{J8%R97%W% !2j +,[|IEڦelv2w ɮ4I>7Ɉޒ[K'%JЃ&!{v8U c5PeA>fdebBB Ur]'P.V3U6dA&Z]1 a>}n*áÍ#J6eΤ* v F>te Tj㸫+e|Jy ]0,c,0Џ#>ÉJ8I;y~#̳[> ޓK O!tJ||[ߢ+]:?p%}?dw`YB)\!Ή6:S3_' š"ky%}pvhw'\NR\w=U!Fi9_LqcY Xt`5_tZmg5ckxD`#{?c?Oď`Y3}?(_: cAgԪ+ewu%$88B˗>"OO?' A+KJ)TsG/t$4xbT͊Y}ǎϘGh6䐴5jC؂r`Y$]9a{nZi&=J$Ԑfu9]9ȁa:GWMw㞾׷/kpkr\IK4:ԭӅ@EM~+oIS"LLaϼ-Y:#W2㬧#Cc !` Kn3J9Ek`6G#\=r P2FUL1묧>IRL9E,\;b-YA6 Q3QFgR"@n{} O1gʮuJk]V[ycwd'98Jb=\JLzXS& KKPAuBF?VU,5C;hJv)IiUba (H6R։WF=*zG* j݂q˲ #BWZnu[Oy{2ɜ,2X֭[ѰM)f΅);pFzCl-Zʡ5(*c-z9?¼o|nq,^ <|tWA(jQA'\pu]%x &icp΢\(%.+q$LJg-$+\1fbXۛә%/0ÐIqUZ no839q11O3W :nϸYɹ?1ƓjRƐ%i"NOߣ+??_y|<v;k4MX)(ՐTTuj[! =}+]icRY,?:!撷Vaoe}ԏrcY:@u]:ׂiDB+0 ^\,Rgρ"$H@g.VevWb|+ j=l? 6rI藿h<_ճ+pZϜSAX~oj%9ۻ@,h`S8Qc3AQM"/RjЀ V|g5bG6"Uy])9Q\; b!X5اM4ħl+%B epu z/(؛0M)왍H?7ҙ^ 謗f8p:8´,9\]]Ĝa޼8Og}_X,)"P*&gF`L@\N>b] ki[| =rS8UTnJ5 HF2k(Xj͗MVy9.th}/vo<2ZE x#7^ 9TLb/&IBҴn4Dåpٷao}m>s9d%[Vּ`*i#愵a]Vyۛp<=Ј6/13bE5 +>5#}OjXl[͔< Q8ȉךHYvֈ*@.pXl?{&KJ;!"22 $lI6!Yͤ(=M/2Tq3ao""pXZ倌q9ַdCaqtVgU턝V[( ֟:*c͔iéBU3AБZt|ԫ=F-]'>U5D"x`,9u*v[kq`~ e&%6޾}O"xr-g4zѳR0Z Fv㈵8xkJ̈́6nGb7 k|U]d F.PS&tq)5KFFT,:R|M,qr$i#iݎxs|>Sje?8,pO`Kҋ|LA֠Vyxx/ac&ѫ19Sj Z$S\@=|a^.ϴV|\2!:f$D8XR2tźy)$JE՗UٔsAfB3T$zqHǖ JI6 ukqBi=-)c`ƭ]O/jύ~Ws:HNB]Y0ea9tRAt;Le #Ͼ۟É? :^ey|gNINq>bխiJhuN*YVY7Bes=.: gܶ[ɵ;Ž'}SX!atid<q\I>hw )Hj|5 뽻H3kaQc8nnprg*|C# 8g,Bmo`kG['!-œ ӅteM2hXZ[Gj"C##:ǛXe{g"hd"י<\k,i|һts~X.!x;\Y>; aIEE;J&/+ ]vX+7@ _Dzm2΋=e`Dd\[QݯdB #v ?`g=Zg1a*Oׄ,n=N/l]NEOY%-1BN`m% ;yTǒib1H{zoٟw|oI1+w#*۱)u){s|ϖuƇp$_.x/ɕot SCp*7xqa4_wqryo7\S9xd_E{KnQ.uӎN(﹞X [zi0t/z pzdM\S!\}z O1n3^Oϵ^"儓sBb CBAr+ a *liSN ok+-“(<yds,9s{s5%ү˂AhXI4-q9Y6Rb|TqCS uG$z3#ѱ 0h\/}]7`";9I/8_NNt㘯 /aTA>k> Y2OQ\M9X:ejBEFʍ.xGj.Q{>Xu%k9iӭ+[ 2C+j} G ~GW{'<+l)IHy]-Ԃ9%B(7EX3F9]Ыb p[ɻHͰ #Ω83; {-TׅaGI*fӅ21ppc]DZ,u?>0vC$].+J7B$N} a> ÀJ%DG`gy_[kUD)j)Li0ư,:k\oZ[Y;K>^eHOB!9  "X ">~Kmsak8| ?5LӨsq˷޿rIv5XEet̺j*/k0,1ҍ)zm\p䯿ۿDmluuVРN(>i.P4[52ov,&l',8+b >aH,~Z0r8e%\XSjTiI%_t B1^hc ˩aumtzzRka kyVADC^edЅ-! *J޵_G%69u匷zgo-%%!R5ZOy-߾wJ^uԞ?k^c\d6 ÀU|5U4)A823ご2)%it9iGX?:]čo~`߾y7ed q:{WAfߝ$~"ZqJY RY nGnXa[ +9 ];cC&:֬p7$b䒔bX:asnZ F p[+!H9a,{>k9Ӭ 9'%7&-`9Z* ܺtsk6B%-U()ӎ )%Uqw8/~GޡmpVM0 *v f$Ƽj`B72. c&B] ׇ(Q4~8%Z 8QZĴӍ~vӎrf{~/ s?篘5W}}_߀AED~?O'j*Ռ+(tv)-o/ba?Xlqq~ 4q"*n=ô(Kvi田!H9qKZhU;(YVgqY+|,G/m6NS4.jBpMu&nMCH|!a~y+9>ʬ?%gx *ʵMˈ0,֩i6zrc2Z VD[E:z_R T4HG['bZ% IJ^Nq7GR)3ŁVK0]p? Ű,8Cwv;'\)޷18<<|`#\tvo|:2$Nbok4v="Mެt#u:CgZb*DNUrjA$ð5)*k+KGHviQA8VRlq1H_BZP6q&e?vɅcUcwsdw{+Es즉o~+iY:V.x"!Fu,+%pZ3;l^*έϴ[.~&GJVCx8 ,t缮"6LQ"\y~Ņ `"]ӧid.^"V3)7n( J\pݻ88o( .pP~{ۛ[:GΧ3A#s2_I 睪ڐA ?^ m/Gn0즑aFM4Y8U8,ҢMhI ^%w?Js̥uGgfEZ~r8X+;3C3,T✴ZY|cÒ2N#q1'i]D' ؇xv؋d DWD1B e9%*V'ﬤgM}'ۤӽJWVxZjo`8BK7зܫJZϜ X]Bj#+|HlFpa]LDO{JNpMq>fmo))YZ\8'iY6ɉb$舭r%o!B Ry{U'o޾?Hg6Y'j6f'*;UwV9zNO@[. |=0p^6#yaD>ܦ0 i4z vqZUv_aR+gŁ@ə9|:C,EO[,<@xkpTMF^b^X HY54ۻ,QŢY1x+l si8!a|H ~:yl.NrI*re^aBc:^X(1/ tlɨɇر.㈩EOa)E猏Q;9d'=y\ɚ>: Nҁk/'_uY^}^?0_. 1BƲ$ix1|_ޞB!$kZYwae.<4F+NJY}4A:3?#üHPdӣcx =}Z+G4FSu ~|$RiHZd*ݞo(dTU&e덖lQX^U5< QM-VuM&5#-h]Q31~CP*PZ'ŨuZ؊ZgYma?ה[/bCc ָT{6H*hB^a]vhT`z\ 0|D{EWx9+ ~Q>b{!.T;r׎9'/y3_@10J\kx*RSx) : ^+IF6gݼjkRdq.oO-A+Gy-¹.ɍC9Nڊr^8-KZ2]=K nktݰ˟.{+~Ǵq=O""7~[ڦy1x4{'M]n&ΈǔDvX@nH@( j)WZb충.$jH Wӈ7Ƒs-1ȬwR-Äs{{achxdv 3:,FF!ɦ06D6Ҷ]FU k6]8 bT| Q1341_2q8r=[իOk,9o81Ȳ4]%_, ڝw?pCm~w\{0毚:,z˕a4Dq/f-^O+l Ʌ"Q/!G]u{Q㨑-ZܚukN0`TiE4ltZ ˺fcK!8q )8}kY -p$'󜤃:AÃǏ#:,L!FZ0թFo7]eIYy uKw\%Cp^9^ԥ"^ϨyXg\ΪX1Hʮj&#+Je1ɨ,)Ƚ_*$ ~;4ja/za^fgݞu!gx4 l/g~z_OC_/;)%RҤ R!Z0nwX)Yev lhQ IDAT X(煔s_)Җ޴ ljC*Dyn{h咱 ˉ~woIXiV,aSI;U^]fyg"BTwojk\50y(I*;]}107iAHr*~K7a8S׺E kkj1©('8D:Ot}_dMVW5 &rswmf ,$үe37i/{MlV(9 qNEy208\ڶ'[KKc7FRzm|ke(#yYv;j|$0&ݠX38CyэM!"N7T{.0錃ЃԒ(Y9ie:|9uΚjݸNP{c)9?>ʩ('%ft>acߋsY:>8M]gqEEPkR9ySaVj=*zk(\)ipQ2 >g1tut8,u6C|xOwD@#D/sv];̗Lr@Ti5kE쬡G b)ʭ{YcQc1 0(n:c͘; b$hYN$:-Y2Z ߢμ\s8Hr41_gΧ3Y&8RyXR;#hYġ o)6J)\ 0|ۂ|2KJte,)Base'HU K1V=Y0/㬈cxgx~폹ĜfnxR~̧>y@! ` x/ZiAJ[Zڝ "K m.k\!MOt]-X7l{T*WRZ_(!MڼeSwċ7&3\dn6-7_a]x{˕a7Ps5C|!*1`%=Z77YWzӓ!Z,Rf%:gV6C]5vu";qI?ֈ1rzExn'k|+eK#W5j؊㢵TJQJޢ4J KZ(91ĠtDoN}F4鮂1ֈð1p1m3FO'nǭMb]fY\ooo8;ޕrUyEx'$~G4sr YKsNWj]4S"zy-jn~x"`ښ?kx1]Np. Xz+C2r/jO aЛWx8Iʬn/ay->`0H0o(fcQdA,`e~@2GhC5s qnd!r>|q˗4 'Ex|9:[W" g ?9Gmr4MP#4@-]],1]"Sr] ҚLoR`#*yT(Up80VF%ex; in!kfZNHaw׈7'qY|ba4rߓa \+=-nS]@UsV턭Wk٪ 8sH 0/9fжEUe~Z@J(6*]/ zpwĒ.V:Wߘo>]Fv p{K&|*믾⻟=9H;HPedM4R mJN("*ztiJVEL -7ݷ 2$ s~|J#Us88&8MGwI1Xó$C@P@M^'e{#fX#YxiUbiU*h,IYӉnQB)LR+7#rztLب.NAcׅ?DӄƵ. j9<~z_#K3I4nDty/"H\ "w\bcgK7y|0$zoO^AqZgqੵp:=|x<o9?qN@m7a|l8XchR faSx<>Z[hG r80Þ>/B.%v\pqൽyE9KU!gᰛx ;8:o߽#7|six7e O^ LDZo sBN4 rq>0;jm,\:uB8|Ӥ.@([`;]V' UOo bPzWM$Flk!ۿ}_{?W5kxt9/_ ?ɰaBC."E V!Sx3s!Xٔa5QeVrv_9w8N\O'ad\g/^OyhQ4<)UO\cH֚g9qvq]7$9M2:5aTֽ& ;\=E &U#]aD0J|pNEH\Yqx8B"0,Ƒ)[BQQ4T7v eIhUO@h,Lk1i3*̳RZ|Uj8覯A`kqlOb9KЭUyXq+eX+쓘s$v:tq-#7j QjД0HW;=;$X2Xi2ʵ2i !3LPooKMΈ @G/8'aWw|:?{P16БNZO,WelQȼdBa'涪&;UY7%W=㳗;qť<'82|JOƒfe&"NMV!t#q Z#A9{W`GihOw<|i+oD!X+3J:4ёFTWW˦1rт"o5o2W]y X w8;jQ)݋Z݄錱HGN[\wRpfdA+E {49U+'Ve=Eh z2_\g1`F!p\YAY.;sQl_eQ tGQs(pRj* ȈD: b4/SisO 򬬐-:lq-gVl^i|d$(HnGEZg/cuDZ񷳜sJL{55`twKueHi"dz q|seup8.}")tva78b]TծPEpjS{a`"*ҺD/;GqᣣaYRf&Z!ӑŠ&y \='i:\g-ًg{N2-_}w}`[#a@$¨Л$~: kt n5lN@YֹwypKmQަ:ַͻL0 ӸFn hiYаEOZJ P<&D,5lh]~+ Lo͛u4~4\AnaEM E1bZq^QRi4m'y+4fq8p.}-Y!UIJ~L'naa.Է4k0[!/FLV"eIJV[Ù qF*ڨ=KԒ$a1I;vs_JuΏ'@qy<_wqȭ`ùH3 j inbzA.m!d6ɫUbcs%tBZEl.EeM[zp@u2^zz{J (( o +kմ@F R = -#O,ɯu%k!SDY/ aq`4c]x͈|coo81J݋?8L2/Q:1iJ>MN׆i،uDzo9nhM ^2Wr^DW4k=˳9@7AIUcq9=>(J0O;*V\O,^E2{6?Øw'RV7ǠC>J𩯏5XBI6t/_ 3 AJ[+XzUM/(ྥzzu벰U|Z.)k18ﹹ=BYSl+s, @&ȵkwK\/: , {ehZh=Ws*X *p,6x!5hQt!2E .'JUMM 1%X| ֊@(oIЭ`; 6" SMݨ)q,˅4/w9r/hK̻ru"NGEI&Z$A:C"2w)Yp8T\h>-}'nㅿ?+즅jOP9gv_f7TXk&8Wfw&WjޓRޔUnnv_{C or)Nӑj?~ $HW,~R[o+4S9{@m-:yAýuu}~>E DGBU&E0MX#9ntƵ>DL˕9S&3Hih''%t4HFXd<h@J:{~Z%Ga3@9 XL 9KPSҒyÉKp݁q;/u0JYBK;hBL]-ƲлP9"4nX F]V@ apvJe[KMlw@o7͖MpzF_Dا-#BbݛObx)Q!Թ 1bZB`n?w[ָ#~$|kvC0M,Hǖ.qV`eV)T; ~' ;X*ij/9_|xxH +5* #bagтUBkurU.I`b[:oyy:5A>ȭ2F*U43=qّ2bBNǁfy#֙L0,yk0x@R O:RĒ6ft@؇hq?nyx8;oSK|2ע@(c! q7]lJV߃(*\{];d(a$aV7]O2w%cXij6/z?_B=uZ>"9G$6 d5g}swt랾I=mޠ vV5?ϝEnG^fjJZF7s"Ui* Xm&m9at[ceXr&g:ʀa'a8qr((EΊC4l8N"*iG.Y?3# nFv-Bk4[snzϫ먢uu{෍Yư&|sT<k1 Ʈ଎S M_7(Y,oul_EmD] \5KSr#궤ĒAG@o*bF[)PmSUja[M 4bꨵ3M]KcV_~ p[#E9-N? (֪(ƇM1ƍeI7>hu/ֶۑs|~psտmEi$9 t: .) HH iI8Q#?"khh흧AF~n 9XCd$i:Ϭ9S:,י4Z@9WMϗˀj DaWsSħĵ,3;n{Ӎ"vN YÀbߒ0#|ᢸd#-%cLԺXIaW:jӰZ0"Y>]뵰6UXGZDkF-HoC 9x r:h&3-z调 ɊA*R ulhHFP Br?6[=8OMx(Kafk|t]5`%vQ zo$R.E;b0V8 !AF[y`hJ-ȜY1>kCR]qְݝ-8 曗E2[JaHӧwˋ > ÎMd T>R2컎'sssM {REj=8kkp<^f3bOh0B[RhFm@QNQ#!V>M *u,%ՙE>Oc ay9 RadSX#x?׺A"G !F!xOGVz0̊"4#dD gPIhGn˟|g}MЌc,uk6,)Ѭ=9Bsk<8u#m`MP#M)RKP׳+$!QV*I5✫gW[k+,˄x%=W%RC`J QtDrtdZ[ bꄮh~BR0guoquXQItk5 J&X }g>015Ҵ`͉qj= Q5 0 "`E+1{ ฾x%I[ ƹSqP>.M XD6#E$c/S sx| f%0Nk΄g9\SJW5I ')<}6ȳZr@8!jͿH=s$) nNIènJr96zX ]epR$-v 鼺('c/Ϛ9/˶JT'AHUJNN2 j)B9'o*E$czɁ)t8&Iѻ8s}sKb]ߟqBmV2.ZmQB14$H^X(GNeízKk0z꺎 0q~q) Ϝ死=;?#vFOy##W$6v]qL%q7b&p'2RFB!nWg-W|Ԡ XFՎY8 j, Vΰ!Zyo 7\40il؊#PST?!SC v="+vgt9JN>%_ӟ4o[oj iU*1,%sss -TUxK"weC(%IE:sΒs(&k.tUV7JkblggL܈-0}ν5xK)v#R*\^mX) cYͩ/X'<'l]3>2S^fb\2ͨ]\$hM66_8;"'F In,p~j y:G^pEJdLGsW&xc!}y/FYq+)w5~];Hk1v`Px8R}pԑ'o]xGvhצŐQiAr?&~#WALZ$)n#P!ꇒ@#G1z\2FO=6|)L474ESGQX)SU} "f܁r\kFTEiԕZ6NqexWԧ^wxw4X=1v,K0Wōn 62") 3@RIp>wN%?b#¼ dUb$d:1Xi}u!xQ,39_7_k^o_ɃK\ !tG:\/Tt>:+8鏭s(E=z|WW,I5"ʹn^D}ğ+R>Wߧ@ľ#hc o}4$TZ5e*&91c_Z HA @*IZm4p@soF]9eƕ"8) QyixHGcZj"eYIHtĿVIbf0X}U@K^GYM`A\Qa}a@tJl}EۜGAHaOCYk%% X7vZ'4RTF_CD&XiTb^cG #Z0J 4OcZqknԔsp",i0 =%I)6dK:v 4qFP魥$6֊%М4!OR&L| 8q3ʹ&R#(*>diOp?aYg%HUYC(/B bx44uxHNIwBsV<+VdQ֨9cF;b"-bC+'ʲN7|7b`1`1b5d-hcgcd'tw3>DZCbp/aN`u1jصYưVaE w1Z$KTuwp¥AxHBCD;؅8n`L0`*MA4GdG`tg.`7H՝Sqtd\LG^u>'|_z3w)Vm/#@ H2R|eYsbS܆X\_Hs'̩{<pNSqĦqEJz-΄]꫟kWpvv&reW#^\Ʈ$uRN$^Yh✓HZ>CܺZK;M.z{o͓Ͻ]UT5)yCZҥBJNtb1YLȲ 2b x:B-r.ZXjN+D#S MgL Y#B;lMw-ZCJ+ e)bwJ"Q+r_2XhA- ]g>%26KYVX}CDZ޴{ Eİ iŜEklk'lWA:U![Uf&)H4o6Ss6Xo}d܏bw;|5"2@{1NDSK[H%f391- ܺYGa立"m+6=NT >X(?V{'Vֆ) }'|0TH״pYYdkhiJ7h}Xw2F5Biډls&2~Es'H)C5c1 *k> 5(% *͊ ئ)<|pfyL >؍cgGm,wyez0tt]ӟ4_گPo?⣭:.ˌs[ݩ+^?& j4F_< vNϫ{b"wiRXfCߋkk~W}xo {VɆjh ^ɟnKoZÉ`Sz~BuZl1UT5R٠"2\2(R&xE JZ {vf0 lΛ"xOJF >5sdt܊XJhnpAΑvWHR \t&!yX à *l"ӒJ) yI[(Yp<ϰ4i#]VUQHIC-_+s4u\܉Ġu+~uUE+c9mrU+R?EYWA%m40gqsaUdo(M-1aJF.0ђ,4)nj"Wb$a+_b{J|u] U\'///}zo|\__#F8OM%9kA+HV C7ڨafG>\ )W2fjפY0H2M8W^,1<Ւ4^S}JiX}[#:,2~ p\+7iPUJ [1X)9ZeI 昗7|_V%yC8ui|B|]ǒ;O: a4 (qE4B$#Kp3bm qBfu &,(ւׅWNrVNR(Y ݚ|Wb 6E p컎1v !C/!P%{h^⟑ٜd\6 x|CI[&xpYCcuջjۯյ4j-y! IDATy'ۦX&'/? $pfqL9˵eefq8xὔ^c&]?qbp8p<Y//+c./%[dkzH#91JpQG,KpYdnL1?D q-p@t pKlAF\[ : ,&6xn Gq*+dm.^Z$՚Z2*r}17>|-$ie.<rZDE4M3wM$lj6s~~%1Dbj +b-2:rPr)*R:1,ˬ_ 2>ZRA<nHJу%ȓ%yGs+_ՠ|EDFUirKKP]d9հIkR嵢F%sM]q! I.,j/k _~eb7՘,Mm1|GRapHRȼ,:)o@IS5Sĸ;T˜% 7h)8ThK>DB"`pZLhHrD-9/,AHjNX}?0/:kM 騵q8LmbD`Vg1dc7 CCCxӔHI<=[9vVZdkٟ{*Q}w,1V$:eLnLB'\l1`L iIYlk;#[rfHfa Z((p z5|]c.rD':\BJ6uh,z<#JZJ*c:qnnmZLk_+NxE)I^'j&A%D`2o[>=̍Fֽmg|B[?6@-_x#rBj߶+@m*M$ ڰ!&%g;w~wyok VRMz2žg+b$RAGScu?,a1XF)B8'/_|x]$Q Ti)0S;OE(l/=gmtSk|k6NdR>z#=e'Ŷ$H yNt1bJ&dȷw0/j)Sҳ] XC&K bf gCK0bG[㾣JB^:Gjk.0D z|ŕ#|d{>)}oފCb-yaoow{g^f3c[KUN2F\ };\_a ð#əECXR3OPjcHq8NXky!9G9sps~qkŇH)fdTj3)-?xtsq+2Z=\3gZ2X r=[g5uⷲz,Ӭ1V|kWhþlvJ&wTl/ϟӿYN{prhW^=r<sNr:"$MocZe 1ſ|1 FBgm+95Ꮎqp8=K) ?C*7F9BO6{Ȍ0N{Ji<}}Xl~*U[mMXLwXZH9Ě>5c씊l.l#MiYMXlCCppYҭ5jn (YsfI{ygVtJWϰ0(iZä2,Kw{e^:'ﭏ0??(yQ >n,c=J ]tNJsU:桊 +w<~$O3ȊP8kw׊JՙRBVn5>BdI3c/*-wR h741*fipȅ 8gC#ΉR !or$P4ǀ8Z+ wC/DM6; .c 2{s1L2naB(΋8`o0nqƬ7sM0{"?e{]G>~@v>R7~H9=$J8mw0ӕ6σ~BPiM,՗$:1rT0OrD5ũUPVUHT4<Џ/Xsp}77 ,OѤ9c|Β1H\,,/FNq^7*4G"M&vCepAʜ.Dm-ݎgSsBt$&Pz-SaUVt12#v77~p\b4CB,>AUa'@p6IuY8dAj )DZFg3x ifE9|,Dzk(2-ZBɕ'ճgş9|F2;uZ4K|\T(ӑwȸ>N1,;]55$* uլM}(({g5obB:LnUZw~>r+b~0*dBM^zw~,˔S ^a3>Wr"}OkMBΘ_?PIPuh-{ZVIg}<ѫUeaa$iXU7'K)K |ac.K]*0BT^}ghFO Cᥡk1;'N qYIU*/Qd1HəAB}F$oݾp)` af#H_HAP4 J(v0OƫQђ2!v8β"դ98r>npnǒ J=8\dٝх@.eY{s$V̋TaEVYz'pG 2Ǯ%v 6iYf[ы;iҩ)-޷ NCO; fH6ic_Z Ί֬9 zUkȜ(w:b۬ƅO X2jn{pcf}{'y~Eo?>p{??򝷾9now; '~B_f}c73c݉ :abxY~|.f,5*;\=//hhxMccRzŀx] fse]6a#oFZ"~jPv@v_J+[v(Z6'TQ1 :ʴl:{0DM[XQL-\_]Rݞ]ʓ9#Y\[l4#2t V$xΈ#L:;tq8h Hɉq4y¯sRptDkȬYR cq8It<-r5-ڍz!4S]^^rP<. \VݎcasL&"QC0qwB aԍ}Z+1 *be嚌*iȚrr]?=Xjcf43}1̤ d<*5")]}E " ]FYcb4ZcOVl Sk^##?>cGvZ]m)׿{L̳OI8Ko_, w8bӟ_(굳Lӂb垬?[z,݈ 2/4~ǻ_gZ }#lDB)gE VL+XQUsdʼ^O/rF%KFX%Xp8%KL-o[ kV#"97vX`:q`-[v"v<XS'I P2@ p2Zt:7'|~dqIR@^́hq8B#\ !}Z'us҇M%jXw2DF)ez<|YOZ9RbK^Q3LΌ]$e:2| 7NɛYxD^|Vcb6R? UuX+Xh bdh#BQ!PЊ\hʠ[1S 8I-Xr]$kd띣\;f*M,Ov=W??#HԧlwfC@@Jγ %]Omumx [ sPjؚN.ů"g{1p8%i|#Onn~Å@jr[;{]%H)l74V[a@pPvIFە+sVN;MI:N05j0dNldyIK%YkbK A (X;,H+>8FV])y8j^YkuTLn2Mt=3+RԖB)x]'D]I`iT,9jx#Ɠ(1nE`` {m;M,maՈ|ΆHzjӑYDm%%9 c =K'AMTQ]8r6yÑ{FGpbEUwdUa`)iNc3OG@}FG#1gݳP^N)fӴu=)gʒ]'5##o=9/YZ|#b@eNzX[&kaZ$AQ9YҰ.bC:~}Ig+מpt㭏zkXo?#]]t<Ae?׏^a%I-n7/<1jQ2 k G_H@k8Ųa|_$=AEmv,s\{LBFfyGd24(˂ Xfu  fIUAްL&@K8H<5,%SRڊB(s,QÃe!x5yXzș8Ѫ"CqC⼣@&#}xZG0r9,)S8#z+so0T+M"1vXRq}>1=-gu}ғ[Ak*ǺX%.tx+C ,trq~δ̩rYnaXs@ujC8).PreGr+V9IH]s:hYrɸUʣįƜTJb$O ޱf .fI6Y 5W Zm2*mo1!НӺ(ڒ5AՕr/_=Niw5)KAl-Rڈ]4/g\_]'B/_/^Eq%K/g.f0 cKgEGf:y0br~yI;L"8#]@ ב=sZPY۾o4|.{K,lj8F-$4 ,!k0Uވ5o{ibiI)1qb \c{0pLRP!s{u\?@) AO= qݰ, |ӄsp̴uMΌ1*)'Q 4 Q%uୣ%5#k`wbZZt]t=ٸ'}1v#8Cs݈G޿|d񛰖ۻ;$:PL[h1M8u\Q` Q*2%}`I ~OYq7nlȉ8\[OѬp<` %rT#^,q5,W1Q hP;Ri\vg*"mE7y'Ex~I$O/I#h K ׿ ..P*8oooY/lKf?y1/ouޟe}t_Em}dxG.>ճ=H6qjt?S h|4+FF6+]͂`X-6k\bUڪx(8iFQCOdrʸ]_C!i}rF^cԚDzx3_;L .{3aߋ%RxwPRx ^rlř"ƚ&0B&DDh̠ULLQAɨbS)5I)g Hb%m?} ()qM K.TD2,ex~F✧}w\I8FFkxXmpw82y! ;eW#/A-y9RZ5㈳ҨD-Z[ǺK#JR:R[7`KԂcT rmZHo$ 6C"5ƭ{'JʳgRo "nKbX0OP..` |7[VǤև_T0,noo%8rxA~m Il:_}Ņm!ewGwFQU! 06eυz2Dise'+*(û O@t;r+̊ؿ~5 )b9;)ƒac! U;-*ՌJ3QIJC `f`kݑ۽uSAz#HgHL1Dz_<͐E"@.Rd |Lw}%fvc)8H&ЁP?F*ߤ\z٭v~ ~@8/B o޾5ҝT0.Kk[r1m4pc+~"D М|ʍcy‹4ofXIX6|75G6' ݻ.qhBSqQ?.|B.!PcҰzӞ3QQTϰݩ`0 ^p*eKL( h\l}A͜Ɖ]͗)%8Օ}HJhՏo(1jEФs;1ݟօ)&2MHɐbPz7Mɰttzmm&j&@xv݆DK5j'v{ߞug1A1K&ϫmpm2IB. yJa=/ 3ڡ֕, -4eoǁ/B   dEYLP!Gd?g?u=sz#1+NVbDKc j_9 BJ& GQXzeri=#m</XJɹ*VH$)\,ǜE4#$2bHNj7XɊaєi!!͐ s"eC&Ni7Uo| q}u<{B?s :o?7m`뻼 h3/:&l?rx~z>i@ŊX4!M{zoobq.ܿ ]gÓa(ABB$C(( . $69t4THjl=;n uu[NJxciI[b^p'? Y$[4E4EKˉyM:wgWKS-wN{ uEk5%B~Xkb,{~H[LC"wDG8£pl}p:CL׊LB9N㎳%yf6hSKeoWA={cP;xxXpG1Ӽcl|EXӓbQ*H̆XWi6͔{.0DRdc)~_}>|D.,\P 1Ǣ0j%ۿ?^ya[W(y}>{]ipty3=w[b]k]иGA$]:]u"O([AA(9Չ[(I|=tZޯ=3x>@$*))Lk"zN|ĉwJ֕)KuXfӋ>̐IRAh^QLst߈$Mƺ M:]h3Ǜ8$3HyDŽeO)#es)){PNĜ %b4WiBN^9kcq^XօZǻ[LJT9g )yf]L'SFJaŜ6LQ\_OO*n/v;εUzqWHj.I1[nVǞ1!ϓE,qXk7l2$MK,L=TaݔClq}O7ocmW4Mw#xzz7ov3~wXߣyANوPwSv:3yevvÈۭ= F$ 1D︫2aQV@f­"dlz~T=o\] 1f@ 7Zњ;0WP8U١90\u]~r0m{F|e=3M hWnb50&'DCHSJ8#4 nY%Rvܟ*+3SW؂$Y")U٣nFEjERaΕA/"]q47ƸbYL\25ۄ=j?c9Js&4JyGBݮ I@k)%!uE$PL1 dFtWP ft1WlLf\|LT"~pZFP(.A{脁 ޹;w^m75e}S9S ,B?7_|Ժ|G[ߓ0Z_d. N)^Rf߳<<1$7"51=w[Q6` 2'}F@BbC|4 bAE1;1:uĥ`3C*ynC{*Ph΄AZ7A4s!a Ɂb mĒ9uޥ9tXڍwI){l̶Q"& LƐNe4!)A`ʌ>!q7wPgU5]J)1<^=U((i :)Nsg] O;F`n7@3}ysbw bR1<]]̌6۔cr8MRbDΙ7tf!O;e 1L݋ǕȐ@"C@U` Q'-SgDo.'5ÈfG +/ﻌ\K4myYׅR2<=޳z>Gw]/_۳;\X $no/. "Gb6@78|2ߥ886+zs!LQl ];ۈC76b]uyt`k,}PJa xu(6f GBn$^<["%Rt30ʼߠ+Peyiɹ0M.gzWϓ0~)aS)eBH!v]A[;)x:L 'bxx:IݸMŎҀe$C 54ݖ\Ş6+lٓE}]Q1D)H> g+7ty POЂu~CǠo /zms*ngv!2G5j3ƈNl!"R5HB au4F7 c/#pSetI+wKF[ gKHAy n[;2x0y4h+uY۠qNR u]QmalU^օ 7s bHق"p^+m] 2Ώ,38я.Ӌp><+ǘ,gCMLJʌmN9^N}N{^{?~. %E⃏?fyxtO5:l(GpNmF;9_hz}`''u+kxc(4A7>֚yg`Y;+o/ٴ7\$" ZoNf$%uě[͝]ÿOH6Fr5+e6L9ӚE?<1jɦ>ܿz)/  Kz202b${Fm/ؐx&^$dafE.#>:UO!   j>:EJod˨fѕ47 \y?09${ސ1dՐ@u5ĺ.d?!PLveƺ&݌#i ~ Y3iC0=cHԨ/|Kl!g lJSgIL@Gzq_[c󲠽Sv;8~ >Z6f .A'Ӭx1@b6 ;i1ʹVY~fyJ).mJmsYVg6nV0]@PlD#=FÑ6]2xd]rn džd_cH뙛~G]g@xY<@듍2L-Duy_K{X:}u;.ux4Uz]iPϊ;3\=`*"y$<ϜݓBt==NV4B&sd/e6 eڈu!`fUB^ɻޔpQaJٲDt*6zt;;;ΕHBr&B@;n1%gX*vHlc$@=+= DagD"M;+Xde]!Bm[Fsd#eYY~s 7w7DΑ{j uRrfldBŜB%wwt*>7&+rL=O8T]q.!|Kn ◿dgyՅ~=!nnoZ{ACxY2gא.u#u~Fb`!{cn52%pwОtZ3^bczIk>];1Qp с:Z k;}m$Zy UL{^ 칹}]!a,;#H 9m{98HviȅvGvДT;_p?7n,wD|5z3Ͱìc#]x!0;c/ .* TK*lY,IdQBqzNkOOgvO0њGg9i<)4bwo^IiF#8ڙ44 5wv%B ePRZS畑;]V6JN%OR,C4pj6E^pi#{\g *rn{kncArbTS)\$^xd:?ت]^eCggL̉}άBB `6ǃ%a;Q'->L?膠fc-Z7y:yr{H* k#O|3づPKh$\$@`\$a+DLn#Y IDAT*ʢ왏șF!*ZͰ{_G~/뫏 n:!Y޼a<<>7oBAdW [ cӭ;:?15x}leC;Q+Dm+g9bHE1#eʔ)zG[$v5wrfẋ8@Xj=S/+^oLgfӛ1ں$U`m ͺy0b Q,ͱ <- 21F~L! ZX F*,!EtbsxP?O%EnW, f:"-1s?dX渉c=ϼ i~pM|:OH2ϔi⼚LIiCupzb>xs-O޺.٥ɺG:h$s@πy@>̥ҤB(!d熐){+*R>?pjiFʉ\ |W?@xY_Y :ϖщ)RRH_Oͬ@Ap}o!5c#AOm,1m_g٪p\ Nɾwf";" _Cb̔<ò0d#eXFC')3N'Nq$T?J)fc `YNkXĈ DjH!Rd˵V+I0d!%Sne6%GJ䌢 p$v%6H֭(@H$ePNt6AODW޿e@N[q/ǔ-K*TϽ }uK@o͐;pshV͢oB$CYQ$1z3ɋ@K1(f-v\tG\;5"tǟ2!e})CO̝Syk#kg_ Ӝxa}8C}m|4E5.'35~;P@b}eFNu-* iMi*^1GTݘţ00EGciu/S!d^PLr`~s0+嘈!B"x)t5!f$V8\7-P  S,4<8Њ`5T{1tqx$$⼇#oÏ)1#(%#:xǛ=*A%fOBu4#y/=@buLSLHhhNkZg->R/(INІ1'PHySnnbeU Y{漬ڈ&V@b#5_˧3O{~'GozA^WdӦ_HQ2ᰣJvOa93Dlw셭B` jԵS =P΁R4I(::} rFgbdtc(f9s3kzɌXyzA|fpW+lX"hIkk6B R$^S!LA[W<ʹ7޼Ck=1ͅDy[)%F1@6i s{C߃.WI N)B׼2Bfg10a Q!ɚ$t o#';WOP Ph6>ʗ YQo^7޺6QkUSg !__r8Φe}emÁ|#76E@P0o0Lf< W#7㦡|w3<#o |ߴnmCtGmiOՓ}c]+A"A"JNu#m1F=`V)&4ji6mlp1zU\ d:#$$O4J6coc4t1Ec MIb~!pHmn- f`ͪ0E(RDui)2 Sa8/A<+ %:m0jG4 C"˝GU\<+t #"[:4UR)(U>XIK[bEC䓏>鑇w<RJ"PzAa̩3X19<z!B V/fZV5K%"eBa_0Lɒ9:HQn&_cthMm'(νW< ^7,#\~3=$ÿBv@]%&!ʼn{Y oo^;\u!s>㟫wR'Y_ n$glCx"F1$bZE P-aOpv"2t>Eb]eQC򆀈q+qch9EZh. I 3*l$)bbFdi.`D1m2kHL/B79|ZAUahGfp5@>9Zz+TtrJXep{Vc, |L2W Na"E1u[G!!dD]?@6fi,C| thAN>N3Hɸ"^EPJps$ᰃRc2nosz^>obR Ke4g?K>Z?Bb9/ѹ=~?a/wkGmX&BM,ENgCG8r0z3=G u Ax֝>noan{09ڼl%ʨBU,+au n!j>h[< j֣6ǀ'FF[]P]t%3t %{mV HWul0@%F0oeIFڡ.݁0(ӉhQѹxZmpnm@X%xB rN"v*>7FLiILVm1'` t]Y(Ķ2s٪2 !5Ġq>92MVj(B] H9#b|t30u#i !b̩FWupv] q'aOO DW"hCnmoz4SJJN'B>xgus=7^ ;em3Xwfa9q\r̒uaD|f։<,4l?ibK̋92uZmD1 9͜ɑP狐D ,S2##(Xځ41C: `rRRh'Ni"Oэhɳ+dM c1D~?{3jcmU$">D4MF|ܠs>AB3`:i6mBt2iAi&)]msh:FG3!4*Bsd/7t"7oЧ'd`]C(^xaE\"]/A ^D\ 1$w_ha$֕BHkZy֕c],4 EsIuFggriG7L厰}" ~0RbEMJ9PI!$LÞ݇dzNlHJ EIpnx̱1H^^v]yiO?㣏_זz^j/_Gw[e~5=&2KXs)LDLãslFbw ՠf0iǵ;U8+@Jyf]gaAJRܘb):M\\K0cњ _$J$yjyp VWt4r$e#:߽ 3QFd3@3wu5Em#}"%")3j3~ ^;9M}p?WS|qLG@wH.U7?r/L+°qK W&Vu%E Ē-CIJ>2p^QOHwtܼRC 1Npif&वV˙2Y]1j6`HGs$1wȰbAsC%^z 2ëה>͉e@q$Ȇ|8x]Ë́-on,+d7S{cm[=WK~.B.n)#g6h]ZwN]LNx)BG7ؚQg&K10Z7n^9 b$ cy %n)3t(#1[v0o@!dP~S){tLJ!vp>Yш^HHGq{>bVG#(EhUS FHխOOowRh"nI3F]جh| iHX1^T(WLpo߰VK9RkEx0gi tj<O9ُ5"C:Wu1d˛ɉeqK폔WrG 5ZP2:PbП x ~e}eɞcr)@_;só.}8O?Cljں ny r؟q; %B( vɐF1t0AQZ۫}^2;1Q[밍_YsN7 Wcj3~^(K 0+ z&j'!ч{<aSAXzEn?9ss 8gC-L}O3HD@ Ҕ* Wrs⣇l,ޞ^]tWk!@q!.x ZFS!ZWjv)b6 4!s!B(۱%+<3DX[3⽃|`Y"͛Kʥi0 GCє1҂d({.IL1s̪nHZv~9gfh$rEHhtUeF3AI 8l$n{;?l0^\[hޝoyoOSy%GKB9̂${}%Hl;5,lAxςKޣ&f땱wt:F;.twMu )}{O`av4gdq&iƓ$);,"a70F ƕ>F4f,ŒVs! B2o1o!=Ͷ * m)Bur'mALylTGqJ4s="h)IƠ <ZcLrbȠ>(WdtN’l$.z>?hrX1D`;E#)ZPJHn_973D0 ѥ$Idd@@0GsKA.)iO7,!T&!-۷ њ]>R|W6Z=wqB>_Ӗ"Ο2{\^gRmw c|CJ&rM|&Cϝ\vFD$q:+=96Paol51_걃R轧%ѨB8 {A|P2s嵢PUEE{ -eme+q`GJI'4E@]ؽ'&>h5і@XJSo@Ae~@!HݜPp0>Bhj6st4DpQ+~LP,\7JJ]d[ls޾yR9-kD%-hjɰ.N?9^9{߱^4pGQ|8RybN35G :fA_|a9y-}`<Ʉ9:)"9-b-#>?iSK[;f{,r@AHΚAA ᶥCeQSu3><>q\Zu IDAT˅s,3`L$)]#G"ke)UL@}eZ9!\hF- n<>~`bq\]&axmf/&^KbxG?B3V(žXU!M&|wV-Dk^Vv^ ~w ߾_}o~8 ;j#kZsQ7AV< ~WxC;702&dSA+UP+4f01PV$97/[<ʾ'Nbqc9(v`cý#9p0Ke3ΰXhb.t~z716̩ZeR,N"|IV@U i}yCnq"&n"8EB^h,zR j7~j EP#!*9SL#<NkCZѪZ櫯?!@} Ĺ/Z'"G2cǐ T kg7D |f}xݻ/{9,tUvwV3z^S*$!.9QP7ҿֿY{BO';T eeu 6 @\h^M45š8-z~b;)4!wxF_4!s-G  K¯5oVp v]. =D宗DR.Brn }O%; .-Pȇ4BĪۭ, S]طNTjX9Ћh`ѝu K圿v=|]1;}4B(5¡x)Z ܵ{Yߒd9V$R#xȦ"0O6/5`0;)!8NS4&w01Tu^dzirhTS5 -5] uʵ5Tg_?1rhP ֓/bGŐ@^ HoPV ۥ7ˠ"o,͟wsHZT)ua;'o}xLaPٸ@)tvcwfE114-vr!CSƈ`W}}G(P²(uY}ύq/j'( @6o=<c_iI@g=uZKASXi֢8#w鰏=&/ZYj4Ja4raE)* o[$@w"Uk 'R4Ɂ7;rB$8Ld~WH:=G=1Ȑy푿2ДŘ?F"zL# 6n]vp'v%FU9$NXEBk,({~9oFhl WI~,njKoWDwP/YۙRP6wٻw8d1ßB+V) 8zG`=66:H=pr m8Mz"xs]1.!QSS[Ǵm.\FGK_F.Th BDdwQL)j)zZ wPQ"nx]j.VUjS ΍x$IsQ;vp4G0 7ױ˝bD` @4>clN!XH6>P,l[Jr:-gەmX;AF,a]Ơ,+{g,oYN LCF1ј $$d6G3TpEx_Od(c ll#7 5yRh˂mZַsЍPk]>حc}VJ,DĮKOb{?fQĈuX̔%w.R#sM+H-U"7"܌w94Wz7irGUQ-{pۆ5F s"aѬaDCV%vhu^5)_A\y^$!Ɍ!=D~< 4nU T( gSja="EhkŵBi2fiJ;gs&ȁHJ#ۄy?b'|<=pv}0wݧz|R ᇮIPn?rP".J y2uͱAXsOjTH(B$=1bͧATDZ:55yxeh˒^=o9Z{ZO})ꢌ/7obgo+f`' W/<:b9a|[ofB@%#u񁍐Ђ/`}xb3w.B6EƝ;tq4QkS8ݢ3vo1/f}YfG<$zŒG3fyiKDG7g2RٺN/)3\H(&g#@/$SpD!22ϡe#WGߜ{m6Yׂ*WA2l[LL\Q3i83e^`,H*ȅ8GA-&Hte58%ˢF, )BJm0c6A"pE#Gᢘ9f:w;6,r<u8񍇠rf^?RMDG˟}3mrwwrvS^{>|xÇ,[?nit~nbRiMۅi O6=_ø-ӈ g5DI9 =U/23y7W\?ލ=̋XeAJTPb]1R{QZ9 ԆSB=7x/"QO2== EHB/F "׀ӦTbrApB s)!bTu!H-  =qa`U@8,GD1f#0+t,%l%VS>[J-Lv2kA57jC絫p+K F|wi ZDHnltauk'?)c.3z}fۮ{1QoST$0/x_K>R](iYV#p9tWg D;9wP Zg ΐ YZ_doel!wÕ>DP5Bψd*uiܮ @ϜХ"2G#ISJ 2)lZ]DqQ:q)hiG<|#AJB;jRT> MBoy }+}3ݳt4 :ZVmzy $͌Z+:>~ śæ-ar:ض''عxL;xT {9.5c: QK KRՐ(` ?` LuEbt]= OK/$}UͅH\+-*lü;B çmA5t .VA°e9ՃG0:rQN=u;nۇO\ٶ^~[w-őJ V98;qذhk%:_!g@;;7/??f6)e [e>cRlb֛«Fu"ƓEXSBk_x9bZE,}rј ᗠc'>;L1LDsZ-K8nꃝޯ:mڛ5v>B8"GB*mJ e9ATg|voXsAje5Mjai >_heth5@bT*;b )2` ^ JU{0?Л(1?T*pbv?G4R ~Z>jH& R I¡Rq=&Wdj,ǵ+a2Q8)1"eLTX}1A~<\n컡v:,+*JLJ# C#~^?zr߇o&w@'S~::lclʟ8wAx߻>SrgÇ[1  u)cmKz -4Aò|uW C1 πȆxf=t( 1%vT܁1kIsqtT:LBnRz^C&*z Hy8uq,iь83tJ+Hyvސ#c=<4^=$tT?2!$hF 2FG<<$Xxs4ȅ:x}zgi-dcN-559S%L2`d" xk\OJvW R"4G8gqxF r4][XO 0:H6uB67ǯ ||[ d!~Ʋ<>]nW$wUSOAx35G N[U[7Kߗ۹;=,v#f'it0 yajk #C<hs сYtgGU98}m l`10z )N[Vi)ls}!#qQ g;R@oYښ;ɐ c5H7y\@ݮZC z,p _>3k$?`PR5HZg9\ cS(=x.#`p }ɟWJ9\OT!Dc3ɳAЂHo?'Gd$ /T u(1Bq1Lƛw9|z:a܀VqT55=AIu;熺lĈP+?/y|9I:}Hm^뇬[| em|[w؁fLR8 ƨaxz XFM4az4 nY@'D,!m@>B{1eٿJX .J_;;tDh]_*\;uc`l{ptH3 MK?R=Б.ʸnд"dD4"H)Ð'wk0v67jq}a7 km9^[1C 6EnͥUUiUL+iw4EQ$';wI)Z)Z#eAar}DDi'ӚI^%\&GR)uDPUajJRjg^t,+}R~/ٶζo'ܐ} +ǪL@pX^8VNw,wg./;ܙJlw0rC(J@0zB%c1K׺R0Sg*Kalc%@$vBԒGh}] cΥBѠ(fV*<;otGAacEm_)ntr}CcZzEP>"F"/WqZN-I7V@N09N<>?1 8y_7AL3Z hc;rpkKDcIB>UОr\P*n:h0ez~B0U:W<Vh4J3 ZUM+?"KiNS§ξ:݉} >{ .<xhk8!X@28 %"yw ƈ~ @V09݅} 9%R/(D11"A3hxB;ɻ,,NLMv{&  8ut|,Ⱦ~ΛζbPΛikZlltZkg~WeMB`Mjܱ֣A[n:R!<D:gp8I,`ndku9cu߸^w.&!z\/1A~E/j[xC}oW8 kzFY|-˕r.H\Tq OWgJB[b>@'c s~<G3dKPzl=#3W-?\.{2aPȑ;{y $w STVyZ f *Jp/3 OM3/(暤ø^ BJ[l)z$RXe=M)O(Sxd@L`06_ wr'Oʺ.y8b1>XV|:fj2-qcY}|>Nf-CR0 os B!zYc!3K$Ÿ:7pI` prܹ`R(](=?@2*n2E,N|u\+׽E=}ZeavT ˀ3ec]W>\włtw¶GP)œU\?\wjU2< iASR m=S3"0D(Q+TN3ÇGNKQ9O>qD1[䋕Ҁma4 銡J#PRQt~] 2uɈѳ).坣|~L#zL"!ߍs񜍋9^9.'A?T)ʾ j-j]j'Y kKt+pU[я~s :4f|pRh.8wOXh CPuJ ml{gi 4F=؊0TYT2Fi9ѵUX.sG@;2CNEV\u93.ԶPhj!\W޿ϛ'1g-|sЋ|h爠#nJ5F,˲P%=BZkdőй:%sݢ! ́^:r"Qï``Dƈq0sb1R#TSv5_"/%D[ՅA?eb[E4cn(@) y/rDs(||tbHC0o#a٬3`Aj1LC4 $AiF<;D䮔@j UE6ƶN0Xb _R1nH=?^`\`rGp=hπg% c >K=/R\/Vv_ZJ!Դ 8ץxpݮV-x"hl-0:a:%1)xA6LZs&7H9D5Wf]__=Ɂ/O|h^뇩9#oB-IR46B&pn){m"BB#mVZHgs1F)m7QJMi)1n;vaYPa`Sc3ww(>D3pȩZCXJm\.ϔ: 8^C,,TT.gڲЖ%;') }ڂ'2z@EPFX0;G*OO©d  _2YZ-ZIbUUh-SJ9.Pư>9MDI4AsaTQH"8l_-F2 ~Zb4Z[ES$;,/_V337,۶7߰,+im]IK14?>OXq!=6۷^7zAKDNMŢPw0^>>by;YҜۺK1ZT:v>Fj, D@2n-kVs788mDˆtCџ/u!Q\(?vow<'udj es_V=^o \;~ZOTi4,RXr*+,<,Yμi']iivRys>D8ݲFXUPptf)=F Ci5=hY@1e+J$FmqF^#'C:$=.uN,uH YKAk=œt+xMO{q.yJBB֬?l94ӚcZ/'޾}Z;<}痿xE^,9۪rI߼}7߼3vr/7Nmp49ov~J̟=?1Xs9ZJ& -j)l.eY{j\81Pk w`M(;|Nqc;KP&Zmih)p1x\mYn,Tєk zI/C؟cpB=6sKOHRd-%/8$+9r UJr aO%FOdZ!5$Kp sq1CfKOW̱4Jrl g<[PoXKj !Tbǵx/ #;0v(4hd|_<+"M $- c?AOY k%p{_xr:rmd0GSpk/wn&e΁g/n s/>7"QBٲ+*o8ߡ3|z Ý}(N+J))3o#g1ԥ.R Kkꫯ5#$l?zE^Ps?&yc_{k"J#4!_gXOt?<mfi~_7o!wL5\ם*vK%vma1$BHy,ί/׆-Jp hjx *L;=f$}Z`9](J5w9ϏOvyO-UjD v \(C ֕R ޹_dYZiЎ\S8-XpLl8ޑ}PSp۷oy9T kk6%3wx<˚cC~3~1',b n$7W\2&phԒAN=B-c\.W cֽNwgL5{gA:SUR?jF۠Z.aK,v}:'<ǭn<]:OY#ʃ|YkAN9FhIjc’ZuἮȻg3Q86p{ah*PbG,Х!D< c{rLZb׽m ?̶QIDAK 59HXrDz|xyMG:pULBXKxU Oh R 86F)MK!F6$/]_;rT5g?2Ak ~_xF :f+ zonLĔy[ o<"Oxx2w&Ώq>TkKMa s{@}aJ߅Յ}nՄ ewJņ Zٶξn1#S/7ïA#ȁ; Wxmk+Zww> fZ믿κdrG$3ad?vt9 kF{ yAO`4=%esbRkM]O+OOhmܟ]жp.,RhˊOXȨTu=oۮPڂ{V郫u]qc2Hs®)^eam &vo[8^.0T+kaHiH7>R#G T;?{$I\}jȬ @o0|Y ) Y.(ftwUfD]fY]骙 mKEfz{=zN PFťq Wwplvq[\i`䘈CWY'N^ Ra=rX"Á*5DQmT:%@_.1qoy!.f6]0m[3."ƄlԎdUZ;?sP#ve=buaekt"1 %u2l}Zo^AMO :)vzr8$փ"BȨG *b&դlVgmsaA)@!a"NטhSrHkh/~S1G*t ѭXdYќ_rs&#ߌʞNj:/+^=κ[m_d | ~۟U{_>;|L;uog` ]LX^w{tB&!^Yagv5MnWyS$uZdp^X+FSN6#!(K] QHJڑXb"u2PHHl.!,DT:%gC?bemfR _N.;1Ota83cs4Q\ u+jĈ 10cI2_a,pRڰʼVDT'ao:[Xy)J"v+谣]:f9䔼-]ߋx~sGb k/ )N6xQ=A57'! Hv%E, =90<SP eRK5B fmK!YBom`@͏0!#h(5m21b&(F̙HҲ]zG` K9a:K)NbNZ#DL(Z*!GZoNu b T8<"ܢ="1h ΚV3nz7ѣKPUIAlZ0 rXjshZ?氳(CJK"bN6k=&C v#"TYRuNȔ&IȘ=9̙OXw{.nDɓyrɭnHLEiAB"e~ܲhjy1X&iV٧-v$,ִB2YJe6#':q{o*4M麗;Wrn!HqA>j; H %0]rɄ2wJm6ޝ}  u>8VǀC0"HAmJNۯ"+ra+yɜNZ)ؼ1g~R7]Y0 IzḎmcFc2Ďo6m@Zb2ſՒqtw?4b!nZ@Ame+Ĥ*Sl]GZ)Zn䕭l~΍WI1ºH!QOcHΘ:*7%5f5%<3u(^(r6!' L$ *ؿBg:;eH0> vc=}.5 IDAT|_F)"4c~ `9.x2nxx 7zn3 QH)SbHZ+Ѥ]S#)'j-G?u]yπU]GfT=UN9$e)e]4GZ*jֺ͒ Gs,B΋4je]F ʃ.El$&@ 鮓kkĴ#GZ u Z ! 1Bl!S[!aw|¯0}W?ْyb<9w yɖ88^T]7ev|;zTYa޽t:4 $>'ƈT/ [F#o2NvҼcf-_,t$nІ:I:Hs!4ֻD+'b UC 쯯{tOPD|&Z\U"Z Jl [UmFKfY88chyFd.C{`/\GQu%/ ݉:0QV]2{Y ='{p-cUsj,ks| EhK8AmeBjbw=]d@Uf *.pC9^;:x[&+²,Z|z>ŏ~p>n=XOYLt`37g)yV۶Yu/buX- &lbMFofM{~!K7mӄGoz8$@ءݕXC]?6 ^0F T$޶M{7Ġ ʞ x.!dOݮn3j9[Pv#84Ds[û 7QGdH:`X.VQgjf}qLBG ܫ{oAoq;!yl?>~'Wm#9c֛ʩͥ)7 6#ɘ4⎉}hfV0Ld}G;,XK1 f_547֌T@{:^/\.#ofE-3&)J1UénHLWo5d 7Rb5]%fTUߘSJ9_.估d;^7:%U9cJClZ!#AZ{=,ۑ!l~id"Ĕ- 9G. S~[DױQġ970py浠غ./ЃC86yYRh&ʒ0U45fEKŇ5o?ןjc&u^~/G|M_|oLA [5칓̬Ua߳COĔ(h&9|3V:?4G2 F07f 'O&IRL}Gi Fɦ\>wFw]b,h1{Cg A 84E%Xs&@PEkmz\/\J+keoyC[XZ([SGB`k%P}2pT# 1eZWId&%!̱]I2gG6ƣhM?Ĕ< XmcZmRDi'DZWKxs ؄8ໆ 3N=A'wN8g0oSvMr@ۓ<;VA,ɁWظE8<>j?guz-ze#Lq(es)`o+;)Rl Q;1u1#m Xa\{ͭ;v8>Z,ﭢWwr h-Ԯ\/6 x;&Ȁɚ5=1$v:oL04vo\2TP>@W=OڌQ c@ם9FE|CbH>r?^KZ7NIN= Pb4WHv=FlM¿'zb= OScgCŷ IԴ$6#Ք>b7Mbi<<0LnwQYsۯYRl>DR@0"5'o~vZŝkHWz7Bj'DN*W)NI* ",9SJڻ{HtrZP&$?Q gԛO'3Ґu1;)e/nziS Fx<8 0v:0xc>mϷ??'nOv7?D+IQIxkЇ*P{ $HC(J!pѶlJThΣH;97)!g}Lϕglj>H?'c b]'?dl V jnyA$Iq*Œ E "}<}kmB#މr6y]'OGj)J x2UZ^ ztl7-%hc+/ 6ױ, )lAvp~~u>ݦb_!L/=ڙZ}+ͦ'ƙ> S4TQ|luL8c$A4UL]2HQ5)%4$INXGSu+stѧ \&;ۘJI9L b&eQR\AhepEx߿9jS36ku|L= ‹H{+DHUB ,$+cl.nku;MU݈Șv84 q]MYsz'OL PBXh6z@VHAlBY#`>BB3~RVYF5Șy1 Ve1da.9Qzc]3jXItnCkڔR+njCpEZ BոP'|d3"7k%&sz}~ܜKI NЕ"!/f<[ŧf[)Rm k.[iՕ]IR<ĥ#lKc1ZnT!\XNG-#p|  7;==.!2;|%>O& =>Mwya ߾:d ;@AhVBĆff5B NPor)Fn8[OW4j)<\gZC7oR&!lO"!,'Zٚ p8Cl.8r>+kΎe\V{]EXZ N6TPĥBX">b~SM'ICp-T [sc~} !܎9: P VNw@{v:fǴDsa|cĔF4QiCFrNHnKU+r @HymI SIyʦߚ=?_ar{p{[-uu(@B[uoGj @EkZWvj]b~ALr>%p8XラNv2Vvzd-fJkNj. 6ki[Z7Vu,9ƞ1U[Ǵ q P Bmخu%H0E?БdR(ЈD\i@'/h6i Ҟ45 47 O9 1 ST8m#)]Z m&AJN%/H:5X>+>@LhLls~kzX^M3 [!|8v?Z+Z KbXyx8q޶{Xwm3 x//J@bB*mU5>H W;a.>bh)Ĭ^ks8jt}&W'$vRe{BќHt; ͽ;}^&Q1woy|x G nY`6?j fk) (q6j*V+#vJIypݮG+)/3mD1ӋRh1!F[?|_њؽVN.6bT DUB@S翸ԭ@?.l#ldC ܙR)\r?[dG譺}ݪ) 8e zkXK֣ 8P7]7hNV)-$u+ĘH6q|u!4*yܨiŎLpN‹TQujv=MЉ ?CḠiY2GsxK"Bʙ;!eJ(tpz0T+ShKɁ#R{x\YJ+w';YMBD,4%vӖX- Jh07l%hT IXl}>.uZ!?ͨHRFNz9vÉu]x !x|| lC0j3Ѥ,e0]itA|Bb&RՌpJ&ZT[ۼ쫛 T!BkʶUfhZ;lsC6;)e&Vn# €MQ$:O)K(6bhS7A,90i12ʺdCLkk PȑvH,#dsC)7oy'lLIv@kL WBX͂zU1'_IaFW*BK"`A[ Cpc!ՍV6jFVsz=' )Q;#l#˲B5VXs:8?=ӑm>HٌZt: 0BR0&XD!H&V,K&ƅ|"bq㧱mu>C B4rt`cSE<9'/!5ဩHj7"x Dld]Xͬ]A0I`=Xk@^qs3lBUbzG?,=AX(0|N\5ѭɦq@&PCuCpwu@= Dg`0i L^$2>BfB9FZly@ct%;s>(}pK$ҒI)/ްmWvc ŮO$HdMG֓!RVji X\Kn\ЈIjofʚъ1jh R@p@G/Aj-'v' c 10͕|RüFb0["9HHm%ZJG#Z02z@0.g2zp;1#/-1ǙeoIZ7@?}C$ z1'DJ Vj:V }A%&[ 0b}B{0nu Znվ's_\3"bH] mIT6_/"ZVlvZ0c'u15Cni'@l OOOylDiP*1g$ R&tW",61*$dzSJWe]N_ѿ_՞įG!Do9cL<hYaY0B"ʥ\)QfFB)q̉rr>9:-'(׍|8yɜ)vC?` }n0G Uz$<>cEl"d܂O1+uRļPZ*a!@Dȑ7@Ǣzd`^;C|9)+$U֧H0^fr0 !JID8)qəDfn06/@Z`)P5^LJe"rܾKW_Gz|gUkZ5HYB@%$zkzS^=pyzg#ShgTDkDX8پZ9n ԿyUπ1'VMCAuϹ^ ?^\g=RUu5cmw߼ DYuI PWBJ> KRX#ީ>rHdKvRr]y*+\51ͪbxZnFqM σ8w" E)cd]WR62EBHa{l6慴ȇC$Zr+ܼvvѦ ;{)Xrk Q0Mk^~!s=Yd#t H$k\|}@Znܧ1x_٦ і$OayHJI1л& DpO8?s81p:M;9Fbhq @fFT{i1,J\V_ ZrYR3Ҍo \BP0]EZ!N}8%\q6nây0@_w1 +%RpDkH&ߜm @:=rw ~L}'M^+b_[9 [Dx78 |" ^ jlȳN]ymY`q9𶑏~I ]1 QuWȏj ,X7d%q9\d"A̕ҎtWL)'d-Z\7z\?x c}lR$, DSخ6r6Е~^[x>GDgſ9(:{|1Z<ۛ޹! wEn*1pN#;*@l|,$D F퍶]l0&Utp9]8 y/1pfx{ps)wL65Zf?1OOO/W.% AH0QhrnaYxx8:u3jC|* jjc'!5~2I IDATx?>>BoXCzErĢY/{fFfY>Qw؏YglrV=hvkd֑xzº\bě*OπsZ/je^ٶB 3B)&. 1D+*BulfC\j3G@\m42`n<_T"1\QPTgL1DZtmM7!dRfZRShbP9&r6D"aF3>(^| C{G wp"7_=no`z9_Y`Dg$?$k+[ n ˒YN_Ro׫ьHoyi8G0ӐFcvI:B JrBKReYj-SȤ|L $x^R:El bDqhM]N:9D"NtHGRZڄD/)!) lDjBP_~Cuj[=Vv8$ Q%,-tmh3f,a"Oޚy\8`1Z2:DbV1!p>>>Zp8ZKV+KJ,d^8.1>bT=ASA$x_;lXޜXTS]Ԓ\(D;Z#-9r~z28@U;,%4oZDjOa+)b9Ġ,)Rj\ e]ͯ6%cJ \W+J&,mk-Wȉz '7OyCFQJn1C;Q@ p;[m,DŽX=!PGm4|\x@ꍔWLقWW\ P8w$L؇q$6 R࢝{#wX5CTn[)Y{9_X`B^:?e5uJ3]Zhuc]2)&jF,$ {f!V<:ztք8\oRxݧa XG_ԘTISX\-Q31ՆHG?!?<)5#t2; o4hDƕr![ I0>6$?PѸoNv#igFO0$v$8 y9ROoOo)v9S%d>uB+>I fClm DЙH{tVA& b~$jz 2ףkϥ1܂S.b1Q!8a>LY/K^Đ8U\) zuJ^qF&IҰֶ>|,ybal+1 aSUjbl|S_ׅfD^W$eT͛W|?.N 7Uh#ÿaN_>hG%P( 笓0nݵ Ɯ|oDLHZ'DAy`䱑 $dI'8=p9?Ѿ~=@/Wv;l6J@9hvеY-1l#WcS 3sz>7J@;p5j7__W3R돇 ˛`k$lYЍ 17ϓ;6 Nv0AZ O9>1ҡe $DZ)1ELdl&ܺy ,BZ_q/'eRS:VLmbfsT$AtQ|o^&_=G᷈"|: ޳QۼUŽwZ)ޑ!#*1.`L^Mc2+W5g4e噺]m JJj#m Q ֺ}T"Eۘ P ^f>v̭yɇr\Q2d΁̱m+s((ᭃ:ͱO6k"TI vEb2}(u%{F7`n}&"[3 c`]!-&״ym<2HoW_W`--&  c0>Ύَ %o(Xu^`H]MU\)OI 1+ĎN;7a BBlg;Tr|Z#Fhݶx3Hrֹں]͞S48ͼJj:%k*qxtV,1Q8I1X&dV̦d J6& Ϡ\(B+1?3!!Cb)'BD;*)GҒYRpX)c\X Ps28z'?Kß1K$_֦׸'I< #1PM) [aa& -=~᷌Ec}s ʨ vܐ!B%dҲ֕^ c?X\\V;z)RYI!|5A j?#6@Qf̰FA¸C4ޫ;^;"u ,#]T+ ڡoDF G~ܞL`(ۧq"1N#S66` Xi$bNATb-G4U"ly? #' sFԈ6d'}Qh;lp= :s{_H*?}r᷉{pO?M>Q`3y@'PZвݤHCH6b7X@O_")"&< ]޹a@Q# z5#;štM"S@Pn"Y\#qTTSk͌+Sd(NwDhC؏Ukle3fvN#1ebn4~h/CZ&!Fa1&%,A$ KNt%TBL6ݰ$Zl=b=>sH,A5zz#xӪsɀ Mik{[ F]ϻǯϲ {{;E<:U^Ka]fl:WzlP3!m&Lı1ֱyE|yxc~[g@Kr5)$jZhj1j@ zJ*c?wm9%:F h\Rs&G@ D D3*{EJp9)=,ň(kM (!kUb&vx}YNĘHȕ1- zBDb4D?1?uX?qj@WTUK.tnnzbBkdˁ>j3Wzovn}n;z;=A?ZH8_o7جA{lMR&兴#u@9BJ4"ZyT!qzGzW_~ŻrxBĴDZ`$ک O.!Eho>Loy71 ێFs8z7]{1!)WHnܜFSVȎY1ÎxIi!LDG%RNF .嘨6*GQX8>(W|C75EmWؚT[mԲju_w`G*{?!˼÷P] qGI2ٳ}š 1:@`f O (n+C$з3,Y1HRJ\|)D`fphX2pG__+_h+9q<+. DN j)Hi@f.UK<̪6$v9!DS6hJ`Pּ/Hk;0 ''qn8 cQ$ĕ@|aY>qi3Pd@׽kҬd@:1!7~O/ۯ?/^XHgk5ds!ߋ5BК A9(0P1hms<1`ɋxT ڕ7DRνYwO| ws? "&t.aN74Wb>|cH&%L4@w^G띜{G1PÁtpz7[)|L,Bb[q U9曰Ԑ`Ib,fdÇi]/B'6.ֳ)e]e%WB;R\/<==y"K Qt:fɺh*{Tj1g'"BoHksrV@ХQ;'$RdZ),+k޼x$G*֣7Ŕ $~NP94ڵP"])[n lͤ׍m iGH2d'xz[`UWr$)_l1V?ۏy@TqO' ?D Av[ Y>e7S*'fwF3[0e@զSa9 &+Q;sY"@Zޛ~8H>3˲0X#l@3VFNu=R{|yR+Umw ՊE7:&0M7K`Qbu%&\RthA-V+R\S5R# Oî 0:@xhExZ@=W}s=iys/Z)Y[l!F2heǜR@~ փƱ0[1g0_pe""`ub+|Vo. -y{d_},D<H]7wI4z8KEB1ED!g vA1y US BV`W*0 XP护qQŔ P,$%U!|X(^CC2bߣR;&+ie%40R[t3"nS-B uQx}fpb1& Մ 1t]n,#q(E (8!D PGV!'\0Vuvߴ9V{ KulY JvZ#b ½KY ֩ /cAZj^aجU`N;(iFx,D rKeė r? U&gXM(܏o¨/ w  5$P@M` z7ח">u݁|u0O׺be20b"a]#b)Kbos-!.6]DiP nm ?X1@ g̮Hfz8onnE _MhIEQBϭg[,'h̓!qi~NkM^LYE&AAy R@DgWhs}x4 ܪ) P {I A¢Ȁ*0TO@p+LX|&S:kV_ d Ri&>ˇ) kAЊ ;Ί I )RDzH!y4snQH)`'lynVx/S}%/C /sXs_i@eVQ[jX1 @\ uВ!Pt}Fk亅-()&2DJ D[5B"FԩhRQK*c// C2bc4]URnZnj)VpVu$a`sqn k4̱<,EmKu@xe(G+&?Ryo# AV3Ej63w4q 5UQ&LjM6wJUH@BE!4qPRLU7l-ȹQ1Eh>g(RfͣQLp*'g++9e'TFݧ]{n^,I)u6..>Z(%/B@Ί ;m!z?|BN]@'.h] `M(3wOgKRg@ˊZAo;K̔oxMCHZfV%0WXD5HDEB)gH!owiT P eBjRlc]"IE ԊU`V`ǩֽE( [`Qu^;7PL]7օUD/_İ٠l0+:D zpQ @?ևV)N7‘[4N?1nwF$D$7kU D7^Z=fh\[.[ցH,,iQ k>xɴLy1P2 H]UhY _1]ߠ&0BCT*\Aw!BQ cb-uBU)uk{ s(R%FxH\r3ϥaV)!}$4Fׯ z k%X4rQoӈszP ' o>DVF[!*RC@ 20y|ujF]6Yã[6,V/,س8fk_ٍҢT=7V?F? J@BQ+SՌ29pPTIDj ^ 17טJX\l0 㔱nx)7wb0OXO݈ѯFXZijV.. ֛ LHZ+k] P<'w|J(+0BХ n{ Պi% ZQTۼ3Mϵfs!VOZ猀 9?)Z!#IȲ_! V"X;i1mm~I.KZK8NHCZ7\`ݢb Tuv X Tz?]$*&P !ńQUnnR+ZBD\o 8a^jǵaq[Ɖs(x. 7Vs J^xaz.DH7;HC:MZ 1bW2nv;K\vRJrF4a&U oTk$"Ol9E|HGaXk:uS,STu^ͩ_EES?U[Z_@ !\=10 ?~|+|&?>p%UrfJ -}J>zYnjkg橛#E`B*TF`eߜb h]$Ufp߾??>RJR…>h!uh .,bkUDTٷG6O?e`x,<2[Oy"ʆ76b:k(y=-gY,,;YAf|'<YP3/G03jy*SAq C=BMH2hXl`5*T5k<'TΟOQx>'Uﯮ1=|se!im! i[w0]%>8q,B?ýB[A ;VẈQد[ & b@bXN^H51xrDZ;>y/^|s1{[y|ThAP㠾!ǥ#y,k$kp<P | xQBC xZXXB' |0 !oǟ)!@b%o>&^DžËRp|P B!|BsqCILeÍ|8|(> ! Ǒ'7!p\P |BxB Ǎ';!pP |bxB~lj !B@r  ~IDATAr `@dBҠ@ @?YB@A{r9  B>1(I8huNNA@!^>(O Bǃ5Ap0!< `8uL y\y%<2?xݒB@B^S@ O!ST(/'[yA !0 -DU}uH pp"G p"uG "p"F^ bp"G5h:#/yQ8xr"/ ɋ4HB Ђ@^ j:kA@^nWJ- P Wymཊ^7a y@^@a@ Zț1͑yK(țA o ] ,ˁ€ #O rvp$/g0wO YB,Psrp$9C 9{hM  8@ yWК@+A yp% ^{n5;=C@= ܠ0 ȇddp;G;$ZȇVPP(ׂ€|T(ȇB)`Ngi5*3A@> PP( "r)}€|f(ȧBBa@!3Ib|?_}y/P rZ>{Px}k1xj!C@x EB!V!'BpE>wE!!y@Q@A@3CP2P P, և@ȇW:á @ 䍠`8 =%H>``Bg*R򂜚4߳p 85GϏdqs=x!/}9BތyX?a#-[;'~ⶽ!Bn& ,n,ݶrxA `[F@!g)[6A<%H8h`yPD!rc9Hx RX@H Br}VcEppA^M o,V+B1s賓08eE8UaFeqb+TqH0 B~α0`h)e]kUxl&T2`)khA BNs=pWpL$ ,Sx~=2(S1$B!o hapcˀĥH B!0N˺1 Cc؞Z!r_} ONqGvX;,tJBC96D@œ 7@ B~Ρ[{] ?C5J`!tNYO=v{+)7X ? B9;pw- nO!s'S- H8u!B!4MY 8);"y)@q@!SO#>FO qB!OgxDd0P_zB!  .! 8!B?O!BgB!w@ B?4/OIENDB`glymur-0.9.1/docs/source/how_do_i.rst000066400000000000000000000671241360775562100176370ustar00rootroot00000000000000############ How do I...? ############ **************** ... read images? **************** Jp2k implements slicing via the :py:meth:`__getitem__` method and hooks it into the multiple resolution property of JPEG 2000 imagery. This allows you to retrieve multiresolution imagery via array-style slicing, i.e. strides. For example, here's how to retrieve a full resolution and first lower-resolution image :: >>> import glymur >>> jp2file = glymur.data.nemo() # just a path to a JPEG2000 file >>> jp2 = glymur.Jp2k(jp2file) >>> fullres = jp2[:] >>> fullres.shape (1456, 2592, 3) >>> thumbnail = jp2[::2, ::2] >>> thumbnail.shape (728, 1296, 3) ********************************************************* ... make use of OpenJPEG's thread support to read images? ********************************************************* If you have glymur 0.8.13 or higher and OpenJPEG 2.2.0 or higher, you can make use of OpenJPEG's thread support to speed-up read operations. :: >>> import glymur >>> import time >>> jp2file = glymur.data.nemo() >>> jp2 = glymur.Jp2k(jp2file) >>> t0 = time.time(); data = jp2[:]; t1 = time.time() >>> t1 - t0 0.9024193286895752 >>> glymur.set_option('lib.num_threads', 2) >>> t0 = time.time(); data = jp2[:]; t1 = time.time() >>> t1 - t0 0.4060473537445068 ***************** ... write images? ***************** It's pretty simple, just supply the image data as a keyword argument to the Jp2k constructor:: >>> import glymur, numpy as np >>> jp2 = glymur.Jp2k('zeros.jp2', data=np.zeros((640, 480), dtype=np.uint8)) or:: >>> jp2 = glymur.Jp2k('zeros.jp2') >>> data=np.zeros((640, 480), dtype=np.uint8) >>> jp2[:] = data ************************************************************************ ... write images with different compression ratios for different layers? ************************************************************************ Different compression factors may be specified with the cratios parameter :: >>> import skimage.data, glymur >>> data = skimage.data.camera() >>> # quality layer 1: compress 20x >>> # quality layer 2: compress 10x >>> # quality layer 3: compress lossless >>> jp2 = glymur.Jp2k('myfile.jp2', data=data, cratios=[20, 10, 1]) >>> # read the lossless layer >>> jp2.layer = 2 >>> data = jp2[:] ************************************************************************* ... write images with different PSNR (or "quality") for different layers? ************************************************************************* Different PSNR values may be specified with the psnr parameter. Please read https://en.wikipedia.org/wiki/Peak_signal-to-noise_ratio for a basic understanding of PSNR. Values must be increasing, but the last value may be 0 to indicate the layer is lossless. However, the OpenJPEG library will reorder the layers to make the first layer lossless, not the last. :: >>> import skimage.data, skimage.measure, glymur >>> truth = skimage.data.camera() >>> jp2 = glymur.Jp2k('myfile.jp2', data=truth, psnr=[30, 40, 50, 0]) >>> psnr = [] >>> for layer in range(4): ... jp2.layer = layer ... psnr.append(skimage.measure.compare_psnr(truth, jp2[:])) >>> print(psnr) [inf, 29.028560403833303, 39.206919416670402, 47.593129828702246] ********************* ... display metadata? ********************* There are two ways. From the command line, the console script **jp2dump** is available. :: $ jp2dump /path/to/glymur/installation/data/nemo.jp2 From within Python, the same result is obtained simply by printing the Jp2k object, i.e. :: >>> import glymur >>> jp2file = glymur.data.nemo() # just a path to a JP2 file >>> jp2 = glymur.Jp2k(jp2file) >>> print(jp2) File: nemo.jp2 JPEG 2000 Signature Box (jP ) @ (0, 12) Signature: 0d0a870a File Type Box (ftyp) @ (12, 20) Brand: jp2 Compatibility: ['jp2 '] JP2 Header Box (jp2h) @ (32, 45) Image Header Box (ihdr) @ (40, 22) Size: [1456 2592 3] Bitdepth: 8 Signed: False Compression: wavelet Colorspace Unknown: False Colour Specification Box (colr) @ (62, 15) Method: enumerated colorspace Precedence: 0 Colorspace: sRGB UUID Box (uuid) @ (77, 3146) UUID: be7acfcb-97a9-42e8-9c71-999491e3afac (XMP) UUID Data: Google 2013-02-09T14:47:53 1 72/1 72/1 2 HTC HTC Glacier 2592 1456 8 8 8 2 3 1343036288/4294967295 1413044224/4294967295 2748779008/4294967295 1417339264/4294967295 1288490240/4294967295 2576980480/4294967295 644245120/4294967295 257698032/4294967295 1 2528 1424 353/100 0 0/1 WGS-84 2013-02-09T14:47:53 76 0220 0100 1 2 3 0 42,20.56N 71,5.29W 2013-02-09T19:47:53Z NETWORK 2013-02-09T14:47:53 Glymur Python XMP Toolkit Contiguous Codestream Box (jp2c) @ (3223, 1132296) Main header: SOC marker segment @ (3231, 0) SIZ marker segment @ (3233, 47) Profile: 2 Reference Grid Height, Width: (1456 x 2592) Vertical, Horizontal Reference Grid Offset: (0 x 0) Reference Tile Height, Width: (1456 x 2592) Vertical, Horizontal Reference Tile Offset: (0 x 0) Bitdepth: (8, 8, 8) Signed: (False, False, False) Vertical, Horizontal Subsampling: ((1, 1), (1, 1), (1, 1)) COD marker segment @ (3282, 12) Coding style: Entropy coder, without partitions SOP marker segments: False EPH marker segments: False Coding style parameters: Progression order: LRCP Number of layers: 2 Multiple component transformation usage: reversible Number of resolutions: 2 Code block height, width: (64 x 64) Wavelet transform: 5-3 reversible Precinct size: default, 2^15 x 2^15 Code block context: Selective arithmetic coding bypass: False Reset context probabilities on coding pass boundaries: False Termination on each coding pass: False Vertically stripe causal context: False Predictable termination: False Segmentation symbols: False QCD marker segment @ (3296, 7) Quantization style: no quantization, 2 guard bits Step size: [(0, 8), (0, 9), (0, 9), (0, 10)] CME marker segment @ (3305, 37) "Created by OpenJPEG version 2.0.0" That's fairly overwhelming, and perhaps lost in the flood of information is the fact that the codestream metadata is limited to just what's in the main codestream header. You can suppress the codestream and XML details by making use of the :py:meth:`set_option` function:: >>> glymur.set_option('print.codestream', False) >>> glymur.set_option('print.xml', False) >>> print(jp2) File: nemo.jp2 JPEG 2000 Signature Box (jP ) @ (0, 12) Signature: 0d0a870a File Type Box (ftyp) @ (12, 20) Brand: jp2 Compatibility: ['jp2 '] JP2 Header Box (jp2h) @ (32, 45) Image Header Box (ihdr) @ (40, 22) Size: [1456 2592 3] Bitdepth: 8 Signed: False Compression: wavelet Colorspace Unknown: False Colour Specification Box (colr) @ (62, 15) Method: enumerated colorspace Precedence: 0 Colorspace: sRGB UUID Box (uuid) @ (77, 3146) UUID: be7acfcb-97a9-42e8-9c71-999491e3afac (XMP) Contiguous Codestream Box (jp2c) @ (3223, 1132296) It is possible to easily print the codestream header details as well, i.e. :: >>> print(j.codestream) # details not show ********************* ... add XML metadata? ********************* You can append any number of XML boxes to a JP2 file (not to a raw codestream). Consider the following XML file `data.xml` : :: Boston 24.9 inches Portland 31.9 inches New York City 11.4 inches The :py:meth:`append` method can add an XML box as shown below:: >>> import shutil >>> import glymur >>> shutil.copyfile(glymur.data.nemo(), 'myfile.jp2') >>> jp2 = glymur.Jp2k('myfile.jp2') >>> xmlbox = glymur.jp2box.XMLBox(filename='data.xml') >>> jp2.append(xmlbox) >>> print(jp2) ******************************************* ... add metadata in a more general fashion? ******************************************* An existing raw codestream (or JP2 file) can be wrapped (re-wrapped) in a user-defined set of JP2 boxes. To get just a minimal JP2 jacket on the codestream provided by `goodstuff.j2k` (a file consisting of a raw codestream), you can use the :py:meth:`wrap` method with no box argument: :: >>> import glymur >>> glymur.set_option('print.codestream', False) >>> jp2file = glymur.data.goodstuff() >>> j2k = glymur.Jp2k(jp2file) >>> jp2 = j2k.wrap("newfile.jp2") >>> print(jp2) File: newfile.jp2 JPEG 2000 Signature Box (jP ) @ (0, 12) Signature: 0d0a870a File Type Box (ftyp) @ (12, 20) Brand: jp2 Compatibility: ['jp2 '] JP2 Header Box (jp2h) @ (32, 45) Image Header Box (ihdr) @ (40, 22) Size: [800 480 3] Bitdepth: 8 Signed: False Compression: wavelet Colorspace Unknown: False Colour Specification Box (colr) @ (62, 15) Method: enumerated colorspace Precedence: 0 Colorspace: sRGB Contiguous Codestream Box (jp2c) @ (77, 115228) The raw codestream was wrapped in a JP2 jacket with four boxes in the outer layer (the signature, file type, JP2 header, and contiguous codestream), with two additional boxes (image header and color specification) contained in the JP2 header superbox. XML boxes are not in the minimal set of box requirements for the JP2 format, so in order to add an XML box into the mix before the codestream box, we'll need to re-specify all of the boxes. If you already have a JP2 jacket in place, you can just reuse that, though. Take the following example content in an XML file `favorites.xml` : :: Light Ale In order to add the XML after the JP2 header box, but before the codestream box, the following will work. :: >>> boxes = jp2.box # The box attribute is the list of JP2 boxes >>> xmlbox = glymur.jp2box.XMLBox(filename='favorites.xml') >>> boxes.insert(3, xmlbox) >>> jp2_xml = jp2.wrap("newfile_with_xml.jp2", boxes=boxes) >>> print(jp2_xml) File: newfile_with_xml.jp2 JPEG 2000 Signature Box (jP ) @ (0, 12) Signature: 0d0a870a File Type Box (ftyp) @ (12, 20) Brand: jp2 Compatibility: ['jp2 '] JP2 Header Box (jp2h) @ (32, 45) Image Header Box (ihdr) @ (40, 22) Size: [800 480 3] Bitdepth: 8 Signed: False Compression: wavelet Colorspace Unknown: False Colour Specification Box (colr) @ (62, 15) Method: enumerated colorspace Precedence: 0 Colorspace: sRGB XML Box (xml ) @ (77, 76) Light Ale Contiguous Codestream Box (jp2c) @ (153, 115236) As to the question of which method you should use, :py:meth:`append` or :py:meth:`wrap`, to add metadata, you should keep in mind that :py:meth:`wrap` produces a new JP2 file, while :py:meth:`append` modifies an existing file and is currently limited to XML and UUID boxes. *************************** ... work with ICC profiles? *************************** A detailed answer is beyond my capabilities. What I can tell you is how to gain access to ICC profiles that JPEG 2000 images may or may not provide for you. If there is an ICC profile, it will be provided in a ColourSpecification box, but only if the :py:attr:`colorspace` attribute is None. Here is an example of how you can access an ICC profile in an `example JPX file `_. Basically what is done is that the raw bytes corresponding to the ICC profile are wrapped in a BytesIO object, which is fed to the most-excellent Pillow package. :: >>> from glymur import Jp2k >>> from PIL import ImageCms >>> from io import BytesIO >>> # This next step produces a harmless warning that has nothing to do with ICC profiles. >>> j = Jp2k('text_GBR.jp2') >>> # The 2nd sub box of the 4th box is a ColourSpecification box. >>> print(j.box[3].box[1].colorspace) None >>> b = BytesIO(j.box[3].box[1].icc_profile) >>> icc = ImageCms.ImageCmsProfile(b) To go any further with this, you will want to consult `the Pillow documentation `_. **************************************** ... create an image with an alpha layer? **************************************** OpenJPEG can create JP2 files with more than 3 components (use version 2.1.0+ for this), but by default, any extra components are not described as such. In order to do so, we need to re-wrap such an image in a set of boxes that includes a channel definition box. The following example creates an ellipical mask. :: >>> import numpy as np >>> import glymur >>> from glymur import Jp2k >>> rgb = Jp2k(glymur.data.goodstuff())[:] >>> ny, nx = rgb.shape[:2] >>> Y, X = np.ogrid[:ny, :nx] >>> mask = nx ** 2 * (Y - ny / 2) ** 2 + ny ** 2 * (X - nx / 2) ** 2 > (nx * ny / 2)**2 >>> alpha = 255 * np.ones((ny, nx, 1), dtype=np.uint8) >>> alpha[mask] = 0 >>> rgba = np.concatenate((rgb, alpha), axis=2) >>> jp2 = Jp2k('myfile.jp2', data=rgba) Next we need to specify what types of channels we have. The first three channels are color channels, but we identify the fourth as an alpha channel:: >>> from glymur.core import COLOR, OPACITY >>> ctype = [COLOR, COLOR, COLOR, OPACITY] And finally we have to specify just exactly how each channel is to be interpreted. The color channels are straightforward, they correspond to R-G-B, but the alpha (or opacity) channel in this case is to be applied against the entire image (it is possible to apply an alpha channel to a single color channel, but we aren't doing that). :: >>> from glymur.core import RED, GREEN, BLUE, WHOLE_IMAGE >>> asoc = [RED, GREEN, BLUE, WHOLE_IMAGE] >>> cdef = glymur.jp2box.ChannelDefinitionBox(ctype, asoc) >>> print(cdef) Channel Definition Box (cdef) @ (0, 0) Channel 0 (color) ==> (1) Channel 1 (color) ==> (2) Channel 2 (color) ==> (3) Channel 3 (opacity) ==> (whole image) It's easiest to take the existing jp2 jacket and just add the channel definition box in the appropriate spot. The channel definition box **must** go into the jp2 header box, and then we can rewrap the image. :: >>> boxes = jp2.box # The box attribute is the list of JP2 boxes >>> boxes[2].box.append(cdef) >>> jp2_rgba = jp2.wrap("goodstuff_rgba.jp2", boxes=boxes) Here's how the Preview application on the mac shows the RGBA image. .. image:: goodstuff_alpha.png ************************ ... work with XMP UUIDs? ************************ `Wikipedia `_ states that "The Extensible Metadata Platform (XMP) is an ISO standard, originally created by Adobe Systems Inc., for the creation, processing and interchange of standardized and custom metadata for all kinds of resources." The example JP2 file shipped with glymur has an XMP UUID. :: >>> import glymur >>> j = glymur.Jp2k(glymur.data.nemo()) >>> print(j.box[3]) # formatting added to the XML below Google 2013-02-09T14:47:53 . . . Since the UUID data in this case is returned as an lxml ElementTree instance, one can use lxml to access the data. For example, to extract the **CreatorTool** attribute value, one could do the following >>> xmp = j.box[3].data >>> rdf = '{http://www.w3.org/1999/02/22-rdf-syntax-ns#}' >>> ns2 = '{http://ns.adobe.com/xap/1.0/}' >>> name = '{0}RDF/{0}Description/{1}CreatorTool'.format(rdf, ns2) >>> elt = xmp.find(name) >>> elt >>> elt.text 'Google' But that would be painful. A better solution is to install the Python XMP Toolkit (make sure it is at least version 2.0):: >>> from libxmp import XMPMeta >>> from libxmp.consts import XMP_NS_XMP as NS_XAP >>> meta = XMPMeta() >>> meta.parse_from_str(j.box[3].raw_data.decode('utf-8')) >>> meta.get_property(NS_XAP, 'CreatorTool') 'Google' Where the Python XMP Toolkit can really shine, though, is when you are converting an image from another format such as TIFF or JPEG into JPEG 2000. For example, if you were to be converting the TIFF image found at http://photojournal.jpl.nasa.gov/tiff/PIA17145.tif info JPEG 2000:: >>> import skimage.io >>> image = skimage.io.imread('PIA17145.tif') >>> from glymur import Jp2k >>> jp2 = Jp2k('PIA17145.jp2', data=image) Next you can extract the XMP metadata. >>> from libxmp import XMPFiles >>> xf = XMPFiles() >>> xf.open_file('PIA17145.tif') >>> xmp = xf.get_xmp() >>> print(xmp) 1016 1016 8 1 1 1 1 2 converted PNM file If you are familiar with TIFF, you can verify that there's no XMP tag in the TIFF file, but the Python XMP Toolkit takes advantage of the TIFF header structure to populate an XMP packet for you. If you were working with a JPEG file with Exif metadata, that information would be included in the XMP packet as well. Now you can append the XMP packet in a UUIDBox. In order to do this, though, you have to know the UUID that signifies XMP data.:: >>> import uuid >>> xmp_uuid = uuid.UUID('be7acfcb-97a9-42e8-9c71-999491e3afac') >>> box = glymur.jp2box.UUIDBox(xmp_uuid, str(xmp).encode()) >>> jp2.append(box) >>> print(jp2.box[-1]) UUID Box (uuid) @ (592316, 1053) UUID: be7acfcb-97a9-42e8-9c71-999491e3afac (XMP) UUID Data: 1016 1016 8 1 1 1 1 2 converted PNM file You can also build up XMP metadata from scratch. For instance, if we try to wrap `goodstuff.j2k` again:: >>> import glymur >>> j2kfile = glymur.data.goodstuff() >>> j2k = glymur.Jp2k(j2kfile) >>> jp2 = j2k.wrap("goodstuff.jp2") Now build up the metadata piece-by-piece. It would help to have the XMP standard close at hand:: >>> from libxmp import XMPMeta >>> from libxmp.consts import XMP_NS_TIFF as NS_TIFF >>> from libxmp.consts import XMP_NS_DC as NS_DC >>> xmp = XMPMeta() >>> ihdr = jp2.box[2].box[0] >>> xmp.set_property(NS_TIFF, "ImageWidth", str(ihdr.width)) >>> xmp.set_property(NS_TIFF, "ImageHeight", str(ihdr.height)) >>> xmp.set_property(NS_TIFF, "BitsPerSample", '3') >>> xmp.set_property(NS_DC, "Title", u'Stürm und Drang') >>> xmp.set_property(NS_DC, "Creator", 'Glymur') We can then append the XMP in a UUID box just as before:: >>> import uuid >>> xmp_uuid = uuid.UUID('be7acfcb-97a9-42e8-9c71-999491e3afac') >>> box = glymur.jp2box.UUIDBox(xmp_uuid, str(xmp).encode()) >>> jp2.append(box) >>> glymur.set_option('print.codestream', False) >>> print(jp2) File: goodstuff.jp2 JPEG 2000 Signature Box (jP ) @ (0, 12) Signature: 0d0a870a File Type Box (ftyp) @ (12, 20) Brand: jp2 Compatibility: ['jp2 '] JP2 Header Box (jp2h) @ (32, 45) Image Header Box (ihdr) @ (40, 22) Size: [800 480 3] Bitdepth: 8 Signed: False Compression: wavelet Colorspace Unknown: False Colour Specification Box (colr) @ (62, 15) Method: enumerated colorspace Precedence: 0 Colorspace: sRGB Contiguous Codestream Box (jp2c) @ (77, 115228) UUID Box (uuid) @ (115305, 671) UUID: be7acfcb-97a9-42e8-9c71-999491e3afac (XMP) UUID Data: 480 800 3 Stürm und Drang Glymur glymur-0.9.1/docs/source/index.rst000066400000000000000000000010571360775562100171500ustar00rootroot00000000000000.. glymur documentation master file, created by sphinx-quickstart on Thu Jan 24 16:44:44 2013. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. ================================== Welcome to glymur's documentation! ================================== Contents: .. toctree:: :maxdepth: 2 introduction detailed_installation how_do_i whatsnew/index roadmap ****************** Indices and tables ****************** * :ref:`genindex` * :ref:`modindex` * :ref:`search` glymur-0.9.1/docs/source/introduction.rst000066400000000000000000000021621360775562100205600ustar00rootroot00000000000000######################################## Glymur: a Python interface for JPEG 2000 ######################################## **Glymur** is an interface to the OpenJPEG library which allows one to read and write JPEG 2000 files from Python. Glymur supports both reading and writing of JPEG 2000 images, but writing JPEG 2000 images is currently limited to images that can fit in memory. In regards to metadata, most JP2 boxes are properly interpreted. Certain optional JP2 boxes can also be written, including XML boxes and XMP UUIDs. There is incomplete support for reading JPX metadata. Glymur will look to use **lxml** when processing boxes with XML content, but can fall back upon the standard library's **ElementTree** if **lxml** is not available. The current version of glymur works on Python versions 3.6, 3.7, and 3.8. For more information about OpenJPEG, please consult http://www.openjpeg.org. ******************* Glymur Installation ******************* The easiest way to install Glymur is via Anaconda using conda-forge :: $ conda create -n testglymur -c conda-forge python glymur $ conda activate testglymur glymur-0.9.1/docs/source/roadmap.rst000066400000000000000000000007401360775562100174620ustar00rootroot00000000000000############ Known Issues ############ * Creating a Jp2 file with the irreversible option does not work on windows. * Eval-ing a :py:meth:`repr` string does not work on windows. ####### Roadmap ####### * Glymur version 0.9.0 drops support for Python 2.7 and OpenJPEG 1.5. * Glymur version 0.8.12 marks the transition of 0.8.x into an LTS series, i.e. bug fixes only. * Version 0.8.12 will drop support for Python 3.3, but keep support for Python 2.7. glymur-0.9.1/docs/source/whatsnew/000077500000000000000000000000001360775562100171445ustar00rootroot00000000000000glymur-0.9.1/docs/source/whatsnew/0.5.rst000066400000000000000000000027641360775562100202110ustar00rootroot00000000000000===================== Changes in glymur 0.5 ===================== ***************** Changes in 0.5.12 ***************** * Minor documentation fixes for grammar and style. * The functions removed in 0.5.11 due to API changes in OpenJPEG 2.1.0 were restored for backwards compatibility. They are deprecated, though, and will be removed in 0.6.0. * ``glymur.lib.openjp2.stream_create_default_file_stream_v3`` * ``glymur.lib.openjp2.opj.stream_destroy_v3`` ***************** Changes in 0.5.11 ***************** * Added support for Python 3.4. * OpenJPEG 1.5.2 and 2.0.1 are officially supported. * OpenJPEG 2.1.0 is officially supported, but the ABI changes introduced by OpenJPEG 2.1.0 required corresponding changes to glymur's ctypes interface. The functions * ``glymur.lib.openjp2.stream_create_default_file_stream_v3`` * ``glymur.lib.openjp2.opj.stream_destroy_v3`` functions were renamed to * ``glymur.lib.openjp2.stream_create_default_file_stream`` * ``glymur.lib.openjp2.opj.stream_destroy`` in order to follow OpenJPEG's upstream changes. Unless you were using the svn version of OpenJPEG, you should not be affected by this. ***************** Changes in 0.5.10 ***************** * Fixed bad warning issued when an unsupported reader requirement box mask length was encountered. **************** Changes in 0.5.9 **************** * Fixed bad library load on linux as a result of botched 0.5.8 release. This release was primarily aimed at supporting SunPy. glymur-0.9.1/docs/source/whatsnew/0.6.rst000066400000000000000000000016411360775562100202030ustar00rootroot00000000000000##################### Changes in glymur 0.6 ##################### * Added Cinema2K, Cinema4K write support. * Added irreversible 9-7 transform write support. * Added set_printoptions, get_printoptions functions. * Added write support for JP2 UUID, data entry URL, palette, and component mapping boxes. * Added read/write support for JPX free, number list, and data reference boxes * Added read support for JPX fragment list and fragment table boxes * Incompatible change to channel definition box constructor, channel_type and association are no longer keyword arguments * Incompatible change to palette box constructor, it now takes a 2D numpy array instead of a list of 1D arrays * Dropped support for 1.3 and 1.4. * Dropped support for Python 2.6. * Dropped windows support. It might still work, I don't have access to a windows box with which to test it. * Added lxml as a package dependency, replacing ElementTree. glymur-0.9.1/docs/source/whatsnew/0.7.rst000066400000000000000000000012441360775562100202030ustar00rootroot00000000000000##################### Changes in glymur 0.7 ##################### **************** Changes in 0.7.3 **************** * added read support back for metadata only when the OpenJPEG library is not installed **************** Changes in 0.7.2 **************** * added ellipsis support in array-style slicing ***************** Changes in 0.7.1 ***************** * fixed release notes regarding Python 3.4 ***************** Changes in 0.7.0 ***************** * implemented :py:meth:`__getitem__`, :py:meth:`__setitem__` support * added back windows support * box_id and longname are class attributes now instead of instance attributes glymur-0.9.1/docs/source/whatsnew/0.8.rst000066400000000000000000000064561360775562100202160ustar00rootroot00000000000000##################### Changes in glymur 0.8 ##################### ***************** Changes in 0.8.17 ***************** * Fix parsing of resolution box with negative exponents. * Add support for ICC profile buffers. The undecoded ICC profile can be accessed via the "icc_profile_data" member of a ColourSpecification box. In version 0.9.0, this will change to "icc_profile" to store the raw data, and the old dictionary for ICC profile metadata will be accessed as "icc_profile_header". ***************** Changes in 0.8.16 ***************** * Update for Python 3.7. * Fix documentation bug. ***************** Changes in 0.8.15 ***************** * Fix link to readthedocs. * Fix for invalid progression order display. ***************** Changes in 0.8.14 ***************** * Fix bug preventing reads on layers other than the first. ***************** Changes in 0.8.13 ***************** * Add support for OpenJPEG threads. ***************** Changes in 0.8.12 ***************** * Qualified on OpenJPEG 2.3.0. * Drop support for Python 3.3. ***************** Changes in 0.8.11 ***************** * Qualified on OpenJPEG 2.2.0. ***************** Changes in 0.8.10 ***************** * Add pathlib support. ***************** Changes in 0.8.9 ***************** * Qualified on Python 3.6. * Changed travis-ci testing to use Anaconda. ***************** Changes in 0.8.8 ***************** * Refactor test suite. * Fix printing errors in case of bad colr box. * Fix tests on CentOS when seeing OpenJPEG 1.3 ***************** Changes in 0.8.7 ***************** * Qualified on OPENJPEG v2.1.2. ***************** Changes in 0.8.6 ***************** * State explicit dependence on setuptools. ***************** Changes in 0.8.5 ***************** * Relax dependency on lxml; use stdlib ElementTree if necessary. * Fix bug in XML box processing with certain XML declarations. * Qualified on OPENJPEG v2.1.1. ***************** Changes in 0.8.4 ***************** * Add Anaconda awareness to config module, favor over system package manager. * Fix issue locating openjpeg dll on windows. ***************** Changes in 0.8.3 ***************** * Add gdal interpretation of UUIDBox with GeoTIFF Box specification for JPEG2000 metadata. * Add support for Python 3.5. * Add support for Cygwin platform. * Add write support for UUIDInfo and UUIDList box. * Relax installation requirement of lxml package from 3.0 to 2.3.2. * Fix parsing error of bits-per-component box in Python 2.7. ***************** Changes in 0.8.2 ***************** * Require at least version 1.5.0 of OpenJPEG. * Improve read error message when openjpeg library not found. ***************** Changes in 0.8.1 ***************** * Add support for bits per component box. ***************** Changes in 0.8.0 ***************** * Simplify writing images by moving image data and options into the constructor. * Deprecate :py:meth:`read` method in favor of array-style slicing. In order to retain certain functionality, change the following parameters to the :py:meth:`read` method to top-level properties * verbose * layer * ignore_pclr_cmap_cdef * Two new properties * codestream * shape glymur-0.9.1/docs/source/whatsnew/0.9.rst000066400000000000000000000015611360775562100202070ustar00rootroot00000000000000##################### Changes in glymur 0.9 ##################### **************** Changes in 0.9.0 **************** * Restricted to Python 3.6 and more recent. If you are still using Python 2.7, you should remain with the 0.8.x series. * Restricted to OpenJPEG version 2.3.x and higher. If you still need to use older versions of OpenJPEG, you should remain with with 0.8.x series. * Backwards incompatibility: the read_bands method no longer takes the layer argument, you must set this using the layer property. * Backwards incompatibility: the icc_profile member of the ColourSpecificationBox is no longer a dictionary of metadata, but is instead a series of raw bytes that may be read by any software capable of interpreting ICC profiles. The dictionary of metadata has been renamed to "icc_profile_header". * lxml is no longer an optional dependency. glymur-0.9.1/docs/source/whatsnew/index.rst000066400000000000000000000003241360775562100210040ustar00rootroot00000000000000.. _whatsnew: ###################### "What's new" documents ###################### These document the changes between minor (or major) versions of glymur. .. toctree:: 0.9 0.8 0.7 0.6 0.5 glymur-0.9.1/glymur/000077500000000000000000000000001360775562100143735ustar00rootroot00000000000000glymur-0.9.1/glymur/__init__.py000066400000000000000000000010131360775562100164770ustar00rootroot00000000000000"""glymur - read, write, and interrogate JPEG 2000 files """ # Local imports from glymur import version from .options import (get_option, set_option, reset_option, get_printoptions, set_printoptions, get_parseoptions, set_parseoptions) from .jp2k import Jp2k from . import data __version__ = version.version __all__ = [__version__, Jp2k, get_printoptions, set_printoptions, get_parseoptions, set_parseoptions, get_option, set_option, reset_option, data] glymur-0.9.1/glymur/_iccprofile.py000066400000000000000000000100761360775562100172270ustar00rootroot00000000000000# Standard library imports ... from collections import OrderedDict import datetime import struct # Third party library imports ... import numpy as np class _ICCProfile(object): """ Container for ICC profile information. """ profile_class = { b'scnr': 'input device profile', b'mntr': 'display device profile', b'prtr': 'output device profile', b'link': 'devicelink profile', b'spac': 'colorspace conversion profile', b'abst': 'abstract profile', b'nmcl': 'name colour profile' } colour_space_dict = { b'XYZ ': 'XYZ', b'Lab ': 'Lab', b'Luv ': 'Luv', b'YCbr': 'YCbCr', b'Yxy ': 'Yxy', b'RGB ': 'RGB', b'GRAY': 'gray', b'HSV ': 'hsv', b'HLS ': 'hls', b'CMYK': 'CMYK', b'CMY ': 'cmy', b'2CLR': '2colour', b'3CLR': '3colour', b'4CLR': '4colour', b'5CLR': '5colour', b'6CLR': '6colour', b'7CLR': '7colour', b'8CLR': '8colour', b'9CLR': '9colour', b'ACLR': '10colour', b'BCLR': '11colour', b'CCLR': '12colour', b'DCLR': '13colour', b'ECLR': '14colour', b'FCLR': '15colour' } rendering_intent_dict = { 0: 'perceptual', 1: 'media-relative colorimetric', 2: 'saturation', 3: 'ICC-absolute colorimetric' } def __init__(self, read_buffer): self._raw_buffer = read_buffer header = OrderedDict() data = struct.unpack('>IIBB', self._raw_buffer[0:10]) header['Size'] = data[0] header['Preferred CMM Type'] = data[1] major = data[2] minor = (data[3] & 0xf0) >> 4 bugfix = (data[3] & 0x0f) header['Version'] = f'{major}.{minor}.{bugfix}' header['Device Class'] = self.profile_class[self._raw_buffer[12:16]] header['Color Space'] = self.colour_space_dict[self._raw_buffer[16:20]] data = self.colour_space_dict[self._raw_buffer[20:24]] header['Connection Space'] = data data = struct.unpack('>HHHHHH', self._raw_buffer[24:36]) try: header['Datetime'] = datetime.datetime(*data) except ValueError: header['Datetime'] = None header['File Signature'] = read_buffer[36:40].decode('utf-8') if read_buffer[40:44] == b'\x00\x00\x00\x00': header['Platform'] = 'unrecognized' else: header['Platform'] = read_buffer[40:44].decode('utf-8') fval, = struct.unpack('>I', read_buffer[44:48]) header['Flags'] = ( f"{'' if fval & 0x01 else 'not '}embedded, " f"{'cannot' if fval & 0x02 else 'can'} be used independently" ) header['Device Manufacturer'] = read_buffer[48:52].decode('utf-8') if read_buffer[52:56] == b'\x00\x00\x00\x00': device_model = '' else: device_model = read_buffer[52:56].decode('utf-8') header['Device Model'] = device_model val, = struct.unpack('>Q', read_buffer[56:64]) attr = ( f"{'transparency' if val & 0x01 else 'reflective'}, " f"{'matte' if val & 0x02 else 'glossy'}, " f"{'negative' if val & 0x04 else 'positive'} media polarity, " f"{'black and white' if val & 0x08 else 'color'} media" ) header['Device Attributes'] = attr rval, = struct.unpack('>I', read_buffer[64:68]) try: header['Rendering Intent'] = self.rendering_intent_dict[rval] except KeyError: header['Rendering Intent'] = 'unknown' data = struct.unpack('>iii', read_buffer[68:80]) header['Illuminant'] = np.array(data, dtype=np.float64) / 65536 if read_buffer[80:84] == b'\x00\x00\x00\x00': creator = 'unrecognized' else: creator = read_buffer[80:84].decode('utf-8') header['Creator'] = creator if header['Version'][0] == '4': header['Profile Id'] = read_buffer[84:100] # Final 27 bytes are reserved. self.header = header glymur-0.9.1/glymur/_tiff.py000066400000000000000000000300761360775562100160420ustar00rootroot00000000000000# -*- coding: utf-8 -*- """ Part of glymur. """ # Standard library imports ... from collections import OrderedDict import struct import warnings def tiff_header(read_buffer): """ Interpret the uuid raw data as a tiff header. """ # First 8 should be (73, 73, 42, 8) or (77, 77, 42, 8) data = struct.unpack('BB', read_buffer[0:2]) if data[0] == 73 and data[1] == 73: # little endian endian = '<' elif data[0] == 77 and data[1] == 77: # big endian endian = '>' else: msg = ( f"The byte order indication in the TIFF header " f"({read_buffer[0:2]}) is invalid. It should be either " f"{bytes([73, 73])} or {bytes([77, 77])}." ) raise RuntimeError(msg) _, offset = struct.unpack(endian + 'HI', read_buffer[2:8]) # This is the 'Exif Image' portion. exif = ExifImageIfd(endian, read_buffer, offset) return exif.processed_ifd class BadTiffTagDatatype(RuntimeError): """ This exception exists soley to better communicate up the stack that the problem exists. """ pass class Ifd(object): """ Attributes ---------- read_buffer : bytes Raw byte stream consisting of the UUID data. datatype2fmt : dictionary Class attribute, maps the TIFF enumerated datatype to the python datatype and data width. endian : str Either '<' for big-endian, or '>' for little-endian. num_tags : int Number of tags in the IFD. raw_ifd : dictionary Maps tag number to "mildly-interpreted" tag value. processed_ifd : dictionary Maps tag name to "mildly-interpreted" tag value. """ datatype2fmt = {1: ('B', 1), 2: ('B', 1), 3: ('H', 2), 4: ('I', 4), 5: ('II', 8), 7: ('B', 1), 9: ('i', 4), 10: ('ii', 8), 11: ('f', 4), 12: ('d', 8)} def __init__(self, endian, read_buffer, offset): self.endian = endian self.read_buffer = read_buffer self.processed_ifd = OrderedDict() self.num_tags, = struct.unpack(endian + 'H', read_buffer[offset:offset + 2]) fmt = self.endian + 'HHII' * self.num_tags ifd_buffer = read_buffer[offset + 2:offset + 2 + self.num_tags * 12] data = struct.unpack(fmt, ifd_buffer) self.raw_ifd = OrderedDict() for j, tag in enumerate(data[0::4]): # The offset to the tag offset/payload is the offset to the IFD # plus 2 bytes for the number of tags plus 12 bytes for each # tag entry plus 8 bytes to the offset/payload itself. toffp = read_buffer[offset + 10 + j * 12:offset + 10 + j * 12 + 4] tag_data = self.parse_tag(data[j * 4 + 1], data[j * 4 + 2], toffp) self.raw_ifd[tag] = tag_data def parse_tag(self, dtype, count, offset_buf): """Interpret an Exif image tag data payload. """ try: fmt = self.datatype2fmt[dtype][0] * count payload_size = self.datatype2fmt[dtype][1] * count except KeyError: msg = f'Invalid TIFF tag datatype ({dtype}).' raise BadTiffTagDatatype(msg) if payload_size <= 4: # Interpret the payload from the 4 bytes in the tag entry. target_buffer = offset_buf[:payload_size] else: # Interpret the payload at the offset specified by the 4 bytes in # the tag entry. offset, = struct.unpack(self.endian + 'I', offset_buf) target_buffer = self.read_buffer[offset:offset + payload_size] if dtype == 2: # ASCII payload = target_buffer.decode('utf-8').rstrip('\x00') else: payload = struct.unpack(self.endian + fmt, target_buffer) if dtype == 5 or dtype == 10: # Rational or Signed Rational. Construct the list of values. rational_payload = [] for j in range(count): value = float(payload[j * 2]) / float(payload[j * 2 + 1]) rational_payload.append(value) payload = rational_payload if count == 1: # If just a single value, then return a scalar instead of a # tuple. payload = payload[0] return payload def post_process(self, tagnum2name): """Map the tag name instead of tag number to the tag value. """ for tag, value in self.raw_ifd.items(): try: tag_name = tagnum2name[tag] except KeyError: # Ok, we don't recognize this tag. Just use the numeric id. msg = 'Unrecognized UUID box TIFF tag ({tag}).' warnings.warn(msg, UserWarning) tag_name = tag self.processed_ifd[tag_name] = value class ExifImageIfd(Ifd): """ Attributes ---------- tagnum2name : dict Maps Exif image tag numbers to the tag names. ifd : dict Maps tag names to tag values. """ tagnum2name = { 11: 'ProcessingSoftware', 254: 'NewSubfileType', 255: 'SubfileType', 256: 'ImageWidth', 257: 'ImageLength', 258: 'BitsPerSample', 259: 'Compression', 262: 'PhotometricInterpretation', 263: 'Threshholding', 264: 'CellWidth', 265: 'CellLength', 266: 'FillOrder', 269: 'DocumentName', 270: 'ImageDescription', 271: 'Make', 272: 'Model', 273: 'StripOffsets', 274: 'Orientation', 277: 'SamplesPerPixel', 278: 'RowsPerStrip', 279: 'StripByteCounts', 282: 'XResolution', 283: 'YResolution', 284: 'PlanarConfiguration', 290: 'GrayResponseUnit', 291: 'GrayResponseCurve', 292: 'T4Options', 293: 'T6Options', 296: 'ResolutionUnit', 301: 'TransferFunction', 305: 'Software', 306: 'DateTime', 315: 'Artist', 316: 'HostComputer', 317: 'Predictor', 318: 'WhitePoint', 319: 'PrimaryChromaticities', 320: 'ColorMap', 321: 'HalftoneHints', 322: 'TileWidth', 323: 'TileLength', 324: 'TileOffsets', 325: 'TileByteCounts', 330: 'SubIFDs', 332: 'InkSet', 333: 'InkNames', 334: 'NumberOfInks', 336: 'DotRange', 337: 'TargetPrinter', 338: 'ExtraSamples', 339: 'SampleFormat', 340: 'SMinSampleValue', 341: 'SMaxSampleValue', 342: 'TransferRange', 343: 'ClipPath', 344: 'XClipPathUnits', 345: 'YClipPathUnits', 346: 'Indexed', 347: 'JPEGTables', 351: 'OPIProxy', 512: 'JPEGProc', 513: 'JPEGInterchangeFormat', 514: 'JPEGInterchangeFormatLength', 515: 'JPEGRestartInterval', 517: 'JPEGLosslessPredictors', 518: 'JPEGPointTransforms', 519: 'JPEGQTables', 520: 'JPEGDCTables', 521: 'JPEGACTables', 529: 'YCbCrCoefficients', 530: 'YCbCrSubSampling', 531: 'YCbCrPositioning', 532: 'ReferenceBlackWhite', 700: 'XMLPacket', 18246: 'Rating', 18249: 'RatingPercent', 32781: 'ImageID', 33421: 'CFARepeatPatternDim', 33422: 'CFAPattern', 33423: 'BatteryLevel', 33432: 'Copyright', 33434: 'ExposureTime', 33437: 'FNumber', 33550: 'ModelPixelScale', 33723: 'IPTCNAA', 33922: 'ModelTiePoint', 34264: 'ModelTransformation', 34377: 'ImageResources', 34665: 'ExifTag', 34675: 'InterColorProfile', 34735: 'GeoKeyDirectory', 34736: 'GeoDoubleParams', 34737: 'GeoAsciiParams', 34850: 'ExposureProgram', 34852: 'SpectralSensitivity', 34853: 'GPSTag', 34855: 'ISOSpeedRatings', 34856: 'OECF', 34857: 'Interlace', 34858: 'TimeZoneOffset', 34859: 'SelfTimerMode', 36867: 'DateTimeOriginal', 37122: 'CompressedBitsPerPixel', 37377: 'ShutterSpeedValue', 37378: 'ApertureValue', 37379: 'BrightnessValue', 37380: 'ExposureBiasValue', 37381: 'MaxApertureValue', 37382: 'SubjectDistance', 37383: 'MeteringMode', 37384: 'LightSource', 37385: 'Flash', 37386: 'FocalLength', 37387: 'FlashEnergy', 37388: 'SpatialFrequencyResponse', 37389: 'Noise', 37390: 'FocalPlaneXResolution', 37391: 'FocalPlaneYResolution', 37392: 'FocalPlaneResolutionUnit', 37393: 'ImageNumber', 37394: 'SecurityClassification', 37395: 'ImageHistory', 37396: 'SubjectLocation', 37397: 'ExposureIndex', 37398: 'TIFFEPStandardID', 37399: 'SensingMethod', 40091: 'XPTitle', 40092: 'XPComment', 40093: 'XPAuthor', 40094: 'XPKeywords', 40095: 'XPSubject', 50341: 'PrintImageMatching', 50706: 'DNGVersion', 50707: 'DNGBackwardVersion', 50708: 'UniqueCameraModel', 50709: 'LocalizedCameraModel', 50710: 'CFAPlaneColor', 50711: 'CFALayout', 50712: 'LinearizationTable', 50713: 'BlackLevelRepeatDim', 50714: 'BlackLevel', 50715: 'BlackLevelDeltaH', 50716: 'BlackLevelDeltaV', 50717: 'WhiteLevel', 50718: 'DefaultScale', 50719: 'DefaultCropOrigin', 50720: 'DefaultCropSize', 50721: 'ColorMatrix1', 50722: 'ColorMatrix2', 50723: 'CameraCalibration1', 50724: 'CameraCalibration2', 50725: 'ReductionMatrix1', 50726: 'ReductionMatrix2', 50727: 'AnalogBalance', 50728: 'AsShotNeutral', 50729: 'AsShotWhiteXY', 50730: 'BaselineExposure', 50731: 'BaselineNoise', 50732: 'BaselineSharpness', 50733: 'BayerGreenSplit', 50734: 'LinearResponseLimit', 50735: 'CameraSerialNumber', 50736: 'LensInfo', 50737: 'ChromaBlurRadius', 50738: 'AntiAliasStrength', 50739: 'ShadowScale', 50740: 'DNGPrivateData', 50741: 'MakerNoteSafety', 50778: 'CalibrationIlluminant1', 50779: 'CalibrationIlluminant2', 50780: 'BestQualityScale', 50781: 'RawDataUniqueID', 50827: 'OriginalRawFileName', 50828: 'OriginalRawFileData', 50829: 'ActiveArea', 50830: 'MaskedAreas', 50831: 'AsShotICCProfile', 50832: 'AsShotPreProfileMatrix', 50833: 'CurrentICCProfile', 50834: 'CurrentPreProfileMatrix', 50879: 'ColorimetricReference', 50931: 'CameraCalibrationSignature', 50932: 'ProfileCalibrationSignature', 50934: 'AsShotProfileName', 50935: 'NoiseReductionApplied', 50936: 'ProfileName', 50937: 'ProfileHueSatMapDims', 50938: 'ProfileHueSatMapData1', 50939: 'ProfileHueSatMapData2', 50940: 'ProfileToneCurve', 50941: 'ProfileEmbedPolicy', 50942: 'ProfileCopyright', 50964: 'ForwardMatrix1', 50965: 'ForwardMatrix2', 50966: 'PreviewApplicationName', 50967: 'PreviewApplicationVersion', 50968: 'PreviewSettingsName', 50969: 'PreviewSettingsDigest', 50970: 'PreviewColorSpace', 50971: 'PreviewDateTime', 50972: 'RawImageDigest', 50973: 'OriginalRawFileDigest', 50974: 'SubTileBlockSize', 50975: 'RowInterleaveFactor', 50981: 'ProfileLookTableDims', 50982: 'ProfileLookTableData', 51008: 'OpcodeList1', 51009: 'OpcodeList2', 51022: 'OpcodeList3', 51041: 'NoiseProfile', } def __init__(self, endian, read_buffer, offset): super().__init__(endian, read_buffer, offset) self.post_process(self.tagnum2name) glymur-0.9.1/glymur/codestream.py000066400000000000000000001603261360775562100171030ustar00rootroot00000000000000"""Codestream information. The module contains classes used to store information parsed from JPEG 2000 codestreams. """ # standard library imports import struct import sys import warnings # 3rd party library imports import numpy as np # local imports from .core import ( LRCP, RLCP, RPCL, PCRL, CPRL, WAVELET_XFORM_9X7_IRREVERSIBLE, WAVELET_XFORM_5X3_REVERSIBLE ) from .lib import openjp2 as opj2 _PROGRESSION_ORDER_DISPLAY = { LRCP: 'LRCP', RLCP: 'RLCP', RPCL: 'RPCL', PCRL: 'PCRL', CPRL: 'CPRL', } _WAVELET_XFORM_DISPLAY = { WAVELET_XFORM_9X7_IRREVERSIBLE: '9-7 irreversible', WAVELET_XFORM_5X3_REVERSIBLE: '5-3 reversible' } _NO_PROFILE = 0 _PROFILE_0 = 1 _PROFILE_1 = 2 _PROFILE_3 = 3 _PROFILE_4 = 4 _KNOWN_PROFILES = [_NO_PROFILE, _PROFILE_0, _PROFILE_1, _PROFILE_3, _PROFILE_4] # How to display the codestream profile. _CAPABILITIES_DISPLAY = { _NO_PROFILE: 'no profile', _PROFILE_0: '0', _PROFILE_1: '1', _PROFILE_3: 'Cinema 2K', _PROFILE_4: 'Cinema 4K', } class Codestream(object): """Container for codestream information. Attributes ---------- segment : iterable list of marker segments offset : int Offset of the codestream from start of the file in bytes. length : int Length of the codestream in bytes. References ---------- .. [JP2K15444-1i] International Organization for Standardication. ISO/IEC 15444-1:2004 - Information technology -- JPEG 2000 image coding system: Core coding system """ # These two begin their lives as class attributes that usually become # instance attributes. The reason why isn't important for users; it's only # important for testing purposes. _csiz = -1 # Number of components in the image. _parse_tpart_flag = False # Do we parse the bit stream for SOP / EPH? def __init__(self, fptr, length, header_only=True): """ Parameters ---------- fptr : file Open file object. length : int Length of the codestream in bytes. header_only : bool, optional If True, only marker segments in the main header are parsed. Supplying False may impose a large performance penalty. """ # Map each of the known markers to a method that processes them. # Consult table A-1 in ISO/IEC FCD15444-1 for the definitive list. # # Some markers are mentiond in the following specs: # ITU-T Rec. T.81 # ITU-T Rec. T.84 # ITU-T Rec. T.87 # We really don't know what to do with them, so they are treated as if # they are reserved markers. parse_marker_segment_fcn = { # The following are definitively reserved markers according to # table A-1 in ISO/IEC FCD15444-1. 0xff30: self._parse_reserved_marker, 0xff31: self._parse_reserved_marker, 0xff32: self._parse_reserved_marker, 0xff33: self._parse_reserved_marker, 0xff34: self._parse_reserved_marker, 0xff35: self._parse_reserved_marker, 0xff36: self._parse_reserved_marker, 0xff37: self._parse_reserved_marker, 0xff38: self._parse_reserved_marker, 0xff39: self._parse_reserved_marker, 0xff3a: self._parse_reserved_marker, 0xff3b: self._parse_reserved_marker, 0xff3c: self._parse_reserved_marker, 0xff3d: self._parse_reserved_marker, 0xff3e: self._parse_reserved_marker, 0xff3f: self._parse_reserved_marker, # 0xff4f: SOC (already encountered by the time we get here) 0xff50: self._parse_reserved_segment, 0xff51: self._parse_siz_segment, 0xff52: self._parse_cod_segment, 0xff53: self._parse_coc_segment, 0xff54: self._parse_reserved_segment, 0xff55: self._parse_tlm_segment, 0xff56: self._parse_reserved_segment, 0xff57: self._parse_reserved_segment, 0xff58: self._parse_plt_segment, 0xff59: self._parse_reserved_segment, 0xff5a: self._parse_reserved_segment, 0xff5b: self._parse_reserved_segment, 0xff5c: self._parse_qcd_segment, 0xff5d: self._parse_qcc_segment, 0xff5e: self._parse_rgn_segment, 0xff5f: self._parse_pod_segment, 0xff60: self._parse_ppm_segment, 0xff61: self._parse_ppt_segment, 0xff62: self._parse_reserved_segment, 0xff63: self._parse_crg_segment, 0xff64: self._parse_cme_segment, 0xff65: self._parse_reserved_segment, 0xff66: self._parse_reserved_segment, 0xff67: self._parse_reserved_segment, 0xff68: self._parse_reserved_segment, 0xff69: self._parse_reserved_segment, 0xff6a: self._parse_reserved_segment, 0xff6b: self._parse_reserved_segment, 0xff6c: self._parse_reserved_segment, 0xff6d: self._parse_reserved_segment, 0xff6e: self._parse_reserved_segment, 0xff6f: self._parse_reserved_segment, 0xff90: self._parse_sot_segment, # 0xff91: SOP (only found in bit stream) # 0xff92: EPH (only found in bit stream) 0xff93: self._parse_sod_marker, 0xffd9: self._parse_eoc_marker, } self.offset = fptr.tell() self.length = length self.segment = [] # First two bytes are the SOC marker. We already know that. read_buffer = fptr.read(2) segment = SOCsegment(offset=fptr.tell() - 2, length=0) self.segment.append(segment) self._tile_offset = [] self._tile_length = [] while True: read_buffer = fptr.read(2) self._marker_id, = struct.unpack('>H', read_buffer) if self._marker_id < 0xff00: offset = fptr.tell() - 2 msg = ( f'Invalid codestream marker at byte offset {offset}. It ' f'must be must be greater than 0xff00, but ' f'found 0x{self._marker_id:04x} instead. Codestream ' f'parsing will cease.' ) raise ValueError(msg) self._offset = fptr.tell() - 2 if self._marker_id == 0xff90 and header_only: # Start-of-tile (SOT) means that we are out of the main header # and there is no need to go further. break try: segment = parse_marker_segment_fcn[self._marker_id](fptr) except KeyError: segment = self._parse_reserved_segment(fptr) self.segment.append(segment) if self._marker_id == 0xffd9: # end of codestream, should break. break if self._marker_id == 0xff93: # If SOD, then we need to seek past the tile part bit stream. if self._parse_tpart_flag and not header_only: # But first parse the tile part bit stream for SOP and # EPH segments. self._parse_tile_part_bit_stream(fptr, segment, self._tile_length[-1]) new_offset = self._tile_offset[-1] + self._tile_length[-1] fptr.seek(new_offset) def _parse_reserved_segment(self, fptr): """ Parse valid marker segment, segment description is unknown. Parameters ---------- fptr : file-like object The file to parse. Returns ------- The current segment. """ offset = fptr.tell() - 2 read_buffer = fptr.read(2) length, = struct.unpack('>H', read_buffer) if length > 0: data = fptr.read(length - 2) else: data = None segment = Segment(marker_id=f'0x{self._marker_id:x}', offset=offset, length=length, data=data) return segment def _parse_tile_part_bit_stream(self, fptr, sod_marker, tile_length): """Parse the tile part bit stream for SOP, EPH marker segments.""" read_buffer = fptr.read(tile_length) # The tile length could possibly be too large and extend past # the end of file. We need to be a bit resilient. count = min(tile_length, len(read_buffer)) packet = np.frombuffer(read_buffer, dtype=np.uint8, count=count) indices = np.where(packet == 0xff) for idx in indices[0]: try: if packet[idx + 1] == 0x91 and (idx < (len(packet) - 5)): offset = sod_marker.offset + 2 + idx length = 4 nsop = packet[(idx + 4):(idx + 6)].view('uint16')[0] if sys.byteorder == 'little': nsop = nsop.byteswap() segment = SOPsegment(nsop, length, offset) self.segment.append(segment) elif packet[idx + 1] == 0x92: offset = sod_marker.offset + 2 + idx length = 0 segment = EPHsegment(length, offset) self.segment.append(segment) except IndexError: continue def __str__(self): msg = 'Codestream:\n' for segment in self.segment: strs = str(segment) # Add indentation strs = [(' ' + x + '\n') for x in strs.split('\n')] msg += ''.join(strs) return msg.rstrip() def _parse_cme_segment(self, fptr): """Parse the CME marker segment. Parameters ---------- fptr : file Open file object. Returns ------- CMESegment The current CME segment. """ offset = fptr.tell() - 2 read_buffer = fptr.read(4) data = struct.unpack('>HH', read_buffer) length = data[0] rcme = data[1] ccme = fptr.read(length - 4) return CMEsegment(rcme, ccme, length, offset) def _parse_coc_segment(self, fptr): """Parse the COC marker segment. Parameters ---------- fptr : file Open file object. Returns ------- COCSegment The current COC segment. """ kwargs = {} offset = fptr.tell() - 2 kwargs['offset'] = offset read_buffer = fptr.read(2) length, = struct.unpack('>H', read_buffer) kwargs['length'] = length fmt = '>B' if self._csiz <= 255 else '>H' nbytes = 1 if self._csiz <= 255 else 2 read_buffer = fptr.read(nbytes) ccoc, = struct.unpack(fmt, read_buffer) read_buffer = fptr.read(1) scoc, = struct.unpack('>B', read_buffer) numbytes = offset + 2 + length - fptr.tell() read_buffer = fptr.read(numbytes) spcoc = np.frombuffer(read_buffer, dtype=np.uint8) spcoc = spcoc return COCsegment(ccoc, scoc, spcoc, length, offset) @classmethod def _parse_cod_segment(cls, fptr): """Parse the COD segment. Parameters ---------- fptr : file Open file object. Returns ------- CODSegment The current COD segment. """ offset = fptr.tell() - 2 read_buffer = fptr.read(2) length, = struct.unpack('>H', read_buffer) read_buffer = fptr.read(length - 2) lst = struct.unpack_from('>BBHBBBBBB', read_buffer, offset=0) scod, prog, nlayers, mct, nr, xcb, ycb, cstyle, xform = lst if len(read_buffer) > 10: precinct_size = _parse_precinct_size(read_buffer[10:]) else: precinct_size = None sop = (scod & 2) > 0 eph = (scod & 4) > 0 if sop or eph: cls._parse_tpart_flag = True else: cls._parse_tpart_flag = False pargs = (scod, prog, nlayers, mct, nr, xcb, ycb, cstyle, xform, precinct_size) return CODsegment(*pargs, length=length, offset=offset) def _parse_crg_segment(self, fptr): """Parse the CRG marker segment. Parameters ---------- fptr : file Open file object. Returns ------- CRGSegment The current CRG segment. """ offset = fptr.tell() - 2 read_buffer = fptr.read(2) length, = struct.unpack('>H', read_buffer) read_buffer = fptr.read(4 * self._csiz) data = struct.unpack('>' + 'HH' * self._csiz, read_buffer) xcrg = data[0::2] ycrg = data[1::2] return CRGsegment(xcrg, ycrg, length, offset) def _parse_eoc_marker(self, fptr): """Parse the EOC (end-of-codestream) marker. Parameters ---------- fptr : file Open file object. Returns ------- EOCSegment The current EOC segment. """ offset = fptr.tell() - 2 length = 0 return EOCsegment(length, offset) def _parse_plt_segment(self, fptr): """Parse the PLT segment. The packet headers are not parsed, i.e. they remain uninterpreted raw data buffers. Parameters ---------- fptr : file Open file object. Returns ------- PLTSegment The current PLT segment. """ offset = fptr.tell() - 2 read_buffer = fptr.read(3) length, zplt = struct.unpack('>HB', read_buffer) numbytes = length - 3 read_buffer = fptr.read(numbytes) iplt = np.frombuffer(read_buffer, dtype=np.uint8) packet_len = [] plen = 0 for byte in iplt: plen |= (byte & 0x7f) if byte & 0x80: # Continue by or-ing in the next byte. plen <<= 7 else: packet_len.append(plen) plen = 0 iplt = packet_len return PLTsegment(zplt, iplt, length, offset) def _parse_pod_segment(self, fptr): """Parse the POD segment. Parameters ---------- fptr : file Open file object. Returns ------- PODSegment The current POD segment. """ offset = fptr.tell() - 2 read_buffer = fptr.read(2) length, = struct.unpack('>H', read_buffer) n = ((length - 2) / 7) if self._csiz < 257 else ((length - 2) / 9) n = int(n) nbytes = n * 7 if self._csiz < 257 else n * 9 read_buffer = fptr.read(nbytes) fmt = '>' + 'BBHBBB' * n if self._csiz < 257 else '>' + 'BHHBHB' * n pod_params = struct.unpack(fmt, read_buffer) return PODsegment(pod_params, length, offset) def _parse_ppm_segment(self, fptr): """Parse the PPM segment. Parameters ---------- fptr : file Open file object. Returns ------- PPMSegment The current PPM segment. """ offset = fptr.tell() - 2 read_buffer = fptr.read(3) length, zppm = struct.unpack('>HB', read_buffer) numbytes = length - 3 read_buffer = fptr.read(numbytes) return PPMsegment(zppm, read_buffer, length, offset) def _parse_ppt_segment(self, fptr): """Parse the PPT segment. The packet headers are not parsed, i.e. they remain "uninterpreted" raw data beffers. Parameters ---------- fptr : file object The file to parse. Returns ------- PPTSegment The current PPT segment. """ offset = fptr.tell() - 2 read_buffer = fptr.read(3) length, zppt = struct.unpack('>HB', read_buffer) length = length zppt = zppt numbytes = length - 3 ippt = fptr.read(numbytes) return PPTsegment(zppt, ippt, length, offset) @classmethod def _parse_qcc_segment(cls, fptr): """Parse the QCC segment. Parameters ---------- fptr : file object The file to parse. Returns ------- QCCSegment The current QCC segment. """ offset = fptr.tell() - 2 read_buffer = fptr.read(2) length, = struct.unpack('>H', read_buffer) read_buffer = fptr.read(length - 2) fmt = '>HB' if cls._csiz > 256 else '>BB' mantissa_exponent_offset = 3 if cls._csiz > 256 else 2 cqcc, sqcc = struct.unpack_from(fmt, read_buffer) if cqcc >= cls._csiz: msg = ("Invalid QCC component number ({cqcc}), " "the actual number of components is only {cls._csiz}.") warnings.warn(msg, UserWarning) spqcc = read_buffer[mantissa_exponent_offset:] return QCCsegment(cqcc, sqcc, spqcc, length, offset) def _parse_qcd_segment(self, fptr): """Parse the QCD segment. Parameters ---------- fptr : file Open file object. Returns ------- QCDSegment The current QCD segment. """ offset = fptr.tell() - 2 read_buffer = fptr.read(3) length, sqcd = struct.unpack('>HB', read_buffer) spqcd = fptr.read(length - 3) return QCDsegment(sqcd, spqcd, length, offset) @classmethod def _parse_rgn_segment(cls, fptr): """Parse the RGN segment. Parameters ---------- fptr : file Open file object. Returns ------- RGNSegment The current RGN segment. """ offset = fptr.tell() - 2 read_buffer = fptr.read(2) length, = struct.unpack('>H', read_buffer) nbytes = 3 if cls._csiz < 257 else 4 fmt = '>BBB' if cls._csiz < 257 else '>HBB' read_buffer = fptr.read(nbytes) data = struct.unpack(fmt, read_buffer) length = length crgn = data[0] srgn = data[1] sprgn = data[2] return RGNsegment(crgn, srgn, sprgn, length, offset) @classmethod def _parse_siz_segment(cls, fptr): """Parse the SIZ segment. Parameters ---------- fptr : file Open file object. Returns ------- SIZSegment The current SIZ segment. """ offset = fptr.tell() - 2 read_buffer = fptr.read(2) length, = struct.unpack('>H', read_buffer) read_buffer = fptr.read(length - 2) data = struct.unpack_from('>HIIIIIIIIH', read_buffer) rsiz = data[0] if rsiz not in _KNOWN_PROFILES: msg = f"Invalid profile: (Rsiz={rsiz})." warnings.warn(msg, UserWarning) xysiz = (data[1], data[2]) xyosiz = (data[3], data[4]) xytsiz = (data[5], data[6]) xytosiz = (data[7], data[8]) # Csiz is the number of components Csiz = data[9] data = struct.unpack_from('>' + 'B' * (length - 36 - 2), read_buffer, offset=36) bitdepth = tuple(((x & 0x7f) + 1) for x in data[0::3]) signed = tuple(((x & 0x80) > 0) for x in data[0::3]) xrsiz = data[1::3] yrsiz = data[2::3] for j, subsampling in enumerate(zip(xrsiz, yrsiz)): if 0 in subsampling: msg = (f"Invalid subsampling value for component {j}: " f"dx={subsampling[0]}, dy={subsampling[1]}.") warnings.warn(msg, UserWarning) try: num_tiles_x = (xysiz[0] - xyosiz[0]) / (xytsiz[0] - xytosiz[0]) num_tiles_y = (xysiz[1] - xyosiz[1]) / (xytsiz[1] - xytosiz[1]) except ZeroDivisionError: msg = ( f"Invalid tile specification: " f"size of {xytsiz[1]} x {xytsiz[0]}, " f"offset of {xytosiz[1]} x {xytsiz[0]}." ) warnings.warn(msg, UserWarning) else: numtiles = np.ceil(num_tiles_x) * np.ceil(num_tiles_y) if numtiles > 65535: msg = f"Invalid number of tiles: ({numtiles})." warnings.warn(msg, UserWarning) kwargs = { 'rsiz': rsiz, 'xysiz': xysiz, 'xyosiz': xyosiz, 'xytsiz': xytsiz, 'xytosiz': xytosiz, 'Csiz': Csiz, 'bitdepth': bitdepth, 'signed': signed, 'xyrsiz': (xrsiz, yrsiz), 'length': length, 'offset': offset } segment = SIZsegment(**kwargs) # Need to keep track of the number of components from SIZ for # other segments. cls._csiz = Csiz return segment def _parse_sod_marker(self, fptr): """Parse the SOD (start-of-data) segment. Parameters ---------- fptr : file Open file object. Returns ------- SODSegment The current SOD segment. """ offset = fptr.tell() - 2 length = 0 return SODsegment(length, offset) def _parse_sot_segment(self, fptr): """Parse the SOT segment. Parameters ---------- fptr : file Open file object. Returns ------- SOTSegment The current SOT segment. """ offset = fptr.tell() - 2 read_buffer = fptr.read(10) data = struct.unpack('>HHIBB', read_buffer) length = data[0] isot = data[1] psot = data[2] tpsot = data[3] tnsot = data[4] segment = SOTsegment(isot, psot, tpsot, tnsot, length, offset) # Need to keep easy access to tile offsets and lengths for when # we encounter start-of-data marker segments. self._tile_offset.append(segment.offset) if segment.psot == 0: tile_part_length = self.offset + self.length - segment.offset - 2 else: tile_part_length = segment.psot self._tile_length.append(tile_part_length) return segment def _parse_tlm_segment(self, fptr): """Parse the TLM segment. Parameters ---------- fptr : file Open file object. Returns ------- TLMSegment The current TLM segment. See tables A-33 and A-34 in 15444.pdf. """ offset = fptr.tell() - 2 read_buffer = fptr.read(2) length, = struct.unpack('>H', read_buffer) read_buffer = fptr.read(length - 2) ztlm, stlm = struct.unpack_from('>BB', read_buffer) st = (stlm >> 4) & 0x3 sp = (stlm >> 6) & 0x1 nbytes = length - 4 ntiles = nbytes / (st + (sp + 1) * 2) fmt = {0: '', 1: 'B', 2: 'H'}[st] fmt += {0: 'H', 1: 'I'}[sp] data = struct.unpack_from('>' + fmt * int(ntiles), read_buffer, offset=2) if st == 0: ttlm = None ptlm = data else: ttlm = data[0::2] ptlm = data[1::2] return TLMsegment(ztlm, ttlm, ptlm, length, offset) def _parse_reserved_marker(self, fptr): """Marker range between 0xff30 and 0xff39. """ the_id = f'0x{self._marker_id:x}' segment = Segment(marker_id=the_id, offset=self._offset, length=0) return segment class Segment(object): """Segment information. Attributes ---------- marker_id : str Identifier for the segment. offset : int Offset of marker segment in bytes from beginning of file. length : int Length of marker segment in bytes. This number does not include the two bytes constituting the marker. data : bytes iterable or None Uninterpreted buffer of raw bytes, only used where a segment is not well understood. """ def __init__(self, marker_id='', offset=-1, length=-1, data=None): self.marker_id = marker_id self.offset = offset self.length = length self.data = data def __str__(self): msg = (f'{self.marker_id} marker segment @ ' f'({self.offset}, {self.length})') return msg class COCsegment(Segment): """COC (Coding style Component) segment information. Attributes ---------- marker_id : str Identifier for the segment. offset : int Offset of marker segment in bytes from beginning of file. length : int Length of marker segment in bytes. This number does not include the two bytes constituting the marker. ccoc : int Index of associated component. scoc : int Coding style for this component. spcoc : byte array Coding style parameters for this component. precinct_size : list of tuples Dimensions of precinct. References ---------- .. [JP2K15444-1i] International Organization for Standardication. ISO/IEC 15444-1:2004 - Information technology -- JPEG 2000 image coding system: Core coding system """ def __init__(self, ccoc, scoc, spcoc, length, offset): super().__init__(marker_id='COC') self.ccoc = ccoc self.scoc = scoc self.spcoc = spcoc self.code_block_size = (4 * 2 ** self.spcoc[2], 4 * 2 ** self.spcoc[1]) if len(self.spcoc) > 5: self.precinct_size = _parse_precinct_size(self.spcoc[5:]) else: self.precinct_size = ((32768, 32768)) self.length = length self.offset = offset def __str__(self): msg = Segment.__str__(self) msg += '\n' partition = 0 if self.scoc == 0 else 1 width = int(self.code_block_size[0]) height = int(self.code_block_size[1]) xform = _WAVELET_XFORM_DISPLAY[self.spcoc[4]] msg += ( f' Associated component: {self.ccoc}\n' f' Coding style for this component: ' f'Entropy coder, PARTITION = {partition}\n' f' Coding style parameters:\n' f' Number of decomposition levels: {self.spcoc[0]}\n' f' Code block height, width: ({width} x {height})\n' f' Wavelet transform: {xform}\n' f' Precinct size: {self.precinct_size}\n' f' {_context_string(self.spcoc[3])}' ) return msg class CODsegment(Segment): """COD segment information. Attributes ---------- marker_id : str Identifier for the segment offset : int Offset of marker segment in bytes from beginning of file length : int Length of marker segment in bytes. This number does not include the two bytes constituting the marker. scod : int Default coding style code_block_size : tuple Size of code block layers : int Number of decomposition levels progression_order : int Progression order mct : int Multiple component transform usage num_res : int Number of decomposition levels. Zero implies no transformation. xform : int Wavelet transform used cstyle : int Style of the code-block passes precinct_size : list 2-tuples of precinct sizes. References ---------- .. [JP2K15444-1i] International Organization for Standardication. ISO/IEC 15444-1:2004 - Information technology -- JPEG 2000 image coding system: Core coding system pargs = (scod, prog, nlayers, mct, nr, xcb, ycb, cstyle, xform, precinct_size) """ def __init__(self, scod, prog_order, num_layers, mct, nr, xcb, ycb, cstyle, xform, precinct_size, length=0, offset=0): super().__init__(marker_id='COD') self.scod = scod self.length = length self.offset = offset self.mct = mct self.cstyle = cstyle self.xform = xform self.layers = num_layers self._numresolutions = nr if nr > opj2.J2K_MAXRLVLS: msg = f"Invalid number of resolutions: ({nr + 1})." warnings.warn(msg, UserWarning) self.num_res = nr if prog_order not in [LRCP, RLCP, RPCL, PCRL, CPRL]: msg = f"Invalid progression order in COD segment: {prog_order}." warnings.warn(msg, UserWarning) self.prog_order = prog_order if xform not in [WAVELET_XFORM_9X7_IRREVERSIBLE, WAVELET_XFORM_5X3_REVERSIBLE]: msg = f"Invalid wavelet transform in COD segment: {xform}." warnings.warn(msg, UserWarning) self.code_block_size = 4 * 2 ** ycb, 4 * 2 ** xcb if precinct_size is None: self.precinct_size = ((2 ** 15, 2 ** 15)) else: self.precinct_size = precinct_size def __str__(self): msg = Segment.__str__(self) msg += '\n' msg += ( ' Coding style:\n' ' Entropy coder, {with_without} partitions\n' ' SOP marker segments: {sop}\n' ' EPH marker segments: {eph}\n' ' Coding style parameters:\n' ' Progression order: {prog}\n' ' Number of layers: {num_layers}\n' ' Multiple component transformation usage: {mct}\n' ' Number of decomposition levels: {num_dlevels}\n' ' Code block height, width: ({cbh} x {cbw})\n' ' Wavelet transform: {xform}\n' ' Precinct size: {precinct_size}\n' ' {code_block_context}' ) if self.mct == 0: mct_str = 'no transform specified' elif self.mct & 0x01: mct_str = 'reversible' elif self.mct & 0x02: mct_str = 'irreversible' else: mct_str = 'unknown' try: progression_order = _PROGRESSION_ORDER_DISPLAY[self.prog_order] except KeyError: progression_order = f'{self.prog_order} (invalid)' try: xform = _WAVELET_XFORM_DISPLAY[self.xform] except KeyError: xform = f'{self.xform} (invalid)' msg = msg.format(with_without='with' if (self.scod & 1) else 'without', sop=((self.scod & 2) > 0), eph=((self.scod & 4) > 0), prog=progression_order, num_layers=self.layers, mct=mct_str, num_dlevels=self.num_res, cbh=int(self.code_block_size[0]), cbw=int(self.code_block_size[1]), xform=xform, precinct_size=self.precinct_size, code_block_context=_context_string(self.cstyle)) return msg class CMEsegment(Segment): """CME (comment and extention) segment information. Attributes ---------- marker_id : str Identifier for the segment. offset : int Offset of marker segment in bytes from beginning of file. length : int Length of marker segment in bytes. This number does not include the two bytes constituting the marker. rcme : int Registration value of the marker segment. Zero means general binary values, otherwise probably a string encoded in latin-1. ccme: bytes Raw bytes representing the comment data. References ---------- .. [JP2K15444-1i] International Organization for Standardication. ISO/IEC 15444-1:2004 - Information technology -- JPEG 2000 image coding system: Core coding system """ def __init__(self, rcme, ccme, length=-1, offset=-1): super().__init__(marker_id='CME') self.rcme = rcme self.ccme = ccme self.length = length self.offset = offset def __str__(self): msg = Segment.__str__(self) + '\n' if self.rcme == 1: # latin-1 string msg += ' "{ccme}"'.format(ccme=self.ccme.decode('latin-1')) else: msg += " binary data (rcme = {rcme}): {nbytes} bytes" msg = msg.format(rcme=self.rcme, nbytes=len(self.ccme)) return msg class CRGsegment(Segment): """CRG (component registration) segment information. Attributes ---------- marker_id : str Identifier for the segment. offset : int Offset of marker segment in bytes from beginning of file. length : int Length of marker segment in bytes. This number does not include the two bytes constituting the marker. xcrg, ycrg : int sequences Horizontal, vertical offset for each component """ def __init__(self, xcrg, ycrg, length, offset): super().__init__(marker_id='CRG') self.xcrg = xcrg self.ycrg = ycrg self.length = length self.offset = offset def __str__(self): msg = Segment.__str__(self) msg += '\n Vertical, Horizontal offset: ' for j in range(len(self.xcrg)): msg += ' ({0:.2f}, {1:.2f})'.format(self.ycrg[j] / 65535.0, self.xcrg[j] / 65535.0) return msg class EOCsegment(Segment): """EOC segment information. Attributes ---------- marker_id : str Identifier for the segment. offset : int Offset of marker segment in bytes from beginning of file. length : int Length of marker segment in bytes. This number does not include the two bytes constituting the marker, making the length for this marker segment to be zero. References ---------- .. [JP2K15444-1i] International Organization for Standardication. ISO/IEC 15444-1:2004 - Information technology -- JPEG 2000 image coding system: Core coding system """ def __init__(self, length, offset): super().__init__(marker_id='EOC') self.length = length self.offset = offset class PODsegment(Segment): """Progression Order Default/Change (POD) segment information. Attributes ---------- marker_id : str Identifier for the segment. offset : int Offset of marker segment in bytes from beginning of file. length : int Length of marker segment in bytes. This number does not include the two bytes constituting the marker. rspod : tuple resolution indices for start of a progression cspod : tuple component indices for start of a progression lyepod : tuple layer indices for end of a progression repod : tuple resolution indices for end of a progression cdpod : tuple component indices for end of a progression ppod : tuple progression order for each change References ---------- .. [JP2K15444-1i] International Organization for Standardication. ISO/IEC 15444-1:2004 - Information technology -- JPEG 2000 image coding system: Core coding system """ def __init__(self, pod_params, length, offset): super().__init__(marker_id='POD') self.rspod = pod_params[0::6] self.cspod = pod_params[1::6] self.lyepod = pod_params[2::6] self.repod = pod_params[3::6] self.cdpod = pod_params[4::6] self.ppod = pod_params[5::6] self.length = length self.offset = offset def __str__(self): msg = Segment.__str__(self) msg += '\n' submsg = (' Progression change {0}:\n' ' Resolution index start: {1}\n' ' Component index start: {2}\n' ' Layer index end: {3}\n' ' Resolution index end: {4}\n' ' Component index end: {5}\n' ' Progression order: {6}\n') for j in range(len(self.rspod)): try: progorder = _PROGRESSION_ORDER_DISPLAY[self.ppod[j]] except KeyError: progorder = f'invalid value: {self.ppod[j]}' msg += submsg.format(j, self.rspod[j], self.cspod[j], self.lyepod[j], self.repod[j], self.cdpod[j], progorder) return msg.rstrip() class PLTsegment(Segment): """PLT segment information. Attributes ---------- marker_id : str Identifier for the segment. offset : int Offset of marker segment in bytes from beginning of file. length : int Length of marker segment in bytes. This number does not include the two bytes constituting the marker. zplt : int Index of this segment relative to other PLT segments. iplt : list Packet lengths. References ---------- .. [JP2K15444-1i] International Organization for Standardication. ISO/IEC 15444-1:2004 - Information technology -- JPEG 2000 image coding system: Core coding system """ def __init__(self, zplt, iplt, length, offset): super().__init__(marker_id='PLT') self.zplt = zplt self.iplt = iplt self.length = length self.offset = offset def __str__(self): msg = Segment.__str__(self) msg += ( f"\n Index: {self.zplt}" f"\n Iplt: {self.iplt}" ) return msg class PPMsegment(Segment): """PPM segment information. Attributes ---------- marker_id : str Identifier for the segment. offset : int Offset of marker segment in bytes from beginning of file. length : int Length of marker segment in bytes. This number does not include the two bytes constituting the marker. zppm : int Index of this segment relative to other PPM segments. References ---------- .. [JP2K15444-1i] International Organization for Standardication. ISO/IEC 15444-1:2004 - Information technology -- JPEG 2000 image coding system: Core coding system """ def __init__(self, zppm, data, length, offset): super().__init__(marker_id='PPM') self.zppm = zppm # both Nppm and Ippms information stored in data self.data = data self.length = length self.offset = offset def __str__(self): msg = Segment.__str__(self) msg += ( f'\n Index: {self.zppm}' f'\n Data: {len(self.data)} uninterpreted bytes' ) return msg class PPTsegment(Segment): """PPT segment information. Attributes ---------- marker_id : str Identifier for the segment. offset : int Offset of marker segment in bytes from beginning of file. length : int Length of marker segment in bytes. This number does not include the two bytes constituting the marker. zppt : int Index of this segment relative to other PPT segments ippt : list Uninterpreted packet headers. References ---------- .. [JP2K15444-1i] International Organization for Standardication. ISO/IEC 15444-1:2004 - Information technology -- JPEG 2000 image coding system: Core coding system """ def __init__(self, zppt, ippt, length, offset): super().__init__(marker_id='PPT') self.zppt = zppt self.ippt = ippt self.length = length self.offset = offset def __str__(self): msg = Segment.__str__(self) msg += ( f'\n Index: {self.zppt}' f'\n Packet headers: {len(self.ippt)} uninterpreted bytes' ) return msg class QCCsegment(Segment): """QCC segment information. Attributes ---------- marker_id : str Identifier for the segment. offset : int Offset of marker segment in bytes from beginning of file. length : int Length of marker segment in bytes. This number does not include the two bytes constituting the marker. cqcc : int Index of associated component. sqcc : int Quantization style for this component. spqcc : iterable bytes Quantization value for each sub-band. mantissa, exponent : iterable Defines quantization factors. guard_bits : int Number of guard bits. References ---------- .. [JP2K15444-1i] International Organization for Standardication. ISO/IEC 15444-1:2004 - Information technology -- JPEG 2000 image coding system: Core coding system """ def __init__(self, cqcc, sqcc, spqcc, length, offset): super().__init__(marker_id='QCC') self.cqcc = cqcc self.sqcc = sqcc self.spqcc = spqcc self.length = length self.offset = offset self.mantissa, self.exponent = parse_quantization(self.spqcc, self.sqcc) self.guard_bits = (self.sqcc & 0xe0) >> 5 def __str__(self): msg = Segment.__str__(self) msg += f'\n Associated Component: {self.cqcc}' msg += _print_quantization_style(self.sqcc) msg += f'{self.guard_bits} guard bits' step_size = zip(self.mantissa, self.exponent) msg += '\n Step size: ' + str(list(step_size)) return msg class QCDsegment(Segment): """QCD segment information. Attributes ---------- marker_id : str Identifier for the segment. offset : int Offset of marker segment in bytes from beginning of file. length : int Length of marker segment in bytes. This number does not include the two bytes constituting the marker. sqcd : int Quantization style for all components. spqcd : iterable bytes Quantization step size values (uninterpreted). mantissa, exponent : iterable Defines quantization factors. guard_bits : int Number of guard bits. References ---------- .. [JP2K15444-1i] International Organization for Standardication. ISO/IEC 15444-1:2004 - Information technology -- JPEG 2000 image coding system: Core coding system """ def __init__(self, sqcd, spqcd, length, offset): super().__init__(marker_id='QCD') self.sqcd = sqcd self.spqcd = spqcd self.length = length self.offset = offset mantissa, exponent = parse_quantization(self.spqcd, self.sqcd) self.mantissa = mantissa self.exponent = exponent self.guard_bits = (self.sqcd & 0xe0) >> 5 def __str__(self): msg = Segment.__str__(self) msg += _print_quantization_style(self.sqcd) msg += f'{self.guard_bits} guard bits' step_size = zip(self.mantissa, self.exponent) msg += '\n Step size: ' + str(list(step_size)) return msg class RGNsegment(Segment): """RGN segment information. Attributes ---------- marker_id : str Identifier for the segment. offset : int Offset of marker segment in bytes from beginning of file. length : int Length of marker segment in bytes. This number does not include the two bytes constituting the marker. crgn : int Associated component. srgn : int ROI style. sprgn : int Parameter for ROI style. References ---------- .. [JP2K15444-1i] International Organization for Standardication. ISO/IEC 15444-1:2004 - Information technology -- JPEG 2000 image coding system: Core coding system """ def __init__(self, crgn, srgn, sprgn, length=-1, offset=-1): super().__init__(marker_id='RGN') self.length = length self.offset = offset self.crgn = crgn self.srgn = srgn self.sprgn = sprgn def __str__(self): msg = Segment.__str__(self) msg += ( f'\n Associated component: {self.crgn}' f'\n ROI style: {self.srgn}' f'\n Parameter: {self.sprgn}' ) return msg class SIZsegment(Segment): """Container for SIZ segment information. Attributes ---------- marker_id : str Identifier for the segment. offset : int Offset of marker segment in bytes from beginning of file. length : int Length of marker segment in bytes. This number does not include the two bytes constituting the marker. rsiz : int Capabilities (profile) of codestream. xsiz, ysiz : int Width, height of reference grid. xosiz, yosiz : int Horizontal, vertical offset of reference grid. xtsiz, ytsiz : int Width and height of reference tile with respect to the reference grid. xtosiz, ytosiz : int Horizontal and vertical offsets of tile from origin of reference grid. Csiz : int Number of components in image. bitdepth : iterable bytes Precision (depth) in bits of each component. signed : iterable bool Signedness of each component. xrsiz, yrsiz : int Horizontal and vertical sample separations with respect to reference grid. References ---------- .. [JP2K15444-1i] International Organization for Standardication. ISO/IEC 15444-1:2004 - Information technology -- JPEG 2000 image coding system: Core coding system """ def __init__(self, rsiz=-1, xysiz=None, xyosiz=-1, xytsiz=-1, xytosiz=-1, Csiz=-1, bitdepth=None, signed=None, xyrsiz=-1, length=-1, offset=-1): super().__init__(marker_id='SIZ', length=length, offset=offset) self.rsiz = rsiz self.xsiz, self.ysiz = xysiz self.xosiz, self.yosiz = xyosiz self.xtsiz, self.ytsiz = xytsiz self.xtosiz, self.ytosiz = xytosiz self.Csiz = Csiz self.bitdepth = bitdepth self.signed = signed self.xrsiz, self.yrsiz = xyrsiz # ssiz attribute to be removed in 1.0.0 lst = [] for bitdepth, signed in zip(self.bitdepth, self.signed): if signed: lst.append((bitdepth - 1) | 0x80) else: lst.append(bitdepth - 1) self.ssiz = tuple(lst) def __repr__(self): msg = ( f"glymur.codestream.SIZsegment(" f"rsiz={self.rsiz}, " f"xysiz={(self.xsiz, self.ysiz)}, " f"xyosiz={(self.xosiz, self.yosiz)}, " f"xytsiz={(self.xtsiz, self.ytsiz)}, " f"xytosiz={(self.xtosiz, self.ytosiz)}, " f"Csiz={self.Csiz}, " f"bitdepth={self.bitdepth}, " f"signed={self.signed}, " f"xyrsiz={(self.xrsiz, self.yrsiz)})" ) return msg def __str__(self): msg = Segment.__str__(self) msg += '\n' msg += (' Profile: {profile}\n' ' Reference Grid Height, Width: ({height} x {width})\n' ' Vertical, Horizontal Reference Grid Offset: ' '({goy} x {gox})\n' ' Reference Tile Height, Width: ({tileh} x {tilew})\n' ' Vertical, Horizontal Reference Tile Offset: ' '({toy} x {tox})\n' ' Bitdepth: {bitdepth}\n' ' Signed: {signed}\n' ' Vertical, Horizontal Subsampling: {subsampling}') try: profile = _CAPABILITIES_DISPLAY[self.rsiz] except KeyError: profile = '{rsiz} (invalid)'.format(rsiz=self.rsiz) msg = msg.format(profile=profile, height=self.ysiz, width=self.xsiz, goy=self.yosiz, gox=self.xosiz, tileh=self.ytsiz, tilew=self.xtsiz, toy=self.ytosiz, tox=self.xtosiz, bitdepth=self.bitdepth, signed=self.signed, subsampling=tuple(zip(self.yrsiz, self.xrsiz))) return msg class SOCsegment(Segment): """SOC segment information. Attributes ---------- marker_id : str Identifier for the segment. offset : int Offset of marker segment in bytes from beginning of file. length : int Length of marker segment in bytes. This number does not include the two bytes constituting the marker, making the length for this marker segment to be zero. References ---------- .. [JP2K15444-1i] International Organization for Standardication. ISO/IEC 15444-1:2004 - Information technology -- JPEG 2000 image coding system: Core coding system """ def __init__(self, **kwargs): super().__init__(marker_id='SOC') self.__dict__.update(**kwargs) def __repr__(self): msg = "glymur.codestream.SOCsegment()" return msg class SODsegment(Segment): """Container for Start of Data (SOD) segment information. Attributes ---------- marker_id : str Identifier for the segment. offset : int Offset of marker segment in bytes from beginning of file. length : int Length of marker segment in bytes. This number does not include the two bytes constituting the marker, making the length for this marker segment to be zero. References ---------- .. [JP2K15444-1i] International Organization for Standardication. ISO/IEC 15444-1:2004 - Information technology -- JPEG 2000 image coding system: Core coding system """ def __init__(self, length, offset): super().__init__(marker_id='SOD') self.length = length self.offset = offset class EPHsegment(Segment): """Container for End of Packet (EPH) header information. Attributes ---------- marker_id : str Identifier for the segment. offset : int Offset of marker segment in bytes from beginning of file. length : int Length of marker segment in bytes. This number does not include the two bytes constituting the marker, making the length for this marker segment to be zero. References ---------- .. [JP2K15444-1i] International Organization for Standardication. ISO/IEC 15444-1:2004 - Information technology -- JPEG 2000 image coding system: Core coding system """ def __init__(self, length, offset): super().__init__(marker_id='EPH') self.length = length self.offset = offset class SOPsegment(Segment): """Container for Start of Packet (SOP) segment information. Attributes ---------- marker_id : str Identifier for the segment. offset : int Offset of marker segment in bytes from beginning of file. length : int Length of marker segment in bytes. This number does not include the two bytes constituting the marker. nsop : int Packet sequence number. References ---------- .. [JP2K15444-1i] International Organization for Standardication. ISO/IEC 15444-1:2004 - Information technology -- JPEG 2000 image coding system: Core coding system """ def __init__(self, nsop, length, offset): super().__init__(marker_id='SOP') self.nsop = nsop self.length = length self.offset = offset def __str__(self): msg = Segment.__str__(self) msg += f'\n Nsop: {self.nsop}' return msg class SOTsegment(Segment): """Container for Start of Tile (SOT) segment information. Attributes ---------- marker_id : str Identifier for the segment. offset : int Offset of marker segment in bytes from beginning of file. length : int Length of marker segment in bytes. This number does not include the two bytes constituting the marker. isot : int Index of this particular tile. psot : int Length, in bytes, from first byte of this SOT marker segment to the end of the data of that tile part. tpsot : int Tile part instance. tnsot : int Number of tile-parts of a tile in codestream. References ---------- .. [JP2K15444-1i] International Organization for Standardication. ISO/IEC 15444-1:2004 - Information technology -- JPEG 2000 image coding system: Core coding system """ def __init__(self, isot, psot, tpsot, tnsot, length=-1, offset=-1): super().__init__(marker_id='SOT') self.isot = isot self.psot = psot self.tpsot = tpsot self.tnsot = tnsot self.length = length self.offset = offset def __str__(self): msg = Segment.__str__(self) msg += ( f'\n Tile part index: {self.isot}' f'\n Tile part length: {self.psot}' f'\n Tile part instance: {self.tpsot}' f'\n Number of tile parts: {self.tnsot}' ) return msg class TLMsegment(Segment): """Container for TLM segment information. Attributes ---------- marker_id : str Identifier for the segment. offset : int Offset of marker segment in bytes from beginning of file. length : int Length of marker segment in bytes. This number does not include the two bytes constituting the marker. ztlm : int index relative to other TML marksers ttlm : int number of the ith tile-part ptlm : int length in bytes from beginning of the SOT marker of the ith tile-part to the end of the data for that tile part References ---------- .. [JP2K15444-1i] International Organization for Standardication. ISO/IEC 15444-1:2004 - Information technology -- JPEG 2000 image coding system: Core coding system """ def __init__(self, ztlm, ttlm, ptlm, length, offset): super().__init__(marker_id='TLM') self.length = length self.offset = offset self.ztlm = ztlm self.ttlm = ttlm self.ptlm = ptlm def __str__(self): msg = Segment.__str__(self) msg += ( f'\n Index: {self.ztlm}' f'\n Tile number: {self.ttlm}' f'\n Length: {self.ptlm}' ) return msg def _parse_precinct_size(spcod): """Compute precinct size from SPcod or SPcoc.""" spcod = np.frombuffer(spcod, dtype=np.uint8) precinct_size = [] for item in spcod: ep2 = (item & 0xF0) >> 4 ep1 = item & 0x0F precinct_size.append((2 ** ep1, 2 ** ep2)) return tuple(precinct_size) def _context_string(context): """Produce a string to represent the code block context""" msg = 'Code block context:\n ' lines = ['Selective arithmetic coding bypass: {0}', 'Reset context probabilities on coding pass boundaries: {1}', 'Termination on each coding pass: {2}', 'Vertically stripe causal context: {3}', 'Predictable termination: {4}', 'Segmentation symbols: {5}'] msg += '\n '.join(lines) msg = msg.format(((context & 0x01) > 0), ((context & 0x02) > 0), ((context & 0x04) > 0), ((context & 0x08) > 0), ((context & 0x10) > 0), ((context & 0x20) > 0)) return msg def parse_quantization(read_buffer, sqcd): """Tease out the quantization values. Parameters ---------- read_buffer: sequence of bytes from the QCC and QCD segments. Returns ------ tuple Mantissa and exponents from quantization buffer. """ numbytes = len(read_buffer) exponent = [] mantissa = [] if sqcd & 0x1f == 0: # no quantization data = struct.unpack('>' + 'B' * numbytes, read_buffer) for j in range(len(data)): exponent.append(data[j] >> 3) mantissa.append(0) else: fmt = '>' + 'H' * int(numbytes / 2) data = struct.unpack(fmt, read_buffer) for j in range(len(data)): exponent.append(data[j] >> 11) mantissa.append(data[j] & 0x07ff) return mantissa, exponent def _print_quantization_style(sqcc): """Only to be used with QCC and QCD segments.""" msg = '\n Quantization style: ' if sqcc & 0x1f == 0: msg += 'no quantization, ' elif sqcc & 0x1f == 1: msg += 'scalar implicit, ' elif sqcc & 0x1f == 2: msg += 'scalar explicit, ' return msg glymur-0.9.1/glymur/command_line.py000066400000000000000000000047131360775562100173770ustar00rootroot00000000000000""" Entry point for console script jp2dump. """ # Standard library imports ... import argparse import pathlib import warnings # Local imports ... from . import Jp2k, set_option, lib def main(): """ Entry point for console script jp2dump. """ kwargs = {'description': 'Print JPEG2000 metadata.', 'formatter_class': argparse.ArgumentDefaultsHelpFormatter} parser = argparse.ArgumentParser(**kwargs) parser.add_argument('-x', '--noxml', help='suppress XML', action='store_true') parser.add_argument('-s', '--short', help='only print box id, offset, and length', action='store_true') chelp = 'Level of codestream information. 0 suppresses all details, ' chelp += '1 prints the main header, 2 prints the full codestream.' parser.add_argument('-c', '--codestream', help=chelp, metavar='LEVEL', nargs=1, type=int, default=[1]) parser.add_argument('filename') args = parser.parse_args() if args.noxml: set_option('print.xml', False) if args.short: set_option('print.short', True) codestream_level = args.codestream[0] if codestream_level not in [0, 1, 2]: raise ValueError("Invalid level of codestream information specified.") if codestream_level == 0: set_option('print.codestream', False) elif codestream_level == 2: set_option('parse.full_codestream', True) path = pathlib.Path(args.filename) # JP2 metadata can be extensive, so don't print any warnings until we # are done with the metadata. with warnings.catch_warnings(record=True) as wctx: jp2 = Jp2k(path) if jp2._codec_format == lib.openjp2.CODEC_J2K: if codestream_level == 0: print(f'File: {path.name}') elif codestream_level == 1: print(jp2) elif codestream_level == 2: print(f'File: {path.name}') print(jp2.get_codestream(header_only=False)) else: print(jp2) # Now re-emit any suppressed warnings. if len(wctx) > 0: print("\n") for warning in wctx: print( f"{warning.filename}:{warning.lineno}: " f"{warning.category.__name__}: {warning.message}" ) glymur-0.9.1/glymur/config.py000066400000000000000000000121601360775562100162120ustar00rootroot00000000000000""" Configure glymur to use installed libraries if possible. """ from configparser import ConfigParser, NoOptionError, NoSectionError import ctypes from ctypes.util import find_library import os import pathlib import platform import sys import warnings def glymurrc_fname(): """Return the path to the configuration file. Search order: 1) current working directory 2) environ var XDG_CONFIG_HOME 3) $HOME/.config/glymur/glymurrc """ # Current directory. path = pathlib.Path.cwd() / 'glymurrc' if path.exists(): return path confdir_path = get_configdir() if confdir_path is not None: path = confdir_path / 'glymurrc' if path.exists(): return path # didn't find a configuration file. return None def _determine_full_path(libname): """ Try to determine the path to the openjp2 library. Parameters ---------- libname : str Short name for library (openjp2). Returns ------- Path to openjp2 library. """ # A location specified by the glymur configuration file has precedence. path = read_config_file(libname) if path is not None: return path # No joy on configuration file. # Are we using Anaconda? if ( 'Anaconda' in sys.version or 'Continuum Analytics, Inc.' in sys.version or 'packaged by conda-forge' in sys.version ): # If Anaconda, then openjpeg may have been installed via conda. if platform.system() in ['Linux', 'Darwin']: suffix = '.so' if platform.system() == 'Linux' else '.dylib' basedir = pathlib.Path(sys.executable).parents[1] path = basedir / 'lib' / ('lib' + libname + suffix) elif platform.system() == 'Windows': basedir = pathlib.Path(sys.executable).parents[0] path = basedir / 'Library' / 'bin' / (libname + '.dll') return path # No joy on config file or Anaconda. # MacPorts? path = pathlib.Path('/opt/local/lib/libopenjp2.dylib') if platform.system() == 'Darwin' and path.exists(): return path # No joy on config file or Anaconda or macports. # Cygwin? g = pathlib.Path('/usr/bin').glob('cygopenjp2*.dll') try: path = list(g)[0] except IndexError: # If the generator is None... probably not on cygwin. # Try something else. pass else: if platform.system().startswith('CYGWIN') and path.exists(): return path # No joy on config file, not Anaconda or MacPorts or Cygwin. # Can ctypes find it anyway? path = find_library(libname) if path is not None: return pathlib.Path(path) else: return None def read_config_file(libname): """ Extract library locations from a configuration file. Parameters ---------- libname : str One of either 'openjp2' or 'openjpeg' Returns ------- path : None or path None if no location is specified, otherwise a path to the library """ filename = glymurrc_fname() if filename is None: # There's no library file path to return in this case. return None # Read the configuration file for the library location. parser = ConfigParser() parser.read(filename) try: path = parser.get('library', libname) except (NoOptionError, NoSectionError): path = None else: # Turn it into a pathlib object. path = pathlib.Path(path) return path def glymur_config(): """ Try to ascertain locations of openjp2 library. Returns ------- tuple tuple of library handles """ libname = 'openjp2' path = _determine_full_path(libname) if path is None or path in ['None', 'none']: # Either could not find a library via ctypes or # user-configuration-file, or we could not find it in any of the # default locations, or possibly the user intentionally does not want # one of the libraries to load. return None loader = ctypes.windll.LoadLibrary if os.name == 'nt' else ctypes.CDLL try: opj_lib = loader(path) except TypeError: # This can happen on Windows. Apparently ctypes.windll.LoadLibrary # is no longer taking a WindowsPath path = str(path) opj_lib = loader(path) except OSError: msg = f'The {libname} library at {path} could not be loaded.' warnings.warn(msg, UserWarning) opj_lib = None return opj_lib def get_configdir(): """Return string representing the configuration directory. Default is $HOME/.config/glymur. You can override this with the XDG_CONFIG_HOME environment variable. """ if 'XDG_CONFIG_HOME' in os.environ: return pathlib.Path(os.environ['XDG_CONFIG_HOME']) / 'glymur' if 'HOME' in os.environ and platform.system() != 'Windows': # HOME is set by WinPython to something unusual, so we don't # necessarily want that. return pathlib.Path(os.environ['HOME']) / '.config' / 'glymur' # Last stand. Should handle windows... others? return pathlib.Path.home() / 'glymur' glymur-0.9.1/glymur/core.py000066400000000000000000000070671360775562100157070ustar00rootroot00000000000000"""Core definitions to be shared amongst the modules. """ # Progression order LRCP = 0 RLCP = 1 RPCL = 2 PCRL = 3 CPRL = 4 STD = 0 CINEMA2K = 3 CINEMA4K = 4 RSIZ = { 'STD': STD, 'CINEMA2K': CINEMA2K, 'CINEMA4K': CINEMA4K } OFF = 0 CINEMA2K_24 = 1 CINEMA2K_48 = 2 CINEMA4K_24 = 3 OPJ_OFF = 0 # Not Digital Cinema OPJ_CINEMA2K_24 = 1 # 2K Digital Cinema at 24 fps OPJ_CINEMA2K_48 = 2 # 2K Digital Cinema at 48 fps OPJ_CINEMA4K_24 = 3 # 4K Digital Cinema at 24 fps # no profile, conform to 15444-1 OPJ_PROFILE_NONE = 0x0000 # Profile 0 as described in 15444-1,Table A.45 OPJ_PROFILE_0 = 0x0001 # Profile 1 as described in 15444-1,Table A.45 OPJ_PROFILE_1 = 0x0002 # At least 1 extension defined in 15444-2 (Part-2) OPJ_PROFILE_PART2 = 0x8000 # 2K cinema profile defined in 15444-1 AMD1 OPJ_PROFILE_CINEMA_2K = 0x0003 # 4K cinema profile defined in 15444-1 AMD1 OPJ_PROFILE_CINEMA_4K = 0x0004 # Scalable 2K cinema profile defined in 15444-1 AMD2 OPJ_PROFILE_CINEMA_S2K = 0x0005 # Scalable 4K cinema profile defined in 15444-1 AMD2 OPJ_PROFILE_CINEMA_S4K = 0x0006 # Long term storage cinema profile defined in 15444-1 AMD2 OPJ_PROFILE_CINEMA_LTS = 0x0007 # Single Tile Broadcast profile defined in 15444-1 AMD3 OPJ_PROFILE_BC_SINGLE = 0x0100 # Multi Tile Broadcast profile defined in 15444-1 AMD3 OPJ_PROFILE_BC_MULTI = 0x0200 # Multi Tile Reversible Broadcast profile defined in 15444-1 AMD3 OPJ_PROFILE_BC_MULTI_R = 0x0300 # 2K Single Tile Lossy IMF profile defined in 15444-1 AMD 8 OPJ_PROFILE_IMF_2K = 0x0400 # 4K Single Tile Lossy IMF profile defined in 15444-1 AMD 8 OPJ_PROFILE_IMF_4K = 0x0401 # 8K Single Tile Lossy IMF profile defined in 15444-1 AMD 8 OPJ_PROFILE_IMF_8K = 0x0402 # 2K Single/Multi Tile Reversible IMF profile defined in 15444-1 AMD 8 OPJ_PROFILE_IMF_2K_R = 0x0403 # 4K Single/Multi Tile Reversible IMF profile defined in 15444-1 AMD 8 OPJ_PROFILE_IMF_4K_R = 0x0800 # 8K Single/Multi Tile Reversible IMF profile defined in 15444-1 AMD 8 OPJ_PROFILE_IMF_8K_R = 0x0801 # JPEG 2000 codestream and component size limits in cinema profiles # # Maximum codestream length for 24fps OPJ_CINEMA_24_CS = 1302083 # Maximum codestream length for 48fps OPJ_CINEMA_48_CS = 651041 # Maximum size per color component for 2K & 4K @ 24fps OPJ_CINEMA_24_COMP = 1041666 # Maximum size per color component for 2K @ 48fps OPJ_CINEMA_48_COMP = 520833 PROGRESSION_ORDER = { 'LRCP': LRCP, 'RLCP': RLCP, 'RPCL': RPCL, 'PCRL': PCRL, 'CPRL': CPRL } WAVELET_XFORM_9X7_IRREVERSIBLE = 0 WAVELET_XFORM_5X3_REVERSIBLE = 1 ENUMERATED_COLORSPACE = 1 RESTRICTED_ICC_PROFILE = 2 ANY_ICC_PROFILE = 3 VENDOR_COLOR_METHOD = 4 # Registration values for comment markers. RCME_BINARY = 0 # binary value comments RCME_ISO_8859_1 = 1 # comments in latin-1 codec # enumerated colorspaces CMYK = 12 SRGB = 16 GREYSCALE = 17 YCC = 18 E_SRGB = 20 ROMM_RGB = 21 _COLORSPACE_MAP_DISPLAY = { CMYK: 'CMYK', SRGB: 'sRGB', GREYSCALE: 'greyscale', YCC: 'YCC', E_SRGB: 'e-sRGB', ROMM_RGB: 'ROMM-RGB', } # enumerated color channel types COLOR = 0 OPACITY = 1 PRE_MULTIPLIED_OPACITY = 2 _UNSPECIFIED = 65535 _COLOR_TYPE_MAP_DISPLAY = { COLOR: 'color', OPACITY: 'opacity', PRE_MULTIPLIED_OPACITY: 'pre-multiplied opacity', _UNSPECIFIED: 'unspecified', } # color channel definitions. RED = 1 GREEN = 2 BLUE = 3 GREY = 1 WHOLE_IMAGE = 0 # enumerated color channel associations _COLORSPACE = { SRGB: {"R": 1, "G": 2, "B": 3}, GREYSCALE: {"Y": 1}, YCC: {"Y": 1, "Cb": 2, "Cr": 3}, E_SRGB: {"R": 1, "G": 2, "B": 3}, ROMM_RGB: {"R": 1, "G": 2, "B": 3}, } glymur-0.9.1/glymur/data/000077500000000000000000000000001360775562100153045ustar00rootroot00000000000000glymur-0.9.1/glymur/data/__init__.py000066400000000000000000000020041360775562100174110ustar00rootroot00000000000000"""Shipping JPEG 2000 files. These include: nemo.jp2: converted from the original JPEG photo of the aftermath of NEMO, the nor'easter that shutdown Boston in February of 2013. goodstuff.j2k: my favorite bevorage. """ import pkg_resources def nemo(): """Shortcut for specifying path to nemo.jp2. Returns ------- file : str Platform-independent path to nemo.jp2. """ filename = pkg_resources.resource_filename(__name__, "nemo.jp2") return filename def goodstuff(): """Shortcut for specifying path to goodstuff.j2k. Returns ------- file : str Platform-independent path to goodstuff.j2k. """ filename = pkg_resources.resource_filename(__name__, "goodstuff.j2k") return filename def jpxfile(): """Shortcut for specifying path to heliov.jpx. Returns ------- file : str Platform-independent path to 12-v6.4.jpx """ filename = pkg_resources.resource_filename(__name__, "heliov.jpx") return filename glymur-0.9.1/glymur/data/goodstuff.j2k000066400000000000000000003410241360775562100177200ustar00rootroot00000000000000OQ/  R \@@HHPHHPHHPHHPHHP S ]@@HHPHHPHHPHHPHHPS ]@@HHPHHPHHPHHPHHP~D%Bg\]zH+DiT >ٟkGOH<2_c;?@e8\)P#XRU%e/_'.W\EK\hyNն)/;)i̦hɅ:B0UzGs gBIoJp硁p T-fdhҋǭ '.X&^CX-YWc`?/õWiIJ$K!D߾ce/3#'ŹèLPx-ՋsNdڂ^5fx46S,odtL!{<} $hTƢkvX,Ӵ]>SvGW-yxE/QHͯN%ɰ- L6V3*z/݄O6 sSLC}HO΍Uy0 tP1j>bƫzr|?T3A2qZhbLQjj :c],qRww 1" Ξtz^g,?}DچYZE7U yxCJXl`FZW@1(YUvF/gJaD7v*z%H|֘Y%~%M@]wN[+m2kڔM1lrB}Fx  鹹UO1u-IWc=W]i'J(J<, T Zqfr ЗC=qLz?~FTPϽ-;*wq΄D"y)d ɞC=+ ϿF'ᢑM+>QǗBѮ+Lzj#5;Ȃ4$gJmzPP}L9ͤSP+ynu%J "Pax#A wqYvgRZve79Yr͌q]OD3KbAhJ}9IM8feObխVhI Pz^#15lS1n7r@q.P)c>{2TeIד)Ld-+DmN7VGЂvQWuNR\fxհ fف< tyh ѩ{hrlb!x =t edMaA7=\2W(/{Prf/X4n~$X䧓9ݪ%JcJkm*0d<1*_Gla^䀄1!n:Cū<G'J 0 %=h>uՙ"7r=U4d6Α{!6:'W*rXvQa$'5~r\R=\Rb'(d7INZdC~.@l0A:ٲăԨN\8~rºyТΒ$b&kGn,etI9F,@S^y #?؝Pl};ʹ9aJ"mޞ$MSAg«s8Ro8ℸvخ_ əߏRIBUFcfjzge8I Fz1dJ2 .yC cOyʵsXgt쌼MxFsd H}kMT_HdL01d=Fh[5bt"BnUpY-ĞQD!2'bW)YIgmJ6idž)Y/hԱ1-c ]8&LF.Ղax!Lj_W}Yr?$(iosn?FMdٚ]djh݌9p%x?R{~͖|'9Tמb\Hع#r$rK.v ЋcJ[1dO_IAœk&}ԁM;]U˻[4)y 7vG:Ԗ$a-t ĭK |SI0vU̗vſi< ^62RE<uK#D- Ii!\;#ޟES&vlr&_O6/92,_u(HAS~]E3 Tsg!Cf%È~4!&_=؅ 6J᷁ Vң SqAސ׷ *'-v[z9LF@_OKć: &>{Rn( KGb 3m |=ʊx%-U著ˉ 拇o03c$g9"6GSʚ9L3:SӬWEE}6/eW-Lz @Sa+Sݢ'XeR3¨Zy~zb+,Ukd5Q44)6J쪢#k(@P4\&g\xc Z`1=B >L.rČZfB&$rv4 F}#1mr~,Dt䔶X|7SS<+#[ 4 a_/CVZ$YS^nYAn)}-/+Ym%bӟS:d2 h7ú)we00W\Bm>싉%2]/苢qٵ̉,5y]@rG99--Gd U=?iv&,g144 hq07AGɅp{5c8~}Bzu,4i ebqdiHur u[!p>k8}ۋ7:$t<٧yKwYێw6LpRZ>ȇpxGSt "7Y2xg/S L?@Y HSznN$;v)d-WP#c;[1˶4KhE03,5O;8GIT̗yҽQ߁n@q_iކH!am>_GYiz5"cej5v̉yĈO8s(W_D [~<[,nv' "ADV&% 5)f)I ɢz՘FDŁʥF`7q_r=~ 3}Nx`N3HeHɷo5I] {u ylԼGeZJ6|O՟{|t HO7e!sMq"i*}G[iE7}梀-2%`,4zk'#,nVΕei-F6Mjˆe.P4h\2X }*+8˩0_d8ůqrvX!Kūުs{dv1ɽz,Ͻbұ. pZM` HpuawB9aOd_:Q7IYUݜh1'>[<ܧm'N~}u:ZCԬ sU (Θ{}SK!^HB?Hkp1}%D@f\[HGE/swM#; 3{r2JݘF' fL[ 1&[>Xv*0HTWĆ"e% A?P$PO m^|} 揧3^6 4f'{^͇!s0ߚP6lLCCf5Rߒ2|F{J%Qf_@ef'nG£PQVtϙ\U\9co]y昩H)Ѵb* xn+k q3s 6+ŋHW lZ 2x}Mݩc,ʖɸcknWYܮKEhKC,fHz,O*2.YK0@9f5>!"YjlY} [ÎFCn4Ȥi Tpf'0 !xRhzY*)$}(FTJDAݎ>^<< uhh)De^?5HbR7q(軞?|<avI㏉YiRԠߣY@?Vo?3&:lijĩqt} \ w'Ä&@TKM0HƮ!{~SdA,K!!fs޵=2`d_S;^ Y4}zPWeDی q-LHu &83$DY09C]qnN#`\ևDd= ȇQh{EgeB 3gan w\Do$[ӑ^\wuy +Ыt:ϼ}JIp%poꯤl;{I?c9CPcks zJר'O=׾~fKPg|PW@ŧAmBrSYe aGe*NojvQ9wz^#-H6[Y6vgX\/bH>SLp5F= e˵蹎wڢ? __> ڞK Ҥ8b-rԽu1FP'De~2Y;t"i+1GW{v;D>lt[רBY 1c­\Ю@%_TޢP79woP<=껊zt? G*T~ȷz%r_nтqC=+e +JZ'baxkIvzQ’_=c~+܌b51f!Ԗ$з!dyJ#?Yyۑ@тXvNj,Wck5}s`)f :1m2tq+6l)5]*&rICHjUw XdzP_'<.h si0[ᅉ']T9%+n%'k(`765L*kθ)/`e(yH] 0#Np$ݚEO)q(FkI$A#loNZIɮgdxkU^֨ ku$^A_Ö;ʽF0rhQ+&`:P(]F(h{W>C_VYTU>e_!UYuY8Wϥ>5Lg,3FFwh8Jk*:j;nj)HQun.{, R@n6YkҠH0vO*@%Rl+珪1e-ʼ>I{ў?.VT3 +[ORMKzG+C6&)۹4E{NO"[ ;.ҒhvXg5f#nnfI,)6xh_8\ByjW٥OY^z&iÐQ:8a82m&#L\}GGf⩸Wx.ikod} ajBb!1s&R<2}&4slt[OŴR$"ҁo{6eMhy3] 6<)U/3^ZvwIu حЀ~Fڱ @{awb%di)B=OO7Xt/(*ʒ/#?r|l6I5dVdXɆ R_J\YaURDh.Bd~l;(,*]c2;B|5>s JU|hdoĘ^5 ">Y[cj➷]P7MPİd;Z?bZ ]%)eǝxz/%!hkk>lපˤ9cDV ki0EGoy(fzD.98o{ؙ'Duk-xUX8p5 NݪfruMdk`<|)@{liPlpƀO"f^5<4Ϧ'S~Q d!?O8k}5PTt>$f+L.J=3J'2UڃUƮQEr^?9ZVG#g(M{%%[Y$=5u&\l̼IHwޖqSRCɊDs؅5mTW"󪉼DŐtqp)aVWQc`*@̿V3:}@sOP!/ =k ya.XHk@!J~TfдkoW"#RWKLP*s ?x`[{eJ-?)M86oY ?+k." [Fbi-=3rl6 GqJ3zF]]v7ə*\)E^ByBخkQe)Rّm7lFj1(Wc~~QS+ 3 }],PaET| Av-^8 .m#p#y改|~Ί7X<5#* *8 酰UT+jʩf0I;gl;x3%F{O~b*7ϲB(̴U <Ǻ׮*P@˷Զh$E1)j,wudQ^-JgjrVBbA[ ibL@!pN{;7elk3(@u) }?·v9W+E~K Ú lЭYл@+<a =ƍ5ԺjӃuJ8 C=˸UW`mp,otwYe+w}:;˃Y@Q`X-y08bMQ֮D (b{7ru o"!"'%Z9 _qCFZMqTM_E;RQ-մg=i3JݾsNgioFL+6-sBR LSZɤ@M#%[mCE.X26G- n_f[}^G)XL{;}`[ƭA!O ˝IEvh]XXfi/4馢i=QC>Gؽ3e CE;d[݇ >'%duԍs0v.cNIU{/uN.#Ԍ~vD FfgN.}Fj[f0$dORp$0`FŹ[8壪GXrdxtv)5L+6,t?LF\M/`윭ƿR}dU[)@aPW;g,>: JI -Rek2~h ᅣMH/; H aNPؚ g`ǾkI`RegJ'. P:$ߞX10|Q9b'>+תz_Hhԉ"ą0(2"` Ӱ{e'b 6ٲy؇_ҫ&i;#5Ǒk mExNB"1\;(a_QhlxǮDBj68iWԷCceAPrOb?!#SԞE3u'bc2iة9̄bP B9`m7 PM C)AE\kBG\Gz,qJ"_x?o"0WGWOJYl\BP8t@Sv)#&{3\78KFj!=F ńbjDaqm%7!M_ F\(7uفǴKwG RjM_FՐ3]-ǞRzsu6>}Y)~)hƹz&۪ \V7r PXc[&lZvǧt &S8Gڬ-Ε1PZXm1XF,|N,K\$Z拶x_A+cE$v"rL *E~fX:`H-³*|%#3hM Mi"N7ZvF|IO4$T<%ѐs!stpxdAqidd1% iF5l]#j$Ϣ!ϹyH.ݎ:}l{AӘr3֘s$Ef0q`)ZI+:,ry/ͽ\~wD="3) Vm*zRV`x[7Ls3Z!(S@iյĠӽŪH/o>ٛB 9LzVuT._h+w.t7:K(,'bG贕XPQ@ߩdBʭ, C3v~"_wE k$Lu/Oo I¯$Kᅼujcy#,.=#6h;ӿsDfHiaV RgA-haK=Q.4ٝűm2-geck}+YgB:EK/ꥆf%A:ݒJ̓uӏOj=8n1:@> {R@Tל۴8<&X~X_dys9wYmnU2ٳ`7^s*qct76{j=ݕ֋U1ĖvEF6V/ǙH+_zw+U!.>T >P"z%ƫzn4kmGwYCD/2W ܮ1nO_Dewou?v!vkm{VIĖ-eBD ~@AL!oP3Ƕ7L֧1{iZr /6HbX6X|qM(S;ЃM{3sf _w]ka¦~+LCd3IpD|@"{cBM/RUrR%<}sN0ha#!D\rikk^#Dz͆";0)Gb0ʹ$I*7̶?vo,wVlXt + j{eUG3"׈˾ǑZA/ d\@K=cdffZ,V~;4<`GX'ת~aK~=W _Ha]Rޱ@1%9$⩨zK+kbĜp|' ƟU㮤m6un 0Juτ"RC$#b&k6|bh`ryW#Nb+҄Mbx*³y@:ś&NS[B!L~Q`|/p^'ˬ⌵!+ ;CelsP~3,ș ﰠTYE!ǿ*&z7n{z;pШ74/NǞBOJR<^;/7fݠdƣ'.V(ql/Y,Q6챇etH1|1fxe*;'cPI@B&L #{7EX~DT}bӓ`]R "a$ّ[ݨLEӽ钧rǟPpf1w! $@"H0Ua5jbz/\ؓwN<-{wm/Y<ʄpo>c, [dt m4ap+A$=K/^PpUjTt+QԚ]+%j?T6@Òq0fi>vj'Z1J@:L(uz4,/ r]9J2x ZG۴r# -,N~Vhtt6pW?W^m-&KU>殯D,bzܺ,6εn~mÀ1sQ%Nn0 ԉTBH穩nk ]K&]b?UgU_-#|>LװPu*R7߻~*$L ySkizguGUM[y$9M,g( ,,%ag%Ӎ3z+Ά.2uIZ| p5?׵q{r7mY_d,wlYnmmHRteu)L/+EWs_)-۠KD] ٔ:=EΨ";ɡ#eTSƐ&M~Au΋1_h"!9&HKh:B 4 z-Pο Ja8et]82y. .M&vSeʃ'.b]}BH( yy/'mxHB_H8Ba( 1_0@E4wS+)75%g̬- wIFՓF)/~_6LաK8 Aj<B$j83\t3xS'9$mi^kabQm;iKd 3*n+y[Ic J0P|F#N奰r%n$j<yu?2F@H1 N꾠Ģ Tǐ[@X>xpLD,>G.;O?S?>IVuWO Tv:N~b4)cUaO`力3^FeB5aOxְqDxdJZ33ΧyB0䷥HE:%캷 8Vfn4C J1@i n0){|$?hѵ[ c=Eɇܓ'L_~1%nzwy7 n65PY#Lpί~Ż<-L~KqT8̵ O|:Gy0tڎbstAR6c8 \D&9SQo\Zgx}R@hvݤ~ bG[+".Afn;iq֝'y);|4 GBz=¸C9"N`Tai5bSX =z>%r5{!OrS0xc^8yr[6\#m拄\=qI4Y=T|w`ŀߘR/Ӯnjh7q;[I dhjE @_-\ehQ>1j@|Z0w@Ytٯ.fo;!T~OCmtڃEgtkIYu<|PoH|U3R&+U{Z>,y0!)j/RM >v.HMǎ/2kZ|d؅xWꌴY$9$}ףz€Cf,D۳ 1d;aYzښ:[[ܡ葉[~-rDGdϝ2^iL i%I`FTX#Utw=vLSpX3ZSeȕ BKxx"~.N~}5 %Egڢ|9uˑI۟_/v_H[; f÷%Ԗ䕥K 8bSm9CEǨzwt,G,ܯ$O( Qo uFT,p+RZf'3lvJm;ػ/1vNyb|ӹapeWuܴfՠ8$fT{hI84f9OXYbHu>(ޤW5sߟ{h,4"Nkj6\Nj m'-2kῷ8F|;J4wͨT=7p{ZZDԻxýrλz3u1js]*%ZD(B.4'cKc4͇IVqr3hí@[nTX`ħ7܍CIտ_t31|&#x#b8ҙKcK368BʑfE 偨+)ƃz T$Ъύ֔Y+hIAUMD_r9gѭMxKJlb!ߖ~,#pshObqK :bыuԐmf:i0o #s0n-4[5%NY'cQ3dljhp hky?9{>"R!D΁<4j|bˀ6`*#+~Guh#~61&>0t#n=Qef%tH-uA \?Dhe Cifrj1`*@ NJCF^RfUL#Yrvm_|Cs1x8ɫ|4|!{6~~XBba4*jDyj=\{ɘ'YsfE^K"CB<頃nE12g0}L)vI"k|B[aBqXse 0UlGt䩵&q%6̝]K(o~v-eD]7TKbKk c%ǤI " =@!>_1j?<9(Y(+{UF_MPe7 1HT$>9zup׀_JEencq$t>! k cR׽[mQ< cfrq\P6b{`)nqySʘTblkf|m^>*HQqu°~+ToDAٷ$HF{0QTܥCFR Xf ҉[-I{/je M=[i5 į*~|-HAKނ|uE3׏1cLKe GRh vQuaL+9#W6Q6Яta#vjXk'04ny+m}Lɔ/V[ycm¸g+xH>7b@Bf/piI<@N7/= OT4pA+kY.,I'bJQ"Y?,cWʳ|?t(bݺKFŦGK(gh13^5lV*. ]9>>>}́TEbZ9Y-Ywx5~e4zсĞkf7B$ HTg) v\,K0gP[vߣ]5QE.pDeSh݅+m)'nIJww~q 5Zcir%Ur>?{ryj#1}Bv)2I,nM:S]!bB&x 9FcЛO{xg 7+1{űPy؋ +aQ[KMMG-+-B.ⰚbEB+dYS/*uָ)6(.$riTuf"V-,o) [s/Ӆ|j|F[.YEmH7/V~N#u-YԦv1?_ xa'ha.˳#.x0,vGM̈;ylGuFs#͘h-kgsi)~Y|4AлWD!dsX[MbO4MT, &-.:jc2JD?yLzLwuj`'^0Srl7p B9a%QEp2M|\|Ag~|;|=fդYfDݒga,Es+TjP <@YȡܮჃaW2}@ 3VJWiOgg++7N 98@jLL059V+bHBe7̹}NmZpi`]{935C֡1ghZoua83 ~\?=hR^jRYq&a+84oF`02dCCT&k:^MI]x_jZp B9E髐&J)'霰|k 1jz g_M)Ԛ{)}z2\ãqB%{TBx+ҘBk+ִ9Hh=Ol0nC{߸O|6)c=dJё:A^z$x+誒FV x5;l#ә2->^˿bg_~\[?V |7Pt7t|޽J!=s}k4UKz?k25氨F9/b-w흳'8IV&r/YkvD2_q:;/^VYCL'璌+(bUiF1 'ο^iha ek/WɨG!,s8Gc9#uvZbdjQ6d}>.=(Mx )8M>5Us1qaҌ; ~iruU)ґgʜTH~MHy*vwW 3c[Jrh\Yes\s+awN񥌚'țbƇ}KkPy Ub(8;$_kY,A5LvĹL_ ;h43E+XyFbDf ^߱cZ(@ϜeU ?PmőP.:(d(,(n'Pnn"$)zb7 ow\/6DbQq^x<@PU-S.QFNu>V?O0%Nw>dQ^pcRBLp$軕qy=(pCx& ,Ѫ+ZFVePEI7.8e+6Ce`XƱ}(N`ކC^րw=/>FBJgsbn7Uo>zߵ5|-=9ʱ)\|7iDQ烱ɱ]ѻ.ksjzoS˽M5'@~r%9d~ADriǂy QDZdA% QɵTh=ׁBqrUcֿ9.:B hY EL|KKmM5  R41m 76]..}AWz2T2y`CQf˶cT  ύUB $H8@TҮ@岟:%-5h,_t\SPyI2&eF ddh/FM1dfydJ4 aObb{`H m X,J;lM43٢\!2Hp 8 fG7+xSoA+//HA~_X$8dθzgs, HIi>PkEmT>ۈkNe4vA+a|knv)"ǶLsK#,҃W7WJ4 `) yRFYEJ/᥵7Z}L:i:@d"*_P[*Y1^(Y0.IoBOlPl(݉q/*BCI!{)|a`}"9cqqhrγdk6F_K*$ ynZ,#ð2뗶dDAlvZƌ^\L{BLW82FܥF?4r2dt9Q5Ώՙq]gk*\w53*d.~rzEiԔڤBHEhnG#F4(ENT,-hvZwbpԵE;ojG2 =~9xTaaPֽ )*UR6߼М(_7~\5+-qD{~h˴S3.X73r2\7rL5ٸ 4M %ءc6g133XQKn>@If-. *+z;GJ|J-7ςSe1-=#+@)f*-` {8[c SX <= U)@*ogx|K~ Y=X5ҐE43R105Ysތ3qt@Db:uټKkvkP;"pSqYڛ9ct?"?}uA;@䫲~̫i#~,ā23 vf/ZcG4Ev@|*c>K(ȴ/ `uA󊴂weyx.5'7EXDU~ɲ@RBfÃ?5WZ=V54"@j7s_%EZ9QvC7 4rm @-2Lm B E2:,|^]DmRBU8w)"q_z6im]ڰ6&ыHedaSa7`,j_!<:@p wӒ]e=P0.iiQYۺl5i,}D_R[h>ˡ0(['?tX]xy˯h[sH PAY+>]Ařƻ}qw:'_ mv| K0Tэ. ߂Wmc+Ήl=F]^Zۓ(d!FxxV0̲oz[ -=JB4't^Cﳍ{{"0@Tlm [rAMS |XMPpꚃ8}s4E~ /8y|ϩuYgMb Snb6T{*LVnzkUnk`J>jR˾-ڴ[-_) QV钧I<>@qg̩Cc$x`L1OnH_ oo^;.oDT]'i@L[9^Qj[^u!a3(FdLѾ:&ƾMۧ4-DχsR.0O}d*Ll"F wwu9JxG :&BLK1c%ԽC Xw1^٦\b4TT|/qVʼ~,NK7I.*I;F!EttY;ɣ:YapkqƸvǵOܚ#n`Ƕ`tC^C7 <{M? ql"9])!2+͚-rov2B- f|;W*zK?/fь |.>-D/4T'J%I>k7rx<-2a{3lSn"Z2_?/aSLp3- +6 _U -Y_Gh(~~*.h2^xo!WDdcR/\Dg"$/Bj'"TacTuk#źI?Dnb}Y9:5<|rO nvo[~_.[Y+S/+<ܭ϶s5!Db40#r&#/&FF1:X/PX6Lyףt6r^y0zc-ݮ [Aiү?&b(6ݾcqDn䀖nϤ'Izvfdx l*KVB]!B#Uu?+o೛$CTQ _9/JFBC6ZVGwmi?oh2I7'A~lk(L)(PkiVYR4z7+/]坔.]@ _I X0|Ƌiƣۋk&rȁv;Nhw+TX˭u8P\4VH̴f_Z4> UsCQĕJ:C54&R=k -wL]+_]`8[KQ/]C[,ewL'2c7{:-3|[@K18vJ hZD24+Z/t,w^o0ª#7.H4,%s~({48i='%uU 7f?ivy!+$?I _|!xh6ӷhŷKT;z,)vWTE^eNMML:/tz );yQCR'^h})K*ֹ/%5& 4:F ִdIؼƼ\bwH=FYXC( ?@"{@c( Ea*֧,dA92n1NOxGo;ba_ ]뺤2diBK"麟]hƒ)[ӱ(<_KeCo̧Gi!u.Q:Hj^? 3 Pwɕ| oc58$X657IZzdOu[+Pt~$9ͻJm}&*DdG8:׌<Ќ𣥀x&-Cu0nbs?mJSh pbz+M!ִ߲MGdOT8H?T0(vy9:i,F^TUnGM@,h^K  ΨȠ8^I+4g{r'eĞK#q_F3&OTPٱ{P/\kRe"O^q$[^~ <R$wܩW CPCQpJ8P!Հg/~M?ouMYHC.qCULە*`UZ,ԍ(,Y3*{}"K$ OWI.`9l:]=-Z89er*> L"U88ۦri$MrAQٜ-8k-_!yo"0Az@"5ooչ,Q㾌\ۈ]q ko|\藊‰n;R}7I.P.:dp@+ZcԒ|HHh^KLEݟPX%19mQe|mO /TQ˩r(Jf&\%@YvQ]=!G=h?憤^K$6 <>$XR}'Su#qWhJ]60LGd!QŨe~ cwMƕHO=fI$H*qKǾmtܹo򫖠Xf^)gn/^+cQ 2QlXO&^&5ADØjax?/k΢_2r<]o= JdYq16l [,KPInSޯǏtZ8fx ;pZu2NdUVGn̷ a@7ٹa'lWD Z$$9 L; L}U[T4`2tH5"lQrر8q+k0Y\ yw]nr%o2]Npp17뚞C`S["S6oʁ)hE7F."'R ߺoiƀ3iNv\GTO3XDqNt^ ܹR$o'yjQg] "j͹1fXCVkMܘZnV P.YߙHȷ8+#ip W js$5IUBs~h/r( tC S(p˒0ZSB$(ဈcf?e 0>j:GI _82}{BuiӲ{"' `jMgpg+HXrND3&b׫$7`lzmV}KR%Iv<7H)%Okk^wȳ8"8h8бMlL!YxǛN]usK$"苲>u?7Gװ }'d%EG~[)4HQ+buاl '@yU!!sl#ך5IJA7E G%JG.LhD0mJTgų1NJJ{.%AM!,G;Ѝl#s7WȪnG:DGp`$YfigN,jJyRw+c; |y L}Me ^v1YrTڄDՎ^ř+&=֐jZ|㎕0eW5XsvR>|uŲQu$^UɷP}b̿]#>ptV+HYCo~䶼!;*"ڛ4Oa̫@Sis^]K td1.]7Vݝ92D (8*-[}7w;=@ Sy` V~_ iZ0Bv7n< i#[}#S^zi{$]TsꚯIQ'{ÅZSJ^%/KS߭1)U?`ȷө[8o2|鷯\6-C/LŊ@ -՚KkgP[\̫d,\ggK9 Io.]3CgWLa QizSeX6i>+6-bt5~#p6r]H)ߘt4du~a?nB_W&HN_S܋|Sae{\!$ƀbyO~yKc(n$(Q)rk4'GES {DnWJ hWL5 cϸ3/1\j=ɞppԯNR2&FO4߱?vkE8A r26[F #8:P'_4N#;Nb ,<"6$?_B䴭5j#r?}"HIKD#F*JDZsfЈ' E8hѺt g3n?2GRK}'SAt|T`a3*茫jTJ4\-p:M륫c G8rk>4zB(Yф,^T\!k/v3;R4?'Y*{Bq|(4S˸Db{#d [fUKi}:;Be.w1,9U#r)7]/¢!iٚL;v#W/ĕ60Q+W FZ)Q23Xjx{jB:!Ẅ͍́QW?*}?EEʀn LS%"iς44%qU—܊=MƜ%y?)!D8 KdŸN\9JS]3CcOM{rL~㥘sul/C`UyI#_k)8kNlor7C_+!KE~\λIn^}a|J/,5˸/۱h\ k/gpLv󀭉҅ yEo!@=cRty;q_R~0hٿU+Ɯ'E4@W&@ƑxJk=O.Í)p$P8?zIgv%:;Bd6ߜnTQ*OJgÛ  7)3gQcp qw9{~ Q\YHNsOgR -f͕?K,]]v&d~,ĀM[T| N^jyٵ_"G4S"CI?V_@;F`<Z<11yl+1t_d*Xbrv,6Z{Vt[z'Ka N7آҮ1D5V? ِ D7\:i0!/\Bx}&{COSzԉ U,HMpP4()]^˚B]*8$IՁk@]ˁ3sv @m$A} q b\:fi'Xu!V\5'<BƮ e:[zL8J~{PBPfL~ZMewq4sݪ42\],ч[HDc2Vb8. 32d8Y Oԝ-pF4XJ9,3S0yLSf8&(.MzGm3#U`Lk=Sgh;'TN+Nr=pi׻i<{2GMznjl<,f̶o9/e^J>։)$"jբ~OD^a>gΈ*Bǥ'R}V#C#^f!1!*xsnlITz۾6yp11v9V!7ey 5$$-=U)l(8R]HF4=`yZR5rq`D+.x+n!`0S8IL7ϫqbܒXT.'@9uچ%y{@{Ӯ]NL@/'p ǾMy?i,0f U;]ɢٜ\\4&H}[Ssgd5Gp_4ѫzPQOqpnG±5[̆ +H~-+$ڏF<βHS S>FQf4W_H){ @rIIlg+C g9<`f3 )ج6j<?sRzDAxö0 8D%U:h{*`L2ij.4!}?Mܗqּ(IG?B2ׅ[_\\H~\Lb\50bpE!戝X˚^Tű/*J>g6Ee;;J%Uj>liD>Õ*N?}%oYBxdʬfG0$rT F=U l')).Xx:[? Yl~gZn?SQgmB>/O@4Zg[;Xy3wʧFˡ $x(w&ij}4*Hòɴ6K:яL.,1 C=)P`8k-)q`*V%%/]9P\1 Dx| ڊV+vL>\m3heg~jpXK(fQU(%H+=#vt(mm^pZrƕЧsTv=QQ4JB1;RK+Cr42t(N\쒰Et^Y;ʉJ;X}֐ c_D', {9AE\ MqUI;hC%|o?_`su;i)L LS$1߄<-1L|r/PL-U/XZ#O u;aFo`jQ@xOzrkKqo%?2AWF\!FHS_{ѭreV&u)I2c}ZvG"]8$pاY\m 40Sd3;<|Y <R/oo7w<+Cþ\na7S3d×Pht,2hxx4V1@۪eqOr(J 2 ?gN7HAQ!I[A|Z ';o@ZiqݴIlyYtn%"ђS<ڥ܉d*X8ްWN1;P³>W k1 oV"KKw"VW]\3{*qE۝]Q* DՆxa7]E8, y]柉 htxdgbaofd诐Sb?pZ|mfvL{- o; ֹ-2ƈGN%?u]G^S8=Sϖp CiYyҩ*YW7.X*r:z|xP%$nq`xwqEc Piss/wXŦL]dK 2&A6<4Gl#M姇Ff-^ %Mt’3U :x3pe>aNP]lUצΤHG%˷_~{\iщ؆MM Evv2J۹@7eFu2+p) ِ8Jד˗EHzbU Ń'bwJيLW\MG(c}g} k-+j (pc_KBPɈ3мd,* ZS-("s,;u@A!0TRA5>dgT?^13:TMrO>a Pc/E/q%$NVڤx^)$B^OVeenqUҪlZdx() n Qars9G')HjJG6hXA#0cWBkDGX+eјtv,R>EAI;,C&4VKN.yH0ǫcO|&ͅ5Ƶ-"*sT41C1;Lă&Y RA)TiVVbdm]P^CM0GU%0PK 1;p4ܥPx὾':j@Vn0=e'$[mqM>'*EWғdRaNXLID5qu-׆}uQf ]F/Ƴj >wHbaD͠%'{y zWBG=ƝEko0gJ8vtaUHӚ0^G◝UH⢰zJV 0 ?QU,ӿ0oYd{7,%N!\ϙ qu/(oYܢ?G.MSX /~s'*b;C(mjሦ^<4rsDIԘ.^+&Exp].u5ZM;-BvaD<|1X"A2˚`N(ٳPfRk?iY; BƏe~YfnjP`(5L?FKpׇᥥrk{v8ֈ,;F&dJbލ J+Rt\qǝ 㬆x**t^ޠLPZxڄOW#2/Ro7KEacv5S9202bXi/}_:LU@j13jb+q41U~p3>5`w(YԠ2?@JqlNct9^nfFF9aQv{jV[o}DCbYZϊ > )w7umq^s1?c d#-bxvx\PB McsO46=,gڀ%f ~%)1Hlz f$`T60JIRuolV2TS߭C9+; HAӈ0dp(hpǭe@x淅?,TTäq.h'ad0[dGD!1xS7% r Daɺt$8+46 'q2{k(,`!*4͛+2f6#v"ڎ8mܔ,NRjUkr>5K[\d-UثLNU12& r 86p,c9a qZD^'AѴϛ  wfbw"jY8E-ʵP ^4G"32\ t7MH5c!Y$R"RZwPV}F9K~BhRw1 !(.'}#buh7q8t#I=lB o^)qk/zbϖ` Og׊7:mtΏU/Yw|}`V*@}K,J 4D` PzKȁW*66 lhlLĒ~DoΚ9]t*)8#x1lW{yZ "%։WhF)*8G)[Y]o'.pc)>F`| F=l}++WmKE1]޲*M"K=1;*;!0є4Aw2&+ByfSj" *B2Njx1bf|aёcp~VCU:VbYd U{6I?Lgt|~}OwUp\jw_Qōk!|hv&"txE5)gZٗ)U4&v8z#pijڸL(Hh\ kGh=)ئv]Wc9v $rY?HaU:( Ƹ5_sJF:ly(*.q<]P R] w+iWHZG9/I`#Tuε@YvBLt&JG &6!}X=,3ӹiM-srqS Q |K1J T"]/|%Uj,sUC{֍ xTw3J/ ÿ+dvhq$'EK<ĩ%wA&kv 7q Ѐj`_M`/sq8WRG/h[¶˫u//D4>2OI -νm\Q+A^ULxS%&d樆֟VCdHG_ɠ V{!\"ΈOթDCu*61}ծO}o`-U6(ly.<D2O-lg"P`.,SԫZܶnOhW%Y'1Ծx,]i'yWq boєϨ(#e˼f`DyށJe٠ X@Y?H &S)}n,EBSv~KĴ̥K 7]NَN{cr{XJh(}#27D'` W=[CQE[ b9<J$#ҕc$w*R4oo5~Eo >>/*1H8h7k>FBHnoQ8_PMgDD6o̚5F`}hr}J{͔ ^-ca?b;ڒyW48bD/RML"ብq+K>MN,8e{&&cG:h^cfZ,\cqAGlyQp鉍cUNyׂۥ8t49h]U7l: :o/\h.]f?q:N:R-HAg:1uR]?Gd >۶BN|k2؞iGhrz(o0^7ʻGU ? -N\l'DaWO\`]z<X{>_Q"%Fdүd$oD)t7jA˰ 0HWR8v(]Bakai8Zo5sk1mƜ>zHoeGۖqfm蔸@H%( UO?[MDqI)\f07r /{xd,D isV`3UP R Q?_eE=sT-<"#IAxOf:rq#uVv2˼,+քs떥$JCi烹kaAmg|qU5p0<CSO8lz@.~ݽ }R nI.0h]ͪz+ %t:-wsLU &ypV*wE$J0\͔]vHӯ\ Mk.A(YۮWJ߸ΰ7RWi:ޚOd~yߦH8EDi|uJm0|ɤxmX0.3=Pd,m&HJRPSeCW̪y>nD,sMzɡ$(<dҥs<+BO.o,9e s /^qVVr}iwGZ^Rb }@S6rǭ ۷ҾY N 2a 2bPX~.a;*aBPRoBL&|Mj}IjVg(v9]s:9pQڭ8҅]0>FZĊ(Z{m#w+@?29u ]T1kǓ諁~MP\$$ q.crF]&X_*6)6OHr,޵bE;5Pk"2 ӧP⍞]mͪ[W8XMXPRMZtEI*~h8%Ќ\5X%޿_Q:Y`IWl‰+O1S#1Ysh*v4O8)P ؓR;l#d;> p0nc+=KL"[ykB)U!\>{;L >RRA  f1CB'zf_,`~xԻ*"y,oC?CҮa1gRiB /ad'g1&f][{X{H 6fnsw|mw˃˨P56>Bqyj[o95A0X`|siܱ/`i i ìZr=VfpTߐ^ |9A?lÄkj&N.XW,x{}rѳ4Tqi*oiג㡿#2[*P $(GX"j6IQS\_Rne߰bܪ_8eTxaԑSNX8G("5q2 _bw< fqUBd`;W鰯O|Y"k72˟z X+!A—CD7nhN &[t:r8ЭYm.]G8́ƙzˡae5 FAA[2b\:2Qy 簻J)']-5Rmˣ3b1_;~?9KCi SC+B >DiœVk_dCHC.8J4rOr7B֭9w'%inRACW1' N=.+^zZqc{p.~Sq r~M|ᶴ{O{j9}I3{Nu|2qh2`R7KӿgQicTy(ӗb3ذ6\a„aZ\%kx=ѐ]NZ)kSK=~/0p%ȷU]IGc1C zs"߃>lsc /~؛ Q{p b@N {0x 4-4TeR! iߊݼՐkh6kɓqh)Ybb~S.:J ϫN*^1Y ~r4黎t5}l@ѣ;UNOnkS!P9y'L7(Fۆp'Ij[ŝ+CrE$)߄YjxW~pGKWZ>;МxS8ֈފ^U!m$g #e.eF$,s0z*xdy3\:ǟ-o1o zFNJSrjНVJ |BA͒g-d2dl&eX#h S/+AjrN2Bg2iLnF9Ս*:v?r*,4!K^i9(C,E9 `MyϿO[gōvU,C6]Qky?k֕|DZAІDG'm%ńdmT(\*MgVGfat,TIMk@>G7d<7i >Fo>7.Nڍ1M '߻ٍ)jU8H/dL*s1)Tt(Ea[+,?)&V xx\Y%שu ;#݇k 0;"92 e@tړG Z):3m}m71#54$ێItjˇM p`?P*Jp!232z3u$+B:g'K[R:zG%5 =QУ??0+M# <* WصjgGac+2j늦q.9'dlf 50[,HFDj# Rifi'f9v?C%0"A2Ԉˋujvl! uǷk~JdmpVb,C܃F+DAyfR]]s&U72I,LjN9s,!vddf"gM|q^W0Ua9&ù,ugt'  $zj׻8A8s- 1M-~5{ܰdUӠ4a(|ԜBe8x0WC U'{Vd3}$O[%WF!:I%ZfSoo";!N0!lVqH&Cǒ9`1VZĢˀ/#8}ZD[Þ%{T'L kѢڭX]KoN/p>Yt f@I#Q,k}sj;=2'Y|6s5 XP2K6I٥Q\?bΕDBжII92jV?R'F &w%Ny*Ezu$p{{J3{5'AMQaـqp?'i R A>[LIbKS>-~v2AQؿt7dJ pK+a/~v *TqZ(G=6]h%J$hiSA7'gV`ƃswM=,8 vZN /TBD2K>0"o,wm;=2 d2m w*oxd^5XcX E(t.sſ*jBumVܦ? Z>-ą=*o$ rB<(C,0f$\K_%ةe>?ž-@/muB 90JMLWfݻn")6nHf>h{ZsȾ|c:poECHVZ1 o;G^1Q#q4SWgKjqKΙYu`ao.™&Z ~z&ƚC<@ B w72Ymm~lgGiH?+ȏ4t'O9iіYv0l/AV6h6?s,Oh"3G49?ke,* hgބzKc?ƸHwךV^$yd){7!|u83JJ ןNnEV [l沄tI5,7o!*'*MdU\2Y&-@Fg3XI,;Ƶq17赆]8̜)CF.,V`5: Dp/h ;ќFp[܏=uwSmp^+R\TjW>J)kv .OLepU"3ĨZ)BZv?OT4랗"I+{Bmhb/-b#@/ld*GS%ľ-GlBa#6zFUJ ߫W?* ;t]2ǗZB7e/ڙٞGK{ V[ܶ9>Jh,#+l.,@'1spACP87v$ ņŞ`oF6Ob)W-Dc+ZgT;q%`H"5 ~XqfrUkɹʼn\OyKWQ_sh-xY<6.A: TQCRYc| rWm| gމ# c} o f("T\RNk,(R*y\fP ~3@֤x :r@J M-KzƵO,PE]6l9blNNùKdGuN*m X ^pQULܹn5WKξ0p GxCfYڲ &kmudbљ{ԧi䮮oXy[s'Z(ZC< cRfU tHwݫ~mlTqacaH7Ia $0;ym/N{Bcj:$7&9ÏWu.[ Md5lQm"&6Th;Iu8p,sPnhX#̜K&:"*БԶ[W\Rx03KWJV#|>~ sڑ¨$.m`W>  {&Ȟ#WD<>d/'џ\+r$xB9;.7&Mkxx>Z.Hq1#<8eS|.!,/ $"HDU{Wi`{+9Y1y@mݡ]>h~a%o<05OyGhAz4 q9…4'.)}CRn>VI?9gȚK]TO 2v#@>3*J>'#TV{@܇:{_/rgpɸ+kMl0' ,ޛ ?L5N)^ ;QoJkoЫ!7 [H"Ej"j`q=>t>lLY @=ũ‰Mg[;-Mb0cqt-s\H4Nn|$H#\w9*Sig*ea)BYDID݉m',qٓQ (NRbWO6~ L7QxOdPITBr/Yy5Δ߻b;K`Hepˮ^>w"m巋>Wfvl}h=(^֔gͤVGv:jSewʳ\^ba҇]W^jSZҳ]#ׁܽ^Z1>";<h@tܻRG`qZ+uӺ~Im?,XHPABf[$FJ95e p! A&2Fv J ae`ƨG7h wc |Ƽ#g?:wISJIc\_*Vr0 ^l-8r|չ/":R?zEEb-|$|+)bucx'7s_.=8 a]7y^I7lě0M򦰤?hFi7p8ph&\K|u}*Es B}Y73Xloy(p]5Ѩٯ}T_ ',InG}@.ٓMQݺEQKM$QIM="(U䄗9TtB\ hp,BPI;~30 | GjL^:[fCAx׬Iz'm:&4WʦJfxp|/9eǐl^6@貴d xEW|Wn]H +&pp#@!LsZ{+4#zD \6+Ft ض;#ח@:3Pl*'>mJ3Gr@G"Eو)ɬٕ"K:e`0J-U+;#=t K?K5w<:@|{M0,Mfjp;q%x 0G^7 JJn39Ͷ~{P8~|m1E"qwYĠ˫A{o,kĞRS3T1thyxm& U-gNiwZ uJgeSk C s\q|>)m/rvd*g#@Sc=&mikmWO*TQCZ%gmcx@+(׆W1a݊1 [q(PߦҼg 8.Ru+`a$PZycL4 [5݀%uJݘ[ܒeCLfm^U}rzQτN?fD 4˩ZL|R2B M(:Lꊅ #g?hA l>e>꒭s׻;d6ߜK4>ffTB]"@GP 򙵻xpSêW_]-v4ؔCTev.IKzOURJ4'~,L׭餴7&+RZhWMо#q~ z'yOqwX/qC\K.%sXdabi$v~λWzwĕ|>~N_i{^jz@Q똬ٌ&m?8fJ>c *ybnDu_/pĮt}͌ [t`J>ՙ[LudLBOB IZk #`8qP.7[&3rYj xXUqawV.䯨zH4*{gRR Wp:Fć@rJ4p:hr*g=HC͇i,[lK'4V13m_Hu7f63l$G h7{D$xH,r4NF$> !\PاCwoTF ՋxsgefR_ ilئE# ӡ2d~_OKzt 92 j<d3u<]}QvLѮT 4"e-cl5#}`HMe?2uGSC۠\ၭ*hsgl>(sYڬݝw3qVL^Uʾ,ޯhŘRuM"e=053 $/K>x8#f┌[EKڢd@rXR@h^K<8I3;_oDXS^!'bp㟚o߂>}Mk2şb[q&oo7VUׇȯC$!_@cD?.>ޗCt\6GU2!Ր!q.|^(u&X{ܗuE|F/]'XbC»I&tW ;q%Z>8c MY֧VdF-$uumٿg*ymFeYHYLO-oYh۹S|iݐՓ-b"Q[4UҳwAQPG6u3FU3!E9,⛖aXxB$K4U6mop3*v;P.莴BWrc;v҄Mg.nz)||@(a(虍M Xe㦙kǐ$=&V<+K<,rfmdF8,34'*2q1MxU?y>;)8sMx)o\TtDaש]G,JW$P(F8-= s}sWJI v1Y'6JO2s>yfKώЕˮ(Q& rxE13 J94>HR\~Kٔ[E;8+X@~Ƙ;v\ByQ@YtDMi,8t$*%®mؠ!w٫0yEYќmd^,8%)i& տyrGF{0 ]1ŀڃ@L)[n(=ĮMxQ[t˛zskh< Bkya6% bZ;CS{DS4W|k `9DW3) <Ƀpmd(l0p-lg1_*AX>i!ʱrjToQW[nw<WvbN6ՒFR4"0Wѣ iGܾʖ6Tʋ]v]3hjzvɶr=C KLWw +2bfiQ{ U^\~VvQq=<h` SnA{*\~jR]_}u>]k?M|=| zR6"g׿G0N;7EWΗiL7oxH#cYْ Y$GWv)"FnHhaZPL.3Žpߔcg8 F뀴\zյl{-d %"5#"hBGcӿܧ`2=6S40Τ%4L߭Vf'/[(O*q}z7hИ'Ga;KasS{4=*5 cYhWn,W- CBqD5^{ WU&Y&k63,tPNdی4[?dU*5LH ^l.aC`&־EW݆eGY_5a*82@bP\7. D `6>cth[ ? dPoKٿd8Q$#E%.H#0ȞizĨQت++$SYcߞȆ[b>m>._ڱ^ZA#!m!U~qjG容v-Yl91m-RcA'n:fÄSnMyBۊ8,ߘ?AkLڠid Q1^Ц 'g6K'3\AӦ^dV ;=?o)0+iO` 0P aJ"#ug\Qj; LV==`hc"iX2߽֩Ѳ~*!:PCWZ"9kN)NwEBg4H2vqYY;U¤F% ELh}(y~YGA\ {P5&{ZƩBX3Dˑ8KD)7ɖ@s ]54Cy\ e܏A(]fx Brk/\:KǸhK34ʼnm($=OnCgX~x\7D;ˋNb| 66;5PfF;>K~d/ 3-:q]0f>̄av @~%g6O3U2|GWo^C5F†?lX0VXTWS,I i4uΖ6D׮9`6pqC LlO"gH܈&bo|njv^pEK ~s&{ #1|GQgi lNMsw]~^ $_iS;E|/TF+|RT>Xv2-3c0?sR*Ұ #Đkh.]ѫp'Y9!#7i5fMK4c P3)Х,αLv;a}?[@Ov~_7|ހ/mV^=oy~Уt> |Cl`_?~o~g~}'~u}_7a'ѫ7~M"[}ۆ7w`~Gm'Qouͯfo~N}=u6=OBst9wߓg_n`_)A\Kno$Hu-ΐcѯ.Mm\/u*XBن=(gddmTb^xNː4=*- 겐;<Ǎ4-jjc<nexjH"~#@IխsT;y4f}1B:̾@;,Zlh IcX  ! tO Ϸ)~[*Π'PN`J5n4 ~'amC \ ~ 6zF.`eTEjJ9s0hk!P炫ȈtUrBZ"a ]uk/ݏZhPv@\P&,W͌ś8FT&CѰ|݄4ftkAEk(^?Kql Gswy#Y?RZ;tmfeNɹuਮxB567T4 Jky\.*/MO35F~CMhݎPx2 gnd-]c7-9aӧ= -2~0ZQ)S x=Hsy];z\:]N9*""a(6pXs I(BXڎIC02R-!P>k3-OGg9y׫(1pDHEY~3MYGނR*MqXas,tJ~OIxE:5qNMa+X\ +kusmܰDnCٚg5-c`-9.A J\{;@c%,x/28E;H-<~h0DsQwg]*kT܅R-}C_q0o5tûb5-{o:mD{|X5T35q6J-i;G^gT e!e'AޭƧ-O?2Q&Df|gUdҌBݽI9[L}]P)=H֓D&|F`I{㧇&ȏĄ~\%KWZy':͞=P2ZbMeM\-1btɲy.]`R$l)UǓj#+Xq٢S@>RBd: ,(u3F4eo/.Ķz?jK!Bf3l=}(X3< -${ xU&g:= jȳlTK!ڝtZ&y]vf[*qb)ʨ9Or9\_挘 K32>kxd<*1!Ff^Ss!Ҋ% Y3JNr$a100JpqY M]+-Ɗ|}VDKr[ɳ"E8~S]*MDE6o/ȃ@1,T6i]ߜQ;.lS^=:rWOs:Ug#$8LJ'"=.+xQaT3zŎ\dS@h8}LQ?"{LKV q py50k,_@ o *CLTxuCU,g LG*r'To,w߷o*/%+uU)$ؾw"vpt}"S -GӺgt[a&xAњ ӼpRcq!nz s Blb'.v3NVO}l\^(b[7q ;O/RA;\' I_0_1,{e-]ɝAqAL_:4G %k[Ӛ\g0sĨ*xvS@}xhWA %AJUU'W6} W]7aҏ8߮),YFlŎҷ QHª3pm7#bߣL7;>Gdobs 4eXz%A+T$Q~5}txׁ'4@V}=9fhT&Qį8ըKدBl'qd2/_!uREp7\)DAӷ9kB̆Fj#{^=<3#BifLo\Z[SN)dlwԗ2U2xMCW z\H[)_7TNwf^nS+7!ϔk EV7lkhR0D]b&=Ep]pPJp2Oa5'dOLwꃛOxE7:2vz1ץ CmWIJ_d=-uY?LaTOڹH|G^`MTEڈ|_،W.H. Dt==V $~wyh&v }?(|eyMi D"en@&" r3;fȌx,$[p,O%;s6dWNFyuB%P9A^ {_֨e>Th[b+ oĢXz)?,FVcٮW0Ym6}a!XEUjꡋ=P tXZ%s_7M?Qчj7ﭕc1QRdGڱwbsO(JJWG1MbJDsbs`:gK"vR)Krs[-A_L` ɵ*Kk1ju+Ȳu*zG韢E'W.q{Ь8*Z9]s]hsb JbO k6'&}2b|1|:u/# ݨ$ &a-xq#!0g1֟$@ cswGV1ߦӁ ڱo1[2DMmۿBj{viϥC^?ܸp3i-}d̥aKbk)r!&^P rP6.EI y8wVL7?{({YPqdf^xlmUV0>wv'Y[ ZX!(i6U {w/0'!*Şi6سu|_5r>#o_6%|6יI᮲Ed l+FMM sLr2Ub(gx'M2P('@6oKa=1oqMMG MDW}z{ղM8΢bݍ͞@ʩ,| JD6&bO[ͪMesω]5@f1+DIK*ScG=sϒs^4uH ;2pyl[Y3)q4`a()e)lP;`E"dL+ WӪnH>רۊ.%7$j.MF̢I:?*x7MBٶ2g>3DX8Vua+7itHl ~h%BWWtc,6YMXGVtOAYFzשDͶ\%(~8:thI$I(I35k;_}:n/9*I7tc` 췧ܺQBr4r+ֻӯsYOyؕVu㙔y o(|ہ 7msz'z|(MBGP >/`tnrַNﲀRu iY 6w+BXDMFNwk'=Uw~LˮaDâqhdwz!=PҶ;[3ĖvگM](8DˤOvZ"[!˜_p9h%.g#Hj]ůB*Sc#P:OvR`e1_I(==K*븗{πʾVmO%%5ZBǀݙ4K%Sc) |MKlf_=aګ!e ;V ΑY;5uZCtAH3cZl4.vɑ;D=lCݶwU`hT^C2xBԻuE֦\OJ\Evt0*J6f d |$./mp 2с>)ٚa3BWi+pa!. E'=VlQ?h<PoobgW9Lj ظ2e h)Ú;=A {r!xMȱoZq=(en'%@$ctc0o먀ŀ%B[Zt(1FҬ4> )݋vWĎ E[;)G+^Sm:Sc) 7k9nfe[k:TE~CVUEO\8n`jD @5BXqGC h5AdjV pb#΂\ /"ZZ rK"2 YT}\ccce ˾Kj&$Z kXZ 9Pas&>p2vRuΊn9F%$ށ&Mpտulzq D[RLHN8!rH0ut*X_ɛ|`J7?\?5s"0Rjv TiP?kjߡKޛ]o(3 "Ru<+6=mB!턒Lx>iQʼWQ~DK*CygctSЇ l5D n!*I9M  F &Rh!F"!z6ՙ[dBc TsLVxH.Oa~en̶ _MńԲ[!QjTHDD ?\*"WgWD*@沉,pFAx UG_7_EuO-m.՗(E-a~ˈl=EPN 'qǦRm,o? Q 2u24&I#$RKcMKw\XD_fWBBD x@o hvy+yO:_G!0G%s-Q<N őQ/ȟi1GTs/u"~ 4/}Ԧ&z??, JK!;vook{9 6s#6|78Hߚm̌,%bWX\rFxT.s{Z"]2ٳ-Krr3RJ+"& AHr .!F8a_Q;N]Ӱ=4f#6#bVM ϫ4`W|+8%x%L[8X`*2 =Wϙ-&Lzc$)S:xx6BΠ(bol ^>u*#!4 _ԑ#n[›z`um92 6+]}1J{U@0J{? PF  LphQ+ 1p1D9f!3y-Sԣ]t}C1_X*B@D4WfAS[+:1iȫhpؘ@4ӰLFش[ල͟Z-%.Ko-0M8zrYڕxb =Qs `ĤB\Y'4i Rs_&HW*;јRG?ʥyw[<{*JKy=x;n1Cwg/PbkiO*j"j?̽Po&c_؉jdS{uwEQ\&'W/Rd] 'n&t3mpnf,QD\C,T&N )uEͰY@jK|=a0 g 'anŃ:ZNdO#m+"*]=3A*G& GBsq#?]c ~i }>EIeM5䅞df<뤉>D4SOa[kI)ܥEnf~i)-?1I{3^}o<2J}ɠϣAs!YlFLf=yOv @xY~y6U9Q)&d._ w!3:BUMwG%i|rb6,sH7nN}n Ӄ 2@e/<޷M<"5:n2&`pPEO}kNŞKn1E mm6\ֱh`+:) J9 X;)oytO}:bG`_3n #-XTNfFc̄aT"7lMV`˄ʪm"!!Lk( c)ǶOƢo-?&Fp!*G41㯹sdź}S ːi9Yk7ä{T<@ v/xMfw|G`7 ¶}ˏ Xh&H馮;R'5^/r@.Ơl|z{BC?pIC,| BlMm[cǃ4X|u,0Ep?;k0н ` 뵈dv_`FD X4 Yt 5:1Vl`Y8)'[!}tA( 1G[h#4ҕ6۝`VzSM=嘱q*'.m^MF2 -Uyђaޚ)xW%lu$FUރ Np7Dָc'a^2kХ+I1cSUa. K2Epl +:ؼZ0~#Y霦j\u#IsXu?9d)Qf O!ޘ} ғtEZ׆jt֏揩Z+ʫ~B`ۏ<3Gr |U4؄rw`5 (#UlqhZh (Fԃjc ,]n/l_K9T%H-rphnIsl9x_%E?vLxEdTxЛ}z( 'fx_Ӱ :څkzLb&?{gI}>5Y\%! % LƮi1SoaF ~@I` &h"){&l|Π_ `L[E NhsD.y`H C6Io'*X/Hbah_pd)Ts@)hOsc,l2E'\ߺ 9Wk#]o>U,vjK8!Dʆ }3$p 3ޡ8  )&QҰ-~ ^r4(MM1?1(4T{3ܔJA}:tL $,f(h:C%ኃoCkRME/BTw`\8Yܭ2Tf{K(:]wK[ SS۔ s2rxaG јXF,ǘ3?.?[uY{R UĐ'4@~̓m*,g;ER¶vb7{[ML|u`%4Ձ.'ϫ\yXDh3>~Q;bJm.ĩhiԠGM+0 Cc{R)Xx/ Ѓq8za65^旔kZRd3WL_4,:5 2_nF vz.m7w5Uӱ}unl ĀAbj: hP VpKהlc/sf n+2K',*|hPH71)tnRa ,˙CuN#$mѾ(h%T~t~GP}^Y0ԡ X*b~LdTnFjof UN5Ш?ft2 X  @u%i2 cm-ұM'Vqv(&/t8iޗ FMN$2S0]}$}ֽڜR8eB,+o@{@ԳBUL_#JVdKbź yk]  (RoZDzam1\uϛeU܍>rL|< JHKO4񾹭IњM"sA:HFz-SBԂv CaV)>hPkbsa!zbMH`:󃔎/;  8{m5%l_f_ Ǵlٞ O%Rcx\\}x4s 0`58*#`8tn m :\'2zYy0`D+&+[݅l{|S_c1,enlCmNfaQG/̷.E\y>hK[0-֭st|ɪknR8i E֦ΉdD^dh7/J{VAT@ LJXI֐Ӆ-sGc4!}r> ʪs4F6K2e%;3%n{SbDmlVC7QeT3eUtno4}fXԺƊ#*sQ?h@H9]h]3]"/_h͘oj@ۊJfvJx:| VET̮Eیf \^ր0Q x#|Rq3ILu!pvԦšOn$q5_80i|R|*E7K'~Lv XU_Ϳ-i'@9$𪀱7]JgT8ף3,M̰s+&"PBãZ+O=-arM\Kȴ`)" ~kg n"B-)b ѝJK[<` StNwRR+ S2_d3az.L͕lG.'LQ/rOM-3}یc` *]/Ib =DM۽LO[M>FĻPz p,!`WYGR\j[:yyE#%> %` 'Z̀d[t7sJDkȌaGe#8ue Lc _F_*,樴2`# O]UE=w^4u,u } (Y8]7&ZS#1 #q}b''!iR?%O&7pl[$؅[mrN]Mw~lCF5mU1[TP*ȹx7:W<;w,9rWO N[Ђ 9F&/']mnN, VhiIc1_U@%}@^ $㢨C181NN9IJ< JÛ~Lt37@nNؔW7jkJ(4m3ev72]-{Ŋ:O u i32ZtHGNIDRgNKk/4r_cjְl԰H I2dBƳc[7$yxX#GjM. rRn9exѦĖB6 RU$<>]fxX]}$SGm/m ɔUStgŐ-jsĺaJ"=s0@"+1nE,DRJh1 zDEIw A1&v׳+p[A&z8#z[5Rґ_t;|9B͖˷vtX^a8͟sB?+J, 7.EhJwԳ1^sEG^tp!D Uf"P Q1j;76q+'s"mt|62T{JvZ{V~$Ɯה|jH!.Z7g/,aSLPۥnSj9q unGUd[ラU_ަWZ`L8oMy OCf6bH[g5+n ;M|bu+6$55k<:U9zntK_XuD0x~Iy(ZBƤt8P=Ig{|P3#2r+VA֤jvUO GGBMb2W/G,ߐpjș?noms _/;~KRE&pvk[ qcJ_n4o֑9gr{OK%Ma%_&!n&~oa3+?qB*&n?X`_A5j%±&Ɓ=l . ;.“@I h.V1j 2YT2jD }N{`yO#Os=FjQl)I 7S0/r~͙%9W3@c{w6*a R[(ܴyX+.}F8h,D("0j2fzG?] ӹva˘ R%XH1Ȗh.åklVw1 ,#:7 bܢLd.KScvBg Vb̌Љ]{2Lj Ok8 H\sg@IpZB^x_H m 8(yXMb%ʀQ@`<<8 a",21odwB{U]q6MYpt~OxuF噎 Z1Jgz͂jJǼ恇VxjY!/W 8> *7zHxJ0Di| | ^ԗ蟥#+oTKdtB9SNf|AˤAŮT]>4tG 636a];Cmvߗ!D)x+vUz& C'%Z#l+/w2vo~"EgHl٣JK'Khyy$;O[{]{2w(aL>$;#zL MZ)+Ob:_@/印CM`a߆WvӶ6ϔ߰A"WG|΄\0vqБP)E3Zi¹L^`$F״u wS,ŚGׯWx^Çifi iB>0/5 az<&b#j*QLRB2XVmvS9i0*k}W28 V v;vFѬ(K`jI#t%mqXVJ9N l\L1X7 J%poalzdON&IcKIMsy51`p jHlzR@kx.t<^ =G+%OL1=>f[%(3Z`ڵNrp!Yq7U(̓Ix68MW/[@7ch0ނ~ݰ #߇3>6G`"G< "_krG9i&j vaޠ`Cr:*qI}ʑ2 ֥TSWm3Ev̚CYB*1=f`13]W]CU_ H–݄ѴeAy+*_AzpFuGd#&KdWau{yhX4\;ÊNdʑfvŕ"oZ/ZZ[_ǟ_d/.\31oҟl{&㵀8ąA>aCVU/8dïhbj?|/TmQA-HTB+K,`v$fCBf`@5I6|'j(Xk8s,4QߐUxgLy7Et'eV,ppgv#@/1c<'gX BEI 5}q2ϡI⸢F/!zjQ)s92k_b!͝ӵ?/V7 ~!h9/=%6 ;y3cΐ&z윃MQiui>h|?O_(!h&gT^lCyޕ@u1+4 ٖ0ݞ_l#n$ b d_ys-]w*uh}P P.!ӧ^QbZ_cρrmkN;45:].]d;q?Չψ]yl(3AS^ӏ\wy*O$/|ᤜ> m<,Yȋ9oE`FKIۗ?H uѮ]DRKwOD&) 8?҅e@.U*W)ZnW+aCkOtMsVJor;s]ԇ4%ݶ:v0BFt>#\됧Eu}xwEω |cRcoj9ϗ}뵑4窊lvҿkdu" =:}a~. L BGOJf!ԥ(%QUp͗KXJ(ގ1MNv-{@O.@0<=x=Vjљt҈c}Ԯ #>: fXSG P#D@T~yޓi#zG iF MIfwc `. D${N[ +h_^QC?q -dUf-?Y/'PDL5dଖ*8iE6c9W Ke FjӝkO(cҢԴƢZ]-2$=:,6eAJZ8b u Ji:x6uYLPV+RRBjP/gfzNLkZ|T~W1}$u-:5J9e=! ~%DF2=s>)B\=M{5Y Ȇs5fKlpox54rIPN$)Q6Z쁨ji]CAޜ$CY:ydZQV|C%=?s7<{*Jh?[ϻaV*fy:VdgOXU~mQ Faθqq0z~ }CwJs.pۻc:zO.C,DSX7WH2Ճw4[/DՈs-# tRhZL%[tUz_ Ε<P,Wȅނ-ڣtVX z7 Yy%6[jڂ}5ؼMM;*f5{v2/QArWhrgb=I٘pmx;~X>?9[X9kK?FxZz>aZ,ӢM<JzsAΑ3ꕊ>/mOGj)"daø Kk RXT6yWJ%zU~tѡK/q1\^KQW:@/I$z00\Tbw1(qŎ~Onm@GXܻJ)'+N+]# S\U=1,)m0şޖAKk6>]L|W/ MW Z!T"_c&SﺸUz3E,i Th>fK rj6+R^31³\_*/Y2 ֣#hȌXCi~zUʈd(&S>Q&PAZf'V ڸ^N@x2}N6㷿{82ӾgheںB xȜm4T3@#R V!Z% p>za0PGā԰*p̷rr_vG#ç$5We#wv% mِ_UPٙs6^zn5@Wn}hhmsX{qDPÐgW7V̏CUö> Q"c=69Kk"vq`lYcrjO̶#ƭkإql&;e[؞ΝQ[kp1"d vH' BA%+ h Rw5mY+#1$ KSάz^eE`n)b $O|8{[BsQ؝ϱJ=E%49Dž5cX6ţ!G?w"PY8E a*ӁlH(w#k^IT` >lrrU.yw֏pH5'>k/}L$䲬ܠ.5:v۝±9Ak9.4Lpu=_~T(n{fOԭFkrS,X)}D'u_5}xW?3F rҰN}U{PyY^a*5mʩt~Ot:x! >]Y=4D,5 שyFyd1TкtH(\*ଦ9 15CS=΂&E~.߽t(4.ƗLuZݹ;rjNo *z fguֿp|1:.—cEMH&;r;WCEg}4TtD˭C'55H |2Pȑ;GoX(0Cj~S̯1?T iGEx=Fu <$(.?q+:Vj~]J}8+Z.d~7-NAN.8+j9 m s*qgڜPH0A'Uh̳ͶCMPnҧe->y<MTN;y?1۩Ƙ@|R 7t D #-}JXҠUk6&%Im."u3 g?^ !knOVX=,o$+KWBh޾EZ :-Ǫѧ2=R?$"I36VtZ>U+p%u' ^/bs+P?q"`'^.E=Z: ß/Pm2yy~W8{KI[k͔I֋]N!Ne5 d}=Qq>:OxbM,h!\_d}N+z׾^ݜkX%ubUIhl8`.^{BFp\oHU,W.ضJIMӓ*Hf] SL\RT 8oU^"fTC*ZQP5d+z2 3D&1yzxo5?DžyYUXkC;&sO [HY>E"00Yl,ZCaAKK1?560t_䒰%n^ P A|1⹕3]= ֍j蒴3kvG㸗wc/1SIeT%gb5*D̾Kx( >f$XU[2Y%] A:SaSx~ ~=Bfᗓ)iM(HIcY-Dl?7W/ '#Pצ /;kۂ.q d9ei|F> r[ن1ߖy(]Wv(JY? 6pޏ 0`4w" 7aȵV3?腋ˮ$/9eFwSҵ PcYۚ ȊjT'ƳVh"e 7 ɘ兡=p"^_ }p>Zg~4>ASLҶ8{֒idWiF>d-'{#PRq.zK״oR鯪wTw䟔P/(]rY,D!EXP0uŀwI;xZmsquL|,[aU*uߘ0αUx~R(o&9s2{=W(v Ju֥g~p\\QYh~`,$'Vɿ^ާn\rJනYހE/f@;ScaZL.E\TޥH994kw]t7S/P^¾4 DV{]p"St+>t+4bw Ne~̰@ zCxzk\M 觍l3j퐬_H|A歩n-1KtǓf̀Zs//PLךn&6q$*,LSZQNoUm6W8$I1x8-&FD~pNO:Je{+˰TM@AS,gl.E~bLuA\_2p5fpWP 1,mFy F!)q xuv ]Ny6d?ޗ5V)RTЎ)XU`qg|2V`nẍEKWc4pCrG?XSi`PB{Bm+jk^> F#"#S0ߥaLS4fr.i.fK]^qOK<Us'HI}4a4&5ܤlyZ6L#х`C<[P^0nTIf Iyw< xrx7 Wv~4"a`5AMw{}[Y8 :6znTӢ5 $NRw R&3Tw) "a37Q~X =zI3|6"/*9. ;o]"UuErryADCĉXR_3؈$0:k:0,q />^Ig@ =I -_jhкD)xN3PpE/ =h2FpN"`ǹo*Cu%!52da@E/Nb: c%gt"YF8z Z029zAS+|ҏĕa{>VysUm[^w7Qc4~ШUos2dpH\I9~rq(Q cLx})^m%*(L"$'„zdP#wӚkqB-'Rc.wa{rӉ\(‹CFi|m= G5OD~U󦮊QR7qK@2-2R<ؒR~HQ\sIJ!< H+x|keݘ=^ocGѣ t\ l,Fਗ਼QL=#%×ywz$S@y᫛A\"|mW /ilɧN\ KP2F0܃;c8C"}SnX9 ZQ6,4,pιoۭlMZаȝN/KB5NMpak]|o$gX ChD|ڷ{UӪqtF# chrP X)/mwf#E0}]|c(}n^ Wmg&ɇcua Qcvg%Sb҅KҥWbPB6'Xp0.;% {36~"ާ'1.@<5|6u킧y0!Ýms2 &![XN]Q)Q›uP6wڼ5E:>U)Jsd|ki-Wۿ+3yC:)rCdcxlt>7X0ȟG'{%p2K+*o69R$X)dA* (T<24FF1,Е1`\zZ# LLU& tMCm=R[,V[Hf}"sXJ&[?9vV Ru~@%/9%:5Is'&rE[*+^PF:46mj {b3|JqSl=F| }PBUQ.9鸾EW[0 `۫bȧ>M̀(Y$xFuQu.tӲ5)i$ Z0fWTO3[j޿􂧿Ú8n+$uwHއH)Jl)8>a{=[֪-+}]mDrbG!^}䶐7>gvxT-{G6-`8\15iOI)̈́מq_>{? Aȋ8Hd ~9 E*)b^!~ );省pa ^f6O~ - .oC|+-BrzJۡ5e[*8z?G/ͷMZ~3-Jb5BF[p7*M0@d$Y.VIX\J39PIF,R A<.IJ Fj~,SXRgbh \?&|)/%l&9rɞ-ZL(FHˏ܄ua^޾|3C\;g^N3 ZiRMe8W=xKjk Je|hUR?8ϪbnnX1udvDa;S2-}wZj]k{Zxo?XNqPiBsRh\UoKGǬ*.d3rrb/V5Xr,Uqy~LLˡN{dH#2CyI&;BR; 8W~on Шt҇BvfgN!T^#x쪌? <~`&0UT,I6+l'>(~cw8"ET N|{S#;)~?RQbF8VZ炏cCf=&uXξ8ˤ  c"S^Pٷ#r zK O#KbyCR@+(?CoEΉ l5ҥ*ЛRnɂ| vljfRJy/IaH}cQ`J؀Юvjv/\xUvpc~xu hhZCDR岳m|bDYuO&vn෿7~A+G):+ȧ4stW<~'SeaU5O@r!^Gz2j rmpBzr*ZnNc6AdLY*t(4?dbK"4@NwUfݛè{Ad34vFm Q9B7kq7ǂp&%jxf5kR"<4W 6ֿ1Ȑ s7 9 F&tD'qˏq@CܞWb8qtD%,)VHC<&Bϧg5e;↧utTDNFW++]7ygBh"ϴO>C4 ytwYš3㮻B̡`3Hܼ F<df7i{cY 6p \NѱkޗL.{6wƆ f\7׃Gf`3@  .FR&Y;fl[$/QrY5d,܂gxzTҊWllTC` ˲Ql?Ϭ|^azD2‘+rV]$Zw]Qs!4 P~]ǀ"2G J/濤I;upd>NSڱgxtxژF4D;,s\ 8>pmG{tϫ08L'O(φ>!# Y7a~b@/ecĿ8?9za%y-b91 rqIAW0sz[:‘oUy1<BQu&Fϝ^EבĢ瞄 /fo 8%DuSx'D ;Qy!GAIŸ_ ji23X|OM|fƃE*R |U @@P6JQBuoX 8ƘCĹ@y< YW#Ȇ;FZJ (ȖlHџ0QT>O<;\P?cO29vbtY:l%_(qD\-DkȳWnzXhe\gO ئE(LrYtƘSAWDOY[Yu|rHNr["7ec.BeM^>WZ]J,rz)Vǰ%[n2щV,όvŀUÑ)sS |ŕWB}#'S&pjkFmM}zkq֚m*ŃU.{+ROuGNif'/3SIO*\9Zz-](jċ> ͶwYCW>[t3e? UXxĢZPs/˗+U!ObqzAؽ=cN[Ki9s;:E}~.xm :luJ׏6(ƨ^hYOqX;ZdV%~my+cuJgv)u(_:ǎKLwG#6;+,40+̗ Y"^mC0+{xLS.>߸Kdb Gc/q0iPJPyeuzVv*oLoa92.fQws p-/B`&mt},; =DZ:HuN \]āX&$qHo#Jbf'IJ&}H ϮV(چ_Y-{`惼hh'&} 5kFqv@31%'gd6V(SSݜєm5ZMj^aQ:siD׸(W NyF;3靤sekr_̣hՌ=& XRsRe= KWS/6S}=ͷv {5| f@lo-g 6^É1Ty8Q*N}I}t?%5s0~^%|Թ)MReE_Qb]!5p9@o[? MJXn[Gxz/Q1Z,]]*՗12k T%裲 ܝz`8`m%88/td_}x\/ylc5ퟠ.WޘP]b,R)j(ゔ62mk ѾzY 0ZQUgnX1 ;n @*6* X7na1Ɔ [2yY8` d[j5?6+HS&"͐9Ac4hٖG#GNz"6:cp; Ő]5d1 O _aԒq?~YsxbFZ_%ł#4 W=F\$mMxwծ4 LMSMj6WSBYᝅ򯙏i> "d;) cNiae:$OP|HtTvvoW:h Iz5śL3*;#:A~ィ.-{<| ŠS[ɼHVvg (+-䆶q|n~:_~Z|Az&N/l=zGn[>5CBnh'4iR?'C3e;C}Oo:2_>k>9\M̔#:ǸX9,wLUkk~*Z_A)i$st&q̮즜s[/dٝ/pJF&LkՇ eV5 /s '"&v/Xww^oUCLA본 %''"vBL4ŽǸwcCN,Mh/U`}_Ke=GVxS\[XmhJNd7<>S H3NH1[?]fc"eK!i1҈(W/]/pd˱7LNf dQ_lB*zHfS35$ c4O,8I K ZK[S_HMQo*䍁lM=̳$5߫']%ZK ZՀ*= = B{ǒ%c>20H .v>B싌'm?iI4hqEz!HOg 0_9o)PJE&T6erTw\0N8Z_vm O..[[\+6@_qŢ=hE~ =-蓭x(XN :zF0(m1ob( DK1pصiw .A ꨛ1+ 5QQ컲E=-o+T^0L \^ k`\8H2` r~3Ar]8ĊwVQS+>^$w7bO sbkMQV$]R\~×0 >yڔV>_ { D>ڷ7 @ r\a̺E9.xpcƽ~\<8&A|*RYeW?5/|B⬚n-In-D#HsIm?=y2_*>Di_+yS9d-ڽŦȒNÏ23yTRҠ5Utyhܠb'CW m]}/æxPXZ<4 , \Ϸ xu9;ucA ;C44n@?|er#F.7ob\"=K)8T=T69y(7s]Js,{MhDڣ+NzY{ثl(#hau̇ ok t lպù|Z} x3D",R <׼ƜBXdaP̝9 Agj +tD3&|.9ǒ]LMU`?jZEVqV0E 'px3߷h^:_ѿA7a#Cu o۷es(wuX!cT SbID&U/:TVT>%J/?I3q`m{Bv~pGgNDS>hP~ rsEF4lI܆ji EƘ:Bnfqo+L IUnok͑="%9`< H3f.A u)24 P{fobHIe&sY"n,{[h?|5i* _kfyȏ7dl4Ya1%0Cjvmyx@@'|Io]wJ^ u CÜr܀Ɍ}ԋŀEt*uS?cJnxl:&Bnw> y5#; :(Z՛I U)vtYR]1KI+-ZS#-Ybkpp>yI#/D,W>FfGƋ@-b ɺV5gQ$} -=N׌kzM_b sh)H+&cQ}s'1n5X ^~n (l˺HuMFſfNA/wpD!kњ{F*1)1HR5b0AC1Ĺi4ִ|+ -Ox?n/Ng.~2dv|Dwp]\^FS,;R5NbtdLdz(:FXAaשi(`n۪זC: y3^ /Š_Xlc)SWMSDq2Ҹ U69C>3;5 eێiX,QXzi(9X ]qgbb?>|W3:v?W 6)P]-D:&׹q(4y 3ۆYI^T<,B]XSvjjg*AGI$@EQ3ABNt:tʬ?UzRPyLl,w28VLo4?J=jj(k:jya@c*FJҋ7]Kć,LcxI5Oq6`tٌ(.IaYAͷ$"C.B!R }k L.g3r5zLvt$J%5[u v9,DL6yvsCbfZk ^eُzK̄0!QR1.(%0㞹˕Dz- >S5Jj1K`_< rGr9I~o~@\|!5q ݱ4w4_NWƐ{Y)tB:x0QeU9oDgV":B#L =}zmD\KS0w[:^:k<["l.7wZ Lۯ1j/aEs`ƀrũ ιT'“u%(5S[M6"YAQ$)SUjhlwVͯF<*=Uu$ԽZ-"%43~O8T~˥k{M\ JaGt qcs9KO*m?Kq6sNomvٔLv^آWk.0Kۄ YCXK o~u(Z;6wjz*1xnM1df{ĕClgP;Z?)g#ll1ye`&8o΋Nu8 &QWSpT2lƻ<Ո/iY~oliQ|bhŽdhUt٦؞2&6 ӱ?C=11Q_D-Y~Ks񡫴핮 Lw TL.Jfjmm3qk<_tɩN~%R$wM`"NUYpdn@ yPtDl{ rPʽTGr?=$^1O {hCyPS(0[ra ɼb_Y&i ٥te(L10 kd_:*:]d^ǝ=Y$xD˖\di^[.ocX=H!s9|iL"9Ʀ}b2ʼDf'kڼcfi8Tz@V :W^2h"P3 ToRC^4ZqE\̐M:QՁ Dd@?Wj 4V'M;tJ) &9 jx~ _^|1Hu`T][X~۴]ȹ@K Jk w2e7aԔZ)h1Yr%:5k3EÄ" E)o]Ⱥ1'@lR31VsI}#_Tv5d̩~uQ1j9/%8+q]X0LjJy[O.|,PܨDT޺?4a#e7QTNy/M @Zz2-ZSY 7yb JW/05/=wwG2&1X`)), Z{)xsU 2m$8z=a ''dOHZCXTP.kXo>hc=Np\pbC-V)w1biq:⃄oћF,7S3\H% ZųW0-ťL^`)AbJA?>J#Ժ &_a(l.h‚'.QSX"qr2 L{M{⤖j0>>]ٯ [5pF+gcfQ r.d!4UNHT.d{P~?XB")s=}Vv+a}h!036KZOYf?C+t>g̚,lyĐeK Hr4uBPŽlFg Np H _ Wv'Y5"9RY[-$pR^" Y4ՐÆŋ H\Y0vَHh:\IZu;d :W. Լ;5Fß%tЍ8:[Dс 0Ⱐa "nj F16;\b3O !"ёh:}vvJMV?d# FZwo(.{ѻx,S3-"2/B=Vsd ˉRXu^Vk):,sA]M]d56pF~c_UF_jn. dvNJċ|<%zEu0PUrb rUVZQĽv1!(cP'f e ҹ~TCqQ970|'c>Mmڂ+39}DU Zz@@-eDPKK;bvIF^=t׾v"0.&ixZe&bt}/\,>*sŰL4~hI3}lip% ף jbYL /%Wzϛ_*kImIfȭYOpf Vx>Kox@aM1qRwšGoMI@:zYWzBawzBUȢtV~zhxnAg+㍘5U͛DoZ7 DUSzzG>t4izCdyU-F'Т,>jwksmf]#,p$OD,{hlE0Ǿ3"!+x{=uKNk[U:(~8qfcɨgr|0KC؟sa & $c_Yo7&{lOuZK;s,\u֗6ݵ^Oٿvث&ohO~Uqh @Bd#\.>H>S~:۔G1#<$z,Q처d%`Ns0HL.=UݍN (,6Kv/iTwg|Ir8`A.;?j?ֺ,u\ѽ0U1'۲۬I^w_XrOaɌ7[%➲23i/)[l\VN $U;A(e+mX5,?2SV^F@]GCFV㩺ұ44M.u%\=j.Tms:sk|b,py#%ge;BDIo$XԽlgn2CxS}6_tp&5њw lIyd4'c(|.L>L]3Mcռ~PS(`z v~aPM ^A")V映 GaZEjMr(/uSZgLZ^Qo^u@;ۊ2%qnW{U}ޚБ,Uwit!ȑ XLJr 84VWyzge@N?l޻̗ T/J ~;cǹ neXiH?gݭl]N}[,P}YT[z\hX#iFS]t2sRVcLE?TB*˘Lϐ6K T&A=5wGKч7_Ct(euIOH_[gV.ˢI#q_5lM, $1⁜~:9U) 'N$P 9:~7EYa8x_ kKG}& KPGAGY1cqy4q e+FUu 6ȿU:e?k,?؁'LR9;x&'p c^  !@4bm#ʏ3E=@ ?zԔ1Y]P0|XF>ߥm:j#yf⢵׌jNy(aIr89dn%7.n˕H /$ 1h UnnS&p;FU$լQz02!\ǂz^6C/Ba dF_11?H@F͢dz q8W+CSS"Y Ш"+H {'; ξ,lfv 8SPK2NAD%VvogN,O))XDvJW>ƌFEκ{a.JBY_lݘ[S ;!SiHǼ¡MR\zg=Cc|l;pٔ SSIA#RVWjÐCY8)X=;\ʝB I>#O%kνgc|6d9??H*v/%M(N|зVi7k 褞J~qMK;OpeBwk|Jt@8dN £.co̷7Ж%g2Ba3 =}0v!9iT o߉={_p^Q?:C5WC#Cx %9.A/ KkfoX­jEzzxAjJhLu\mZ|l'QvFb`0O$t2(I ) AM%AXAt-Ъ*?nB~/m곋NMNN+·9{>lqŊ0}+pRB΍_4A&z(ff),B"+{jUQWtvY2[+#jx (&/iՐp;l&5_:ﵔ.ki-y."WVe ?VOŔNl:ėT%Pt7IWs[pW9)Q}q>݁xA8qzB*_n-v&^>an]Y&iГ)ݩ_-SlK.;)+{g 9_ZÊVrN]6\jSf"o:5B[-ybL B>,b =x f)OEA}v1+-5Bb[DQ0! 7iSza_XIC|U:?7QT0:qv5ۡ\NZjw#4.BvnO)ALFWQK Ө#!dP FsM M/\,D;٠)&X98HT#, jd;sԎ?; %6F 2R5C3Rk3?%azƹ7sIʾ9;y&9&pA"ɹVk$e8 oHI$z{ FނPp*j}7~/3nk ;"#yI|c!:>!l!r뎚tګ' ez2<9v[X` _"j<] IAX~"ګ4]x>@)0^D-9v'ݗ ,~K[I,:\by1sgqH:{]ݸm"F#>8 E1(mnqe}/maPg+!=CПjzs HȬ]mgs(WІxТ >'ܶWǎcP[__$c' 욯Cy4Z~TCGl1OC5,E o<&& jpqod%7pvC9!xߒiLȖ Y%&jۙ́9H~aiUv͈JTnq +CYr>WU|p%Sqb?lơˬ6iJ YU ^"Ys+zGOլ7"vN%}ZSx45إPP1_T7)Q@͓@x Eq(J xJ I:I"2ZP`\EAmhXS #c):8^dr`PwX:Q"<iwTv!(Ohs1N. Ϧ'crY\*%'<# ˼O]t5 %V|c=]eÚ4~H6Qem[]}_/T7G{= i_ҙӡyFZ>G`IҠ(Gbzt:bT*C0[k#B=nX|@']V\!Gckc-#+̭kk|Dq#c1f#uHؔVyko &-~w*iL@5G&affO$>$ƛ*] gXe tUK~-\\Ln<ܓ/lsfoHgmMCaΨv`ì]El$.Tkpɟ VծE-r,ˢuG]n4pUP Һ{ہ@OKA`OȹaӘXYiwDhn( ݽ\t׊`^PCy%WAgYPǭ`0c#*L}ɐHGQx!9؊0(QfꝂM>6ge.A+J KWm6C̨6>'Ә#7:"Ka,YRXf/HQ#2[E:YS74z™塃^X{υW)M=ĝXpЩGF7>ns0,y'I42U*i0ZpXSA"Nō;A& 4t Sܡ'4ýo'vs?/d))s7HwoqmBdM Y7ԣq F /?R /QTi}[3ga2{t`CVaf">ވZӌ AdMHJPvͦN#f۾`3Ă v(,,7`À(d suI)?,kس^Eٲgʺ)ǁ=ϒ[Lf#3w\6ծXczz(ihs_2\fޥz*k/ GuN]QҼOdmi #p]]e2+f3Up b9 ƙ.yIX)4yc|g10"v5*^Y{)n6$mI5@Gz4WE;D+5ߛ-E:[Oe(ZmU G&

nb ,׭)VL@!,+}$_ M8!Ppz."&T@{dF@ q. 7v\ɟS¬X~Vᓸp7F |^ބcw[ǟ|nBGJ)(5'hZ2{L-0> +b%8aEZhE_bJOW4gUjMIpnQM4 M:X?YsFy^|ƃ9c.%Oh9BEn:7ضkИ7 .ȐIy@3 ȒghX6:+UgK99 ax?yŜ[&}v一-~yqy]Gz#ea`OhXk9/jyif7jumS!BL.&;'|YtA:W?YTF9`P]ajf]R].?I4=-Ehf[ f}oۘh1)Y#%ibJlvfMﵼݳ5^8t v0/!jYS{Ƚ\%wd)G U9QUϡtdqufg qEk6x/o^4SR} 9uYɒpuVá\^?-ao`8مbzKfpvCvx/-` >Ekcaʨ.Z:f Ӛ|eLq;S Dy^A@3%a-YwD!ޛv9罺Y?,36Ex^e>g?͜XvH7ہJ&wg~)ʓ sGa`-|sYtLq4D(~Z|\Prմ<(Iݐ_X%DpI"{Nu5'$'$R\h ({MnI-F]D]/f2re(Q=/MACi9F?$Ɲ),=@Ld9fOgj%Ff:vu^ eQ,-df ʸ7`q_޻觥¡ /cn! #ŔN Ӽ}jdZ9x7ҟ{ Ȕ4a=={/ys5?Aģ]w-2|ynQ( aD-gtR͗^V6bT^22j.v/Xֻ7# Os)I$ޥK$٩V-YE!U&_w*OT2-#Bh+$ku9ٲ\D7Y~kWL =n![`TPm}Ԋ1V^i9O7SciѰ8*JHM%>՝4}TRtDĠ0ucK7v=,D~WDD_ڜD m~3?@kɈk. 5yUf4u$5蛄ff_THR:hva )p__^Axh'IR+g=7!¾\b@`JGRl/j呍p\WtG;M_^ydt4yZe19)7\kOMdΐFE>(P,fIh1Ng&iaT`DNƗ4XNGTPCo) ̵ X7t)Q+= `'u@>Ayc7+WAUYg1`cNd}᲎iz0܍CVd&IXx/_E%(oxem{P%+x!"kH>keb ?nȣX3ȃXϚ9aY(-8t;Qِ9jG\y;3_<5-5:`h}B\v'Kh)RXyֵ+B$W`M[s^g8c2:T##Q'x7FDtz &-l׬؅d_͜oh I?gs װo#K,jʠ@P`31DMUJSXS| iqPz0!uyw&ִ9p7)`PMRO%6yڻ_=oʏ71 Bj+]A H&i|L,?DCG".R2;Z+G )~:Wcl+;կHWj~.U?=q8:Ky`o]5Ra^-CJA5b^FviUؾE=LJ8_||<}yH#\2ؕ'[e&HA{ڴ׸0̲&"RdyFF/4uEdfFZKd!y5ߤlBC+ڋtD䨝""n%I哎[,~(vq1(ȸHd}c+0+Eh^x$ޠA|1Z{Ptw%vW7:TXIes&PGˢv.DDŽ$fxwk-ׄ2LhM{ Nnm{xWe86Ad.:XAi?8\!#ҍq/"1<4NF# Ha#Uέvz}$:vj=VV)ma; Sʕ Qmqۭtbqׁ}{$ |YQ}͵H7 ;z;S)w>(#utQ/V H*:C^Q"sDMFiZ ºrYڋF|^-胄g(CUD[R/^T<|ѹGFM!5}I<G|=G(D"d߼\k7kiea %!!P)΅\Pr{Wd̈#tr"R0;=Xup1l-k+(c7lgY k<=\*Oa ?übVDF h T `}4]-إwِ1idCa24nQ>x- 01ۃ\>R^Ȧ/8OHܐS"_,UeQ)F:FCL-ڏǾ2f=Jp:ļR dZ' 1ّmЀ Q# X MS@\<]0㣏E8l p).ls%tP!:OfǑ\>εwPy*V%X`pOqi Qֿ&ԙGq~̜tsrd?婳/~J߀pjD3m%M-e`TSDgq_GgT# XHa~( vݎ$h-'}Bӵc@0: h #Qq7B *|%SZ25o7 MT(m}$L%Y[{ m%YMBka"K7nTlh  q_I7j>uKH*n9cΓ\49JK̈́Ndc`)1m!5NgNGgomC,:@X&=ڛ-j\$W`=Qb[&U ]if0Qiڽ8]'RC3ꎳD yp{2{q .cڀlW;) l<# QsSC 8A"2GҙXV.Y_D R?}g+- +D<> = 6 eVCIo.nfL~7 '[#fבJ(x 91NS|GU 9r*n;:rc)o 6ğAyr/L+P"R6HljV)M4br.R>v}a,^|Q Uzr&ZԌ/s-qct{5k.%H߲"(3;)Nt_B{!6^h$S/l)g[uY*"׿v$8Z~ǧ>\[r R[^2݃t0<^fo[0qm5nj_zFUh8KLpO\EwǸ?{+Qp黸Qش 'Y<nf,y~t6H0rPQE(=yq$FBdz@pm 6np?^h΍c 9"G5TyԎ[GV)-P6 -6=Ƕ4ą2 ۸/l;U|XQĨCuI%2 SM^``|J tWf`WHMݗ3)v3CS;?{"y D0_Xoۖ]5xR~-d k|oO/|MGY!M<>8+J['WZƠvnką7QhSɥU{BJ(\ƥ  lRsjajv̪ukh9g/}vj>N)uBXVgLD\t.nQKH^FFp躗d cI %CR%2z ֝N&^),H ,Ђ\%)w9/W}'MdNx҈^{5:Mr;^'4^.x=h}hU1Xr]s0$^A/LwU)^dEG=3{{&0ZyuI5 `t&vyh2m2=e|:apPnIr-!X-]թ=d)|`br*&+62v$뇼Jh`Dy{VVڪD gШkɵE7CTUhz78L/: "ƍT0=\{"˅y^2 V]洖N Y%lpr\[MMUe$;yUl͏wm#TϮ* kXK$IVS`6`z*[`k =ti8 bfmW&xz/{b֊2єrs"ܝ]ԙIWxѶzj6p:=*J91t3 rz傈, cٹ B1*=gGNq˅ \!iB^v=- C3+iݛ%Sq.ĞX-1(?-txm_P4/5/oUה<Ӂ8緆ٸOy4n,w5~>)~&#J)on㇯\3y]X{LBȹ j} ։q!X4{?nK8F8*Y?CJ?&D~u+I2RA)آ} )2C;͐ JSA@=c9K/a-?N]W}?nO3n$5f#};f`D۠.أp3rW'j[>^$&}J\x@i \hÈ<-ULpd^YOX拖]io>:ZMɹ}NEOvlŚY:d[?7+.kE:I:8z6ac^N.CBK[ .- .T93rNXf*]}SRv4ªxh̾B d /RFw[\ؒ{=,2B :\ !WHٍ_9Ch`f;3\hŧ (]i"ЛD+% ܷpi:O؎EA&*]to^owVBJ?TѝhXݜgiOow5{5ky>U98@Uk 9sg EZTvٿSxdU[Y{50,YjHՔ5Lɴ(2ahsFk)+!3HȺC` rꢅ6؞u|W?8Ѕ]$'Ȳ7a 1(Z~Z'5 n& ywaA }bb|l9 등*ƒYZzw- ]rzĠU@kcS}y9OZmHLAh-p4}1-,]|ARMayn.H+v?=QrywE.@K" D8] @t;TTD@:iZ8ҕl/y4]+|`k (/gYi8f;$2%?XhldDx0!;s6nbt!prڊ3\YKЄ?@0X{*H (DmIc$7 N_O:'Y*<Ē SWؓV^Xdimki`TX=yh1s[ đJ@i_Vh|o+y[/ "܀["?캅h_ j \o{cq필`7/P(@*1}wXqX ~x] J ]$Y`Qan8~uNHLgd{箺E-;t/xm1i$~ovuф>T΍ͩ%a9P,ץ '⽠3oTO3P* }DLɂ+"<6! =O4ޭUH4!~Bl[ (|{US G4D"\Ak=1.,c7/cQfuC~x[I+'Ynz~{HXwr;V v{gelDZJ [rZE`tE*/`&bjj2.J2%GS<0ͽ\`BtKPZA@ |բ*`|]#]ۆc2'ː< f8'>sQ} 8Jw͝ oϺL FB+^={,h\dȋ XGj#U{L-@ Z,pR-Woyz)~ g1IPB<Yu~t""tCiKvԁ18||uATkr: W7 ~U#F }Շ6,Z/Q8/vrvFz̨GSdBA~D0gHYxP91F6ı L휢=P}&0=4gDHoL(͒yTԑ75c`}UDE":RrI MFb CGu?}MT$ hvyiq,3{QQfQܑI`(kI)`F-N W|nFn+u]Xc7JV1eQ1;꾚)K e^'nI/XW\lm?Nwhla? YҺHz˝QRDx[\&|d-ue~ _*)o<ܳGsMd^/_.o3lcLj5Zjkwy1HUyi;<{'Bzω F~`tl ijW'qHRxjS1ʍOT4qJˉN%j鞩$1cp=Foq:1 A8A8{TGb}j*1?οr kӢ?_=$_B56Ex/( pvsqmIxqaԶ>>EGnno} |< YaXM%~f[puD/ӆYjRMZNUO>1JŴD:Qn2SЍ7?{ļ,yoyAnTό߬o6^W Q^wKDLƿ#O,i#ڪvfmm#|9_hn.Y=!Ʌۨؤ>MD Xٻlȳ)ù/댆,Ru:_2;Аdy82% &_ le̛glymur-0.9.1/glymur/data/heliov.jpx000066400000000000000000052544371360775562100173410ustar00rootroot00000000000000 jP ftypjpx jpx jp2 jpxbOjp2hihdrcolrpclr       !"$%'(*+,. /!1"2#4$5%7&8'9(;)<*>+?,A-B.D/E0F1H2I3K4L5N6O7Q8R9T:U;V<X=Y>[?\@^A_BaCbDcEeFfGhHiIkJlKnLoMqNrOsPuQvRxSyT{U|V~WXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~†ÇňƉNJɋʌ͎̍ϏАґӒԓ֔וٖڗܘݙߚ #'+/36:>BFJNRVZ^bfimquy}߁cmapjpchjplhǺjp2cOQ)R \#Bw vvvoongPgPghPPPGWWWbdOpenJPEG v1.99.0 :XK/ #Ѻ0ɑ]2fh%BJXw{4tkA 7r"&}9NSE82G 46[VzQqHzX#6xnA3DS2n53u#j"FfZ_#G8ʗtm-{guPikzxZYӣ3DDl2Tꑳ?ulߥ" ^VH=0"x4jm]WbvgK\⯑ڣH G*y)152`Q!r0E*p LmkgvH<~ xJ÷R@ Hff:' f&3Y$ʽ? Yjc#NӅf':=ʮXrd%Z0+#'cp{%ܙ($$/,Oo؂莚l!=QvMaPv"ҘafN[I7۪{o+\ 䠂2y\l+ѷ܂03ay-4h8/*k$dIY-jȂM#:  M_'pb3ѿk T&U&iXh.DkID cÎBl+77:G M7h[`+7J_u5} FŮ*YU7]m4E0 {2y%1Ie4 a]F{MTʫkOcΆ!Fڔ&ãiU\[C0݋S_=$&M祿ѼTGyoO&(͌qCQȕPIz-F7["FqN8wLp2:h#MtIt4|nA 2h^17UMgY ȔN€c@%AJ}Y*D$:8Ez#!ؖK#Al鋸}%'Ro:SG{y,jyvI+> vZj{<)cc*#vzЯ4^R~~`c,c .9$^920|2#ƹ~[%Z~ J޿F5u ۀE! 5 æ8=?=XZ/OԦs \ߴ a:jP)\"42K:Z4 +Aj&u :H3{B7f(+H5A@cuqM작>ARΟlEK拐 ML4 8gg=t̠pe3tݨ 'de;H¶2+h{5ZӰ)ǜ͏SX5ƅ%vCJ=-Wč^p3~rd"EҊ4z9qG)[>iz:4׵x~ +jВ=h#EVA~"Rj!av08ˈQ`t  (ԘY2@]b>]z},9ᱥxQjM^ME'읢Ei+nkiʩ]ebJԡq(14Fmep0xw=:AE23H|A4<V;bZ!(uF̱\J=̌DlWL;RaxgqėB]^ KxQ#-1T'M{L@! %aL-f]ޕ駏ǒ]AJo^hq;89:4ΪAi׽lX=C$d**f"QT ;F*hޒaAFӿ>?6 À;M., p?B{p EY#nٜ^]-]`[f>&gL"FlIW6;3KE= ++P)G YQh8TtdOt } Te,emB%C),ҳ6V3ys ͢Ly^oKv"%A`GD6(vW7^Hxٽy1=Mp%xX }o0K.aq{h+Ck4.~jM68B5ZM/0eZ-a 5Ѷo&o{@#zR"9L[׋* ;y(MYzE5C; s -ExVU֩Qdh% {@. t8W`x)23] ᣦ2eWDmM}~ݾ(˴r5|J<>=u*'4arm x׏{ |oj2G`N?vO{7xs7UqעF`HZ~R#ܢXWw{]SBȑk<f4utTx(/s EN2 nLj3tAEIi? =~ OI VVv5t=+(i\,j'IFUU4T$TX[àA3Uh& W=㟟_"jҔp0= 9}*2d)=xT-IM5yNXMg:Ild L=̐|u)Ep<0nQv]2 i NA~׶j7 p=;fϕ2< V'sBO~UO7Dƥs+ϺLj,4M%5fUPy!X2e"b%fXc :bx[Wm%໔Kڥ(ِՖ5!x%jdk͸zhљ~DOr`N#*zhC;ŁyB穱\YNbh8߮сt3TVLTv1|,'qd+dY̔u&,^!>5z#˃%[$f+6Xu70uӵHF7VVEtvwH1 ;2#QrB`}|wrw< Mb50f/8VN5O=|TS(ݯKVdY%a vHp&R`|Zh)hu E՛9HIV(紴5SΕfqq$/I^0f{Qܧ5KǡqhY`epp.}8%-H$+c֐~,:|=$:;~`be Ցtx+Szfkb5+@? @Z *KJ6;Jrp^ǝ0ԣYF6 P%'BBy p΂J?耒QPAAdV:yw6a^  xڼbj>)=wo#df7-|4Y%\1Ш..=Ȩ[βÿ 'x65NuihL+7R0f JS跍r}Pq4| /CV>A t+s+)x@i:8mlIf/EX+ׇ0l3Nd՝b{-W-Ya1_Hu=`uR  *ڜ+JzHa97y,ot 7"W [oNB5m ^HC">_|Xqx [8ޥ]_lP~L^d2z:z e.0N6mDYș g% ̈Ai~b$h}P;g< T+S{x#xaNnuaV4%8ymJ?H!Q嬒Gp"'>ؔT]EoתCHk']*ض~W;b^-Do#qD*&B&ٶ6̿u@߯/FU=Ҧ0{Vw98$ST0TbwБrA RleCDȨ'+Xeo\5s"aٟkp,6mΥ' 7jgαz/&oeRƷm6^GROvh"1rd#t4&9_s[L'XamN*@^^ 551DbRR\vk;\]Lf:(|T"ʵBڷM"7OҤN$LNE9vwY]-a:=|bLĴ=1n23y^IY#\_4HE}Ѯfq1#uF@wWH׭ʀ?qbތKZ>& ӈ} Q~#"`pcC{OhТA6izL矪9 q ZfT߁ _RF$akDU츆IT6w8Pl&M6[->_ Qo.ܖwUN|j|G_lMK~qr۞x24} f-(dXSpלa8 p(UMǐ6ϺY QdowNڔN:bbX5! 8؃ud-Fҥ9a*7.kA*W"e婴Fh2>v׳i%w6bCvi;]&(ȰuFB=)@s^.=2!j"9⇒40&.HpG@&2(:B biã}7r{KUx)=X)#,5 G6muctDeww 'kcs0WoK>q37s7]t cF f <*צե{ RH@oB{P{úqĻ)?WWՇoۆH6,'S V͑npuuH;Pdt.G{8gɪ04̵my'/&?/D)qb u4}:u)nm_ڃ[!<6ZbPٍmFyR[V+1,R0ف4,oh@^ll[e- MYZ #W{>Q[lWH_:"^ԑ.Pn&nz#4MxpVRy~@$4Pa[S{&ȇU$`I?|nos *Wܢsxň9 H<аC[ޒYW4-,S jb [b~谩L ڄJrH~\b‡6ɋ9`F̰$}Gz3vaD)Vb9 w0tj+h=!m`Ⱦ&o.[6Zyrv&RM5gxƤaq{s+JzDFZ7 *+=&c/*g#)TA*a 8g"q6$83T&NSqpe@8,3K:0Vf]&y7מ<}?%/+ Gyhb)T ZRm> p? ZvMEuh `axh*Ǹ(~]s@üM9(>RW[j7iSm̓WVw*It #kv73}DQJf,/!9Ew5Qf|i_Vi7F> 9о&>/Ykensk0[">-FأMiu\I)mr:7Orr;jv,b%";e&U$y҅*Y}|w!oJw_;4Oh\!oQ~맊I=D? o4GA o;l Y([djOӓN7pAUe湻R#%0Ah˱c WiM.h $x[Ig3WkJ4!aF10Ýq)WGIɋr VR`cCZGVIw7Z]6qhso6k@WՔ?9à 6 )c,Z.pp~4('Bwdag;WѪUL-mp,H!y{fC2MȦIՄu4>[7 T9A$0IZ}(-G3uioOkn̲f1-RХkcկa#aKfh#ᰕ{s{|ܼ/-$|:S^\]jfm{s)s]6ȫ5# wĹeo/X^ <XJS?sv9Ct @R[oiMU)A}P̹կ=l5ŏ]e/Z\Mp֪Ud{ ~\~yxө'c`u8zGS,'HՅ@0oD֝HJy^~l va8hm-s[Arb󟯯fz*6Q,L>)K 96@ߣ {1q~ԦQG6ڢ_-/'rp8Oiۦ1c ]6)+%,>CH~ zxer8 Go%b{4?UZh/jԻE|?Őn8J##HTv($RTJuAfkm(Q.Dp@*muu)iWed-jRXn&{z fdLkFR23&'A*IVA0nI"Ke?ZUnz'Ւ%Jk Yx;O&ǹӴ0sP|/ Fw-0Bȏ j(+@ߜѢgiWpQbfzF"gQz]Z]_ỗS)H{j&<>g\|k 7~>ƌp[ϼ<^\;k#b*4TVjbD[aq:?/|!8% vuqr[.Q># G;AcExadNRSeo kT ;>=C[4~ gV:Wpu3֗EޟSM.hwS^ {j7YXźaߢ =' w뤩UzVXHL1NMOٿ\1@@i8-8 _jX,ridb0MƠ +‡b:%.V/jMJáh2h+AG8|McjU>2~QY y6Mi9GEqY!!F[3U( z;ѸV$˴pnjdevZ]F_Yhwvх{]?fOYCi&c :vwnrh/*`m |BFPpǹpkH~F8ZJ#v!r>?Q١bC1qr_5#8Ѣ-gdMh Bsa-L :"//>ձz; b6NEMbbɚqb"|ih aES~6r5A-[4ɭhsu{ՁbeԁWiay aLTo=eⴼj-H25d1G·ltЅz8'%PZ)ݰYj5~qd`MTx@.Y×uc_a?'FN D'߯9duJy+N}{w 0o&rmhl91!#`Uọi_W5!́&[Id,zh~*lzɲv01~jV:G-8,z;ߣ 7_ x eHxyKz^O`&am&w JM ;¯=7[ļ`LXKǕa:N< UVI^,N۵tBfJS]Mִq~0M~ኳ\\7uRH_Hp`,)jW K{ܫ>u9_ "adM@q\S3)moD^/1Wz0R0|&K&}ƥes2B㯁+CaU`hChSZ7a>XCSm,\zey6pB .JOud3Duh|`0+yYw2W1Y?1^qM\h#csğH}5xZhOA9z)9.R-pE#[.We K"!ׇxd8yK `Cg#Œ1:2 >Ur>zt/򪱗>V:!e9Pӻ'po_cεIVGԝ@UyߩB2LHZ(.Fv7/$ַU8-4b9$QW6sYr\mN}exT)PDzDb/8??엗!7B&aðNXTisimِiA֪ o SovHY.ei"Ɛ7Mkp# M[V:=''t`H}BGٳ R@Y[ZZB[R_9.D%4.w$u3qP7Kc?(br#旱y>,;笻({F5YS "8th>WjH,\ƜPT^4 )tldv;]/g7 ::as=~Ao"͈M++~inJ7.Џt*{,E]hE^ltF< Av*u }q ؔC;B0\=bIф "},ď3H³ui"4te+ r‹(3 PJ+poEݤV`^x*]Z ?L*]Y `xN֭dȄF {`.׶) CF"M,ِ 3_5t3?&,ys&v;H9GZİUop7ю$]c4`0SPuF!3&GyOG}#fGkxWbcO?ޮ(|'(]KK]G%~A`  vpvIrM ţu%rP3Mdגq  A10$%f'lz5R{Z|aI4ٸϠd& `YN_>r&J+D;4D`vZ$`k[Ա56ef)1N(Vl%b ǴLQ{3# E|P*sI\qNot0lq:5=yswtQ/jaVؓꐹ%'d׃Q\$eL4eu|"4 k(Q*3T ,e{x5:չ!H%|" M9tb6J@蒐.Bdߑ٥BdԁG\̣~ 3;$LǓ::/.Ĺؙ9[;Z Zx7&FeY5;GH57^ˠĬhڑ?춲LF8s5U{c sUpt|FZK1 kh&]=[h,ѪL#F( e)t} vK(6 HF8خL0,t,{*~)hZgRԎ퍙S?!Yx9?FDHDa ;BP#1#\<8ENf_2xgE1ZD+qޠjݿBi^mH2ξsԌ4e68;I7sHި4xAt65nfDA("iW71cpmJRne"Zj?&r~S'|ʐP9ۘ'Uu0vt5A,o Ο׺sɀ/t.#V-XT"9-|o2n~68:4Gr9E孋+jl_d+D!'t πWC$V/ՐE|]}Bt7~E?o! Y9$Iwy++@VJh/CRE@,6rQpqU.Js]U* yI?F.0o۵Y~"~kZ\AU3(];7sxÜ Ls*a"c [d[{EM=7 v$s&FiFR5rTԝ1-({ Ϣs%r@]SY9T@>_R qW= _#f{_0kdlټ ®p W~ܖhƅowK ʼn2B< {qi޵ONё@L0@~\v$ S`~VCԌ))sV>[,][HX2A ^3`@v2]2 ?'XUpa Ah%Tib&OC  ^&g\| Yez1fGPSա:`W3@ l IH쟝)gbml@H=l8RNtε $:89J^*9NwF˱>qOMe )|Ww**d:Cm[د7gs#W8IBo)Q=LAEW] X Xǡa-g4,:<WUB] 3#HEWem*`,8g`F|%S0WwnSe+s.S7aF>]jzdYȎ xGjn9*"GY&*a Y`(@g -kF=^x"\[l( Lp>F#kfDүgFoāe34<]W]OcFNanR%S"T% "p5 b ו>^L+EC'6Vo%OL(;:v֛RųƀxNm&%Q 5!=욂r>%D^8 "cHm}u (qIDsK\WAZ/؃`4 (B-m5O%hja^2e B~lkϑ[ \qx))ɗKqUGzg<޿ƭ]B(3mPrZiJo! <UW9Ahg \=1OYg7Λי8r' R!T<,X]|_8tvU-ŴE6PN*4ib5IT:4QAlb'"5OFoM -tS׃AfTL1L 8Ω=emJ[֠g IoX>M,اƄW^(7үo0T֔p @9 crրx) ޥjr]o#?D")C =Rh`54Sa ڛF{%t7H>68~kO^! N<=N/7~%ϋ`.YDa4&h{FWP,faTBX-OUS]tܐW89 xGLP|N)yZsuYa'O+8u.0Bo%c*\XeEc P776`Q#`bGI.sś(:wYm\yQiຢl7Ѩ߃jDatșCM w<.-:x^EWaWePRBU+Gr7O\EU76Q@2JUfʇ, }1&Eb޳KL?ǫ7.`&d܅ oSJ {+1UrN8E FJWJף4QO*Xzmŷ-bI*T9SVΈ[ɪ '콣.\n@la17^*zsxa=QxD1O\ ACgtiыbˬ'9ޮqIeIXy8c9 ߣ@A-ʈ_2 gvK T"k-22(J0cvV;;Ob -f7ptUcDd!hBvf[>Iv\i;ζ)ĺĢ;!ؕaղWۥ2IdWp WNZ OD7AE4/!PڇR錓5j+P`qc-%oo20sۄd/ @$f a_ӓ'XiE:MA2:Yc|cbânpDQX.(`_˹z( `#ߕS~#0iwaI89=%F\čQ:/_5I__2b{ߥQ|D{xK0 U>)C~THme&/Dڐfi^N GG_eWxY݈&HE >£1ZS((y)C8*jf+=2uܙCqs_WNmDe$cvPY0V",+jGx#.E/2h:RpB||y*_G<۽&b'sIls}Gc64^qzSOx\v̶F2Nup%^:|)dHꮄ<0F)3a-lyИ`Ɍd-qӤ8 V4mG ExZ4=B[:g/N ƘDs8?!8pspCGp;՗@/FiO=v۳]z۩i굯kY} Tr[E8#F{I֛ /w+*[Qm :\/G*מ֪|gl!\^"=5 K2<7X,~sj߾!LcrˁMe csȯɀMF|%P߾ ۚ v|9u[ke jXn6H[V jY 3X螈 s*i#)w*_-muxgݔ.rGk߿oJ8!Y1/s-vnJ԰Ma!$ CR s I $9>m}T&ۛdwIcsgB 60F$.ҋ^Ɠzj/Y"+FЃC.y$&<~3'gL>܋i1PKjMn9 KNdnx ^w^d{KEz}W_ Z>PʋϏtYجgi4 79&x2*zlݮpa0]d l&;l8CXA}P޴c)*Ģ%j yZylxq嗨I|džu4/̭ӻkeə?9V蛫Y$${_!qѧ[QPXi+l#M,Ǿ4JL,aqx n]j^L"Y#5یMfsA}=Gs.z~n^f{}!ICVq*W gZowX7j2 &Q^c<&|G~ meu(%/MdojϛmX$"*wQBʱbAEGstFL"tXIJoX9PEϨԂmwCc~!SS;,3a~=vSufgb^"Pc/3^ ZÐ-z;i#baNR,=͜>KNw%(VD>B* ]$YJxx!|}k[v]|֣рmPՋܽޭү q*TW4Ӗ$$XWڱLȽ {  %lR)w"l 1}گ3aͺټ `QopnxzH@Zirba/zrCfJؖB5 zZ)-t52=Qk#O[PZmZxYG7U͵Aj<8$'H}҂3 lsfCQIߩA< t, H|רy1A.--ΎSĨQo&v|%'akLvl },yOYJ0`<Ӄ &ճ:` BUYCGyѠ,CASf| ?; jYrMLopXZZ@ּ{cS#}'2qm3d©єM ݅GSJɅOҳ+̪-aO~gRőײ`8z%AL+nu,t'cxH"X;A!fIm"ZMUalw( Xu$.|Ñ񥱯A>GU֠N2%fTK̏r̅2V{ tΞ\p=Il*ۻ xM - -pwnB҉lNitoу/ 5RN\ZL25_ON,I.l@ k~=]tu4Ik% ԄZ0.656281M'zI,w9'Ux䉪`cw/\e qUIO$FK@ |3|O4%wg-=س? $9Z SaG#4Rb;g-N4;NL;Jw-lT =٭lbg˄XK+\_nFp'Y;g3I1NX\?$ Hei)B1O>B p0P?L_EjFY8ɨ'+?#Y IM#bҚhd|+c"o8`K*[,bXvHr3&OhgS+>>UhB S/3C񪳝wsMIMXCU*9 |ʯ ],5ݱ4ܤ/*`'j JI x6\Ysm"e&+.Jp%ƾ4b8F%n' &zڱꭀ(tD ) ? zgR^G_YbZ B@d/6HZH;87߰}DV=d| Wڔ[S@,춒N=e;O¶AQ?>?8WO*`nNC?yOhO^ et(v2u]ϿF{t f-ɥL$Fw `5^ͺOkV)(8%ӱ㰥I<ᩞG[V ~ĤTܭ~T͗ Q#DXBrZ60{*ub#N@=v4l/d\gYڶ t~Sj']٪#,/HfW_V)cm1}V`~3' Raqڑ =6:0sH,{Uz+#NHr]O/ SA&֊gϹ8FhMvZQ]4371B%Q,e9$7G R+,Gz\8# DѕDwG$A3z9xK UlRid(X>A3[8=6\Dh,U~f%2Q gXfhEG6+Fb0*ۥ6 ='K' efXg'駤M~[Ku075x"#" ܅ɠkmDOذB0tB (![ R&͌ONkȨ΀b+[ @4p%)+2~Nz,-?% QWl[?npqa8U%n3(cSqh6in* "L1: q+}0 _lWQ/H6n9u$ 9 <4yB j?[f]b;>]u"c~޳dJ*Pv\o1vUD'O7u^UizݜFQ-#51Qr\ȅE{̶d :WMjBRzI[:pi[Ck'(`_8hơH-ޑyڏWᦻ;Ւ.oPXf*6KZg#GL95ϰQCykP?Ϙ$C,ʁ+@@з +IUAaZ[ioD|u)Mi~_ICOc- ӽ<%Hꭗ;A^{٫I@9'Sm! Ps;DфJ6Ejsy5+B3yP U1AȴiPau=63P!yecOI?u$BD)c19Ah"YKC(uLguUM\Q_ExÐ.nv#ܮ0lRXnuqN Ma| }hƝBB rY<\}mG3dTwmqFG juEx& i<^>Z z"m)gݘc9bh2nT[T^WMɶBi={k$6dmj~N]B1U Er^fk &xR۪q"hsHcrUn0n>Bfg 9OM=@i#ikԛi(!iBGO^%.*\yL7t!$v.BM@.{c#hbZ 0tuʗ.p >b%ơOK|va0b֝SބLMpbR}z`ǚ *d4.ђ5uwu)tdlBOfV[0OptƱpo$ceway-1T=TQ*\y vƛ|Pέx{K^ 9d@&ϓVe.ڑ]6T[i*2#Xfs1=_H8b7a/_Cǖbr?s6ZCM_2hTDx/^8Bŝ2;BӵQoٌLS׼b#)D8mÍG1 \tLrm)O #,o4 hp<A5zʹ&7 oyvf#@Ŏ*B+iRm:'\;ѓr?ѥ+pO޶=c@^Y7gG0C龚 D PS(x? 䝅bܰ^l-jHZ)Zbx>S_ rf%ai ">`%~fdtx"2˭Av9UߏԜr;VwX6}caeAPY0 9̽-x5fpcLN]vB%Ӗ=H<d@j$'nzo$n 7(ڒܢ)y,RUp!b*]YsO'Z@VMyƈ#S{&]; \g@JDix |ܗ< >n Zj7!:Jd\L\fdAӱT7h 8)s4O-p@L!L>Tk1_OSoK21rCK{X2#  Տu9Ƒn gG+u5v_'8;T~>#5u r*pYgF5>k†b-٩o|n\B p X,;9c^\XEjmɄ(l7^Ѧr8lqj@0g JqlBgfq@Q)=0 ~} ٜMon8xxRrJG5_v4Ae1Ѕ )ᶏ BiޭdTz#ۙĞnMrdzTB2o%DGlz@(MgJ{SSJ{*ps)M( ?n) Ps`@.A=!cro=DcP- :#.suOP[KW%Pag&>ǃ0+6`QXTb"I ,R{ ̨O:{dHDឡp*fw5 v91D?^R\^T:71{y=sQQtЪbrnEh"5{9^Db Դn<5s|$UVtoR6S!v ZP9!zz6 ZkxMTJ׎^Ղkty<6kC{Wn{X 0`-8 .A*βg씹'hҠdΉw4Z#q^ #๑o[ u(kǣJ̍.{!`} IC 3Q~y:ӗkQu<yRꐓM ˤJ^ychl:y!)j<:(?~v6=+\AO n) {bkhczx*dτ3TR$\%{, MIbbKE=jiכHl}6hԟxdSna@Z* +EM!|@Y\p LkQq}xrKsGڛ>FkS™Ǟ )^HUg*}K>cwL/+)=aç/wsVBELt6g6)kTHqnY3•ۣp|Q* +T&v)ǔVN^vM_XQ;nqNS^ Oԛ4qَJ*rUf6Z S=Aꂜ%DZIy6hQz?7@&lM"f&@i{qwxd+d_R-TM&+IA:5ƪǬk0\B|ʀ3VF,l_8EY|f܏aZ*<& ?,^7'EJteĸȼgHa*\7p\]6Y.t4XF>yK5^[t8X*lvo1BzmܓŔo:Q<]6x`SSAQ 5,1_5a%h.VNS,]A83`tL\,T_H?<%k, %1aJ;y̴O~S$ꖋ8Tc,ܬFE^1:j(aPpk@zV}  ˖(IkVI5Hk*R̝Iaڭ OVq2Cgp!vG#>br{v?Nὁ§y" ^Sժ݁D/}_5mB'Q깒>hۻF-m&vYsqsۍ<;~(\|m{Ī.H8# X]YN8\.0ļoXPN֛5x*% яV/ÿ*4+Ƽ(/xݨDLxCUM>u5&ۺEX2 R]IL1~U> tx0ʢ·dq -q H"hA%kl@8 t'N}*-0%aeCw/zȯ37܎H&ԀȠ(ȍWFbX[]=IЈT EѮ.݇JhUlGk6nW1o%&P-` 飄idJѪ8{;ѻ"vH fwdr"qzGp=jvr|\l |?=A@={:5m`sJ[IJ &+FsФ #B~oДSwuZE@~W7HL<>" B`X)վBn%4M nS -sV`?Nh XD7,}D2K =Ծzd5ᣗ_$VE !H='|[)'~1Vi4\\~셾!)~suFU)$ƨ0e\R(]jB/N4$W5' .Y'> wIЄX+"?%xGa?Z(,D"^W3o#\dk5qDLPw{6"2,7-bKޗ:J`]NHw jh p`*2z;?m&@|b8_[P23%k9`P< S-ulMțhE%'g,GL]kklr˅ k<2!ӵs%Lo np[1^K^}Y^<ܚc5E*XȒ ="tA19X3>tU@yk HMzl{tvQUWրuat%v Cn^ē%s[ENQc8ڗH's.)L xaD EUfVzkuwJ٤ƅw[h<:$%28^#xO Ɲt_U :M|Vߟ-Ŏy?p(1/a, ۧD^37úu3˟eo`eD!B˫Ul2SJb,X7+?Z 謝uWCrܪD=8~&ULnB[ ޾n} U¯9q>Hׂ].Hke;@܀(+vKz Ϋ4N U,Nܸ"7a܇<&B; lTl`8۔ތ1 ȗVa@vC]JdF=3!]XQj t ?>FwΡwtbr/׫7 /3w(K} ;&-z-K/T2jjtNcW|?7ULNڌ',0w_Yw{ULJ?OAi}rXJ!~]pppppppH:((`)eLTgWݰ9m*SIxf,/T@ޠj~o7'}nf5 ᧦gTI s:wGT)!jfc =Csg{ e`z];;} FVNk#j#$# }H r/7w+E3J^e)S$yeʫXW==VXQg-1 2s;d?9v(pFOU6rW fvg)YGծ#)2n,Ď%_r#&$ z7(0w'C"f#62bMן] 5-.aE> {p4Sx=;nUS2jfhr[1IrƗپ FK/"gcx$zjFGb|ŏӛ =De3M^Q*>oR*Ymՙ",irZtyP/G+%)н[/mG j54HyXk3)GgiA9c2T][n_z2=G`qgl.EWᣨ`rO.F іV `߹-\)[2mƭY`k.HB| Eՠd59&/2H<H=O+v,½%|mZC<-:)#v2LjͧzR+@kμAXZ#[@4%Ёl\!⸷H}X0~um*Q!G۹Q*^-ܭ՚|'34e)l( t,pS Uݐsխgf,‚sa|ފ/o lǺBeN9 elnHaFRf $&3M;>NSP)vN*+oLC%zNH܁`Ȇ_]vXXPStfAIv E/(m8++#+0ޙhӋ&mRެxUW3sx)UY?Xe䫽mx\ц-wGʘ )z׺'8BA6u*I5:^1MMW3JS?aMx+7]h o_P?' r&*ͷ"wEC*),cpJIirq%R UFcW&zBfEc↉=?pã1..<ٰd)lZc.Y%d83mv,<`?{_:TZj\zLw0ǟ ˜j*'ΩCs=Vk Gd vI^f!KTF͢iY `@BLܓkhDǂZ )3v8Щf =e-]|lh?ԟ1֋’ @èL.R՗Mi4 {^#xr\&< \ ʂoaDvܢ‘ S Ʉj``-'G(CI,)YЄd-Qbg4@ri ѓt0ㄿ~t.H?#'q:玓=8wbQl:.E!}떔%JOƉf_wR䕊xAfg`V:cLJ=`\N=1@83ڭpuUFdܳ?]r65z+o).=%K AǶlQ͌ӝ]`q/urEZPApTFXrOFqfjOãu7T]8dFlIZUIhswwEu9Crc_|K83h;-FԴ$?#*kk  wO~QɢY om#9[z=]Qd]ƙcͰPÔ <<Ujs%y2j+ٱR,=5HsS31+p1cſJ4`A p>ЗYguRN 8h=@j ~i @F8E`wZI̿m`EgŏwodIjX; `Pky{Gc"(MW;ct8֍$XAd툣ĝ73r_>KW30Z~'Rĺ뷆L%xlC!+]5e m]!&ؖK8JDݶsZꞱ9APAi~ti :5-l7'ޮ+*r$#:d`:lE,#ǏعJ:_itm]5&7ް_WaK 6:!Cn^2$گ1Y.db=eę?YbK6uJ2+Hn20cEgo!q[?S5?oMM!;fMյAQ7xgx/Pڈ)+x>TFK+荜̈2#/`-6 # aÊ+:cӂ\a% @~;0{w:R|`VdIh_!1*i[iu?U2>JoR)߄%_ko@+[O"vmWmlDkSKpL5pB@py񊿙7,yR@5>*6QŞ7x%fI,32U C=qu+R\+>_wz"rZ.z9j L9vVVҷ,9 JQPEu*VXT;R/m![ΟGu Ap9Ot_/(fr+6ьj$elW xs>ό~bn|DnŹs !x_;K3p^ѲS@HU5/o;㎲ et@j~m&_;X*fB[mjR2N0gew9s3o(o%yvMk.dg>g@XZW 1m A)( X ZQav/_`u ?NdF[8ٌۻj9GCW# X<\^CHfsDiLh-dO87b2~!\A=3՟ s)Eueb5 m=v 09I:'tfu{MH wncW$O4PA9f*T'1N&Ry,'Y0%C&eOyH:i.neTu?aPv-i@ʊtQ2܂3! /J 8  NT5Pm? ɱ4‡T <.NLM9\&֍-k2@.4w0Γ دѸ&ms6\ r;K\q6qΜR̫T8+.~ȖS֕,Ӵ%}PV7:]> -蛥;n39.#sVJZN¹QY}V$!nМءpMrr~Dո#(&Y iYv(Hʘe ɭc[R<](ҨBe,.@[.%TsT]F -_k8BsEQ`kl{VϨ`4⇘;F dS{k_L؛htn:t#+ J Oy)،?6pj|0Vw@sb6OjV04| ˞R[F*T넖0J$uP:R_5fFBGklG":)Z@M,ͨk%C+ +7P^j9$,r̫).ayY'XqҪ'żۉQ #U_kt7kn ?۴I/o}07^/e`gR6y`ೱq?i+p5Z'_n ݁8RfFg_cfUri}(dC_TnZD{"qLzj>Mm{^1f.`\hmG^)ymPSJ#`6ݑfE%y~TR՛ﭥ"Q%/n6, !Om0+qDyLɉVio<0n4;ȑsĂL \XVX0|Mnsυmb%RepAHw ![w6JH-b%ًOUF$Bϯ(}}uՙf'}wW\]b]oYw?=Zʻ׳v,0(֩;w]mg>Qɀ &WR~wtWR&ϙ}>5|pm>}g!h|*f0 oilsu!Q4_we#+dis6J-7@i^}(}מ !H7ہ#(V;P$sp}#> BTtwb&[Fїp[ Qɔtߏ,Co,Ofr! %i+iQ`a]ߔ@ÖYH'&\*,Ol(#CDmX4jOp\ ^#Ab+u)ͬrt!ճ4u )"øU\H)֜kAɁk>f+vNylOD5>К3P'y2tFF.2 φ=W4#,A3¦`vp'c#ntxɺYY85fs=c^61&n]H([TN"[UKǛʀKALuU&25i-z 372ރƜGtط GƳg]0Nz14~o(: Kq?B22ԶW=%a")-rrKq@BKqu5mh0W_yTWڄ5"ҽה;\w;ԔJ:}gVkkQ711gl+'_F0u:cwJ׎$Bkf<k"XC&d&wyD#@Ϊ8]nptz?qlm#s1xjWԂb]Z ɧ9嬄>-;QAz!/pWN漜0I"t3(lZb"xu}q0hLx\ .~jLVq8G^vq Pi)mrFEV?u׹(|hhtv[Wkiq:+eTM3I1&7rQ oYL{["3 3DJ*:py̚P@ֵ Z` T8 d EO*hk傼s,GAOGFٚ RP%5jr*T>. Iɬ^2US~<QafF x}3eUDǰ{ `5hT4Gܴͣ2nr Tx!fB:J 3'A/wPjX>{ ]&QfxGF;-/-||-U ClfCSnE\ͶPvԈG<ŸƳfo@;3y?XnHc"l''BvCA*-VWͫC]q̈;z (aAc*w? vJҐk^|h[ͪ|񾺺vݭ CcnX!¤kɣاd1mT 9.:R]盈/N;;w\]3ɉ{eT-=r1~YWc^KJLџlC n{E4m=>聭0ƦTs &is%T #!auC;q9(w}&d+vQ235w_'/P"F(z5Hvu.poalRL#:RK8񯨢=eRVFdZ ɐ5q6ҋlW"(l:Sy }}b9$Ӟ쪳fm{/SL%a?&Һ*Aԋ,gc'^ȿeR ^adLCͦI]àe/?G ulS8{e7pjƴZ<]eͽu1X5y:Fr0(쿌U/H}mN JPr@+"Yd2{\h6Nj- 4R;PY*gj/GXe2[&ab.Fk0 ٰB%Fn2aEJls^&&@l'=f0QKԗҥ7tA-^n+GPk| x<ȕ!}˲$? 2T(iY$u^ID⓸Y?q pu2~ c@eȀ­ %P_=OŇCE{0Wtm!tЖbhŇLkf៕:U'F??ѧЈ|#z6WVt,\Uۙ(!46A*ubSomЂ LrdMbn+YplQeDh͘>m~Qa6\bx uD +/a)AX:`2>H4j?.|u'!w Ԣ$jyu6F{ h LGr(ZXwY{"/p0WpɔhܞA::y&BE.-55Y>}l =]r+.MvQs zʄ/c$x3=_e\o'QQqx沰1(WG| 6ZQ6׌zMҺa9,ѷ# {J H@hpš·߶E$` V4/cJ e|X#j* ِ cO lRRwU~c>΀{tyR{8SoֺWa}s&Xmw* b #utR0x[U x Rlq-jA.$Pgaby\w=9>Xb~4#2qb jX0T6_*la6fj:.2iRWvRmai4USܦ]5 X#HЂI.農dځ:3beoTsٕelP]X0<{{qKU cRke,z:Q,ނбhMM`ӿ,qxEsgs讣O5Qi^A$h%Ksx5x^**zƌ!:֓N7ϛoNSaO9voZ}xl0b =i_cY]tIkH AۢܝƓ IpHu BG`]*87nO7nGit;yơ-\\-ͯ} WO# {Z19G)b~R?`fmͬSnpTߘdDh1Px>B6 dY i7kr~C44umK"T䧫պǐK XFRL{3Ԣso:-l1EW_-!O_+uݠqW諩]f8rhbr4A6G637N`Cp;?o۞rNu"s3/ey|?ôtˆ %& )`Q49A)]x#fõ61o+*(9v *raw {U8\ȦPU gyvQւ9ڜ~ XVU#[,D_}Q~8o([Nqt v0tLBI5Qe JŒ`V Q_J9G6V\`p[IOLb"pUZbпk2kEu?4K=iEp-^ 2}kk==9;'a|O[}de~qY4Hk Ie+󄧳}%_B{G%orm oՋڰTy&oǚlBSɦ~KvnH2r2K(y)$)NWM~K5WY>ǚI|#UL~P:J0Fphobe.JP =~ۑ%@O-g )g﯆I`)rceñ*H+8Ѥ:!^80>GPR{k.lqG* 餎'R-.Vg* 'o< u#Q_ qpcA0e54Uoqa9SYcLN:߇!.FgutM"c<*&̫d @gFǁY%0gqOQOXD}I`Y)TRD( '8>bgdf2,}syzdJUd?XWk,k1|?`+ ,fT2}1j@XdmyH*VH% +F5]7bڌŽAtJWJzvȁMPS"[F1&pn;ANxp8I Bѹ7 r8˕.\u< F}Zrsף*eƑHD:cDžI@qx[ y7HQnM)SNvuLJ+Ad2LY_(կ'||%.bNdN ;ȞM $Om96\9#KۍDڷh[gB?_W>O0.r-7r›#$o&'Kaח*wt|E "e W$Z5*%P L˨#kcPG_WiSYsOH>|H/xg]y,ZN"a316eҮ>E!/ ݿPng\U~F eꘂ9A9RMkvsON gPnM:Yv}&%zM}]1kU!Z$BRظR켱  yHl! >Ifj Oa9Ja:@/#}-@dZ;eR|[lBv }hmj8cF~19p!rP؟Ke(YR7SҌoA|Qm/B7' T=f񝧘奫G?X?dNJo% 3w/;]o5+(9zw+*2Z)={څVx3IcǥR_Yz h/܄`vB%EsFMgx$ QԑƖ̕"y0wlMl|I&$">F!]LmÔ|s:IK5:0=3 'G1cْRm5rպF7,ް(mG0;r [E!ʠ,Mx+GC`cVg$I$2x;B9w!_ddP `./ & ~ r(+ضf&Nkcǒ 6aƪ^ XhVD%0jp4 bBXmkhaj\ʴ5;Qj :C>y+b֬Lieesh=X Nfavh< Hġpv*b 9p+.L~Iw |T)$"=) 7N#fzj a Hj/cΈ"Fj j*OIќR2ǞIžʹ<&ͶN\b՚թ_n4({ޞcԺLaE`$XnsǨP'Ibme6VKv,X+Ū^U6=ZO@j c'tv]&7e ĭ Lg6a-63 냞7ck b̲?X&0,Q8LF X>ⒼDL0 ʨMd u3Cv S&φH)WHpA4.%HX>n^PxPC/*G^6*(}6)gR3N?4 &]aXo;1V?K_3-m!O y%(p_^tsz㜳cS*1{K[Jqt> xFU~Oik!".{u m.ꑡޗZMdal_^tg3"n;k8K=#vjŞm^o3* :'1ZdNb%, Dة5ҦdWmFIYJG7k 0ywl eȈ+(Bx"4Rzހ!4 }$ liv#iӃX)$ȩwkf'4q8/@u]fXZ}5@46:5ޤcRԸiw$%WE''բi`"FSςƿ4;ׅ%c z!=hʰDxw$&!?i2\t .On2_}R Rkć9ՐGLY)Aj+(8kҧ^v!#@Sf"-J吷ev%K8D4NNXk7 \.O^ (q=E+ԺrW&ur _ĊpAaCҡw෢Q|Q}4Sb;eJjJtZ?"- ,?pGcV}+/ :YrQ,~ԣ Z+PL:F`uewy8`51o<)`GKld\txHb<@Т>Mh=󮏑<)IvUTsВB4]#L"G;NN$*˴(#xkOS(|g:ȣVo˙[SKwոVEə2X`#sqh]7m!x0CMeҫInp$!콑D3AlI$DF=>ה͎P3G"e`99 xΚ3JɇMEg^;Hsg6_JTկKLmMmQۤa Ud'J~{a֔&PusQV+_L%.YlA?53ڠ8;E4x'C0roˤ٨ߍܪ! gT|d(0d*:syۚ P&NoBGI7>/\җB`iXkn@Оzܼq2R''(+ǒg Mџ$k3G//cC&ϊ'Kn56\>iPt5= CcRz-HQB%U~W<1=A%H H d4\qJ1 Ps[~X&ů `雟ChTx5eR>^}:58kb'đJ50HE>d3RM{EUEϜ^gEh7 38 dv7]ր\ĄרŒŐt,# ,wV_Izȍ a"W+ E@)(K=6 "ѵj|]9eJT?6O.?jDŻ01l5\n,ۺSsLPVUAsjVOx&g,F1R^`o^  w$xK$Zգ|]3&UhA*16$Mb[. Ȅ:T6BqnyIV"X/ˢb>/FusJX®5ȿQĤ*H$r6I;0 6AOyL"aI|#Q÷hIJ2x6 P=[/o?ҖގCI d+\7AQl$/[Vjs 1SZ=T(;a|9k˅g$d>Tfpe Icy|oI;}WZb? -Zj#Z=:?]H\xiո('"~1:駨 m4S)0 4氻57VS1̥RɎ: ESz0`؛2|'BtB%J(EA>IþfI'1|R8I+ZY-KX c"͓ede7ZXq9NʩUΜt{1?щ W!`Nz^}MP.K+]qjįpGEE.'`Ykb{ m`v*/.e J>fOa{K83*:8}p.9ϔ,ԙ +OZwR :h2uYugv~L c>]mAWQf@dqj@@S@:[=ޯjͭ\5YsKv QxEd(R$EB&^Sh{MS^cv4k.ӕ˅}̗~7^I#9ҮtNSӡQ4utF`/{dfցs!.ש'+~UT$';4T w3$v;<K6C,+fm-Q,>0kEq mj$4PFff,lI{`.k!fAqnu)B(䈂G*d6 ,#zߨ f )/c.2+UJ‹ -,ά,Tz4{qs5&L.}S-I& &4I{(MdO q Wl]]ROpwMU,ēGI_HFpuqaGv;c$H -}TQaHonb賍(FO }`Gf,w*ڊubR3.˨(a&$ &*uoPC,@op <<{_Gh$ HJRBiՕH֧T`7!\!K7x1j<X Yz"_a &hM6~s'JQ2F vq^}X_DҬpU)rf[(M\)R^J|SZ8\țԣw|rh-+2#?aY</LdkqJ{~yJ%8h:+F\L,$z {Ѕߚ)_} A& wa\n ¿'IL{Jpd/,$*Kٟ{!]8tbFg֪PS }N-# 7"^X;CwUFFŖQ^d){똔imqCRF]~h;6KL".ͽ ݘFV*iW>C>o3qmU.3!Hi^ا!Y$_Yp!K5wQKJYVep1~l˹3ގ`7Aa݌NWмX_td8J{M頙!Z N?2$u 5PލB!_ LĈr]ҧqjF8w_jbEFFTŘX<~xnTU:P2 ,u$קSy[Mc^r?\~ eo󼓞\`.w`\g6Fq*Do%t.\DZ0IB޵ Uc =C82qZt6 JcueL-Ky,~z'Yy`/[k6cرՄڗI9g-qd뤲+a{vj};jk65g kOK @ ̎W ̯~ítIA(3Ќu#ϼTh]$ۋkLo| _!`˙"xr3\=vRc$7FR'HX:1BƘ }l<]ڈmEdG=E%^Fpzꙧ6`.~thLfp4**-9| m4YXlzt>Dm5P 2f:A_mklf|Ui$RCn_-HЬ"yo=\DLK? 1`Wq.X>n-fu ?͝qtĞv<%ΓNof8y&*؞hBK;¹xtjl$~\"L܅ė% ~ j\0H_aeOLu =:Oi򭜊^1Տ3tD5OaKK]5V ;Rqm' f.!Os5vXԲW໏BuL8G->6p"S}ڲA D6ŀ+SB>jsMW~\CiO?Lӂ9)c~?86[Pm\?\\}^

O5{aٹL򨬡l M;_}8Ov;72rv_&y3 :*f3LY;bh;(rxwəB Q]M$29+7EjOA.g騂C`gD$fO&%~?Tt}Ō#b匜 tV17F(2vT57kK3\>j[U *Yw#N]t$qs.]r`9H;m`A AlmJM񝕁0; 2 X8-kX,ܵSl]H򽓥 3RZ?z"Tx(-4@qϲ!~3 MhkƮ>ح1 ɌB#.,TeDqcsWix?n}yoŒ1r6"@g{NXJ qDp|Y64vd1 !iWD'l! S+8ȗP'F&&V$nj`ߗ1VɛJ6Es"0z T! 2w]z 6NlލJnWD Vо d:[sNj&=^ ^Y$ݝs2`Ό F:(L 8Âi˝HYm|r[ڪ-_ٰP˵ f,>:̬󌡷fuhKi$ -ЋBNyޭ6ﱿ>Vk(>Jk!z;1/x9Vr(Z^*d @ĿWkIeJ|>/N{Ђ nA 5S5xM14t;G IzfR#pUX!M.Ձ&O!/cM˜g'V13 L'tC?|lkM'^PUw/\ S䈫x'o >`t<7wt꼀͟`G.mܱĵXFy<lK97 hN_]dh,^Hi+qCθ]ƼΝWMPLonF8MD1\ D \)Xhx= s ,Ȱ ^f\kqIܲSKuxYn$RhI)*dt+ðLu^끯ؼ, 8zѧ*Jb)Mi麅\&=-Fġh*\*}$TVJ'& U}]o`T NXxëK9~p`}b`GpxNB@8 0GKq@#c7$yq|.&0wh2֬#b3NRxk}9G6NW¶x8zR`_$#x3Z" s1C8V(8vlD *`H9Vg7W8 os2dC9#"t>_GגZ,>Y@QZw@+ETh0?ćՓ~JE;eZ] Ϋ6v~+/lsX&uBqhyi g+69W۷1kě(_yM+.ğ 9Pzui<lxZ8_{a1 pHVr׍ sgAg{!Z9s9;׫mE1e0X&4'eQ̀ct[<`l~)w]ZG(;X}Whck"$?5 >g*aإ0-K~f]u0F',7mUv ?(#Ѹ iBm (xD:U"j~Wj攲2U+P%z#*r VC.ᰞ2^15Pd.|C`8N|;ٸ:/brvXg\x$GĹOSHvQ ~[S]*Jڔ(** lI4]N~^SX:yl1UBW4O7Wa];DI>Rճ_': AfB"Gڍ̜; PO)}81(CojIqx7S8F [q|M.\3-HJAOO[2R$mT Hq2BgKP^*Al! ȘWҏϳ%/O2ʂ0LDJGgdהrvեud:+¦Sܯ!Qh7_@JF]vL/Jk6hDiʟR]tr.ơy42ŨCv?)t&`P+Er|} 3>$VO #52yyķ D&]7X AL4vYXZRv~{έ<6ժDM\5{/UwZglEu*Y-f挭ɵ jmHn۬6[Ilչmеl~{yw \|6{R6sD "tX)qJL~7fχ s*'ӠyR֠r7q4aԢZ*TBYpCIg7t-D \/Mu/qR 7kmV̸5ZFs?P'XXi^1cbR4Mw.Cjw Tq68ո QaB,ԠJbp bk_uey[Wj1@m#mTo=T-AδuzL6dz0a1N.עX8ШkDečoҺq ,,gbQwt_E6Vߏ*Q`GM4ĿP`o~ <8D/Z_uBLEuҼZk eNrfn73*5CK߶fjwsH\ HWuɖ ٣A+=x}C԰N!W4ĖC+I^>(Q㍿L)֑;DJ>_chp|E8dn%MԪI#hLlpoêԯ}0e7[s"vjsN?Qgs|CYwVkt!QE̝e=B9O/ Ȥ^y&b"T8ɕmBW Og&T3x5#|赱 d u_Ns8k=W 7Q}^80U -ѫ/P$D'<12Ә`ā),5L?j#zS-&:]K9"U|21hik@ĔĺBM4EKO E/X談їQ9DVDU~wUI[%0P tfjbu(V KCo܃-yKkKfK7#~䬻g_3r-9-xr}[0zOE(\ ~2[=$lԼI27<T"]4;Ro1Tp~-5VdHi [ ȕT}}ϧܤ @9aq'XEM4LviE5I@R;Ώ 2 ;5UR:B܂`r޽isFp7eq\ %R+e^RZAs +~r|tͭZ-4gnͽmOݠ׫pXfm#4p9½cf|dcƽ]fELg6u&*=y 9-w碖ATOG8x6@ҐT X#s9.jG Ƅ-*tz̹ [*b&ځzߚ-U| `K閐=&g;i7C1.ޡs4GP-$MRHӽʚh}29{<4&kp-G^0 OiY5Eu)}ɗ^.s >i 1]S{)NشFoFy|PA_,=hׯ@k=3d1maP:Sg2j .gu=J^ydԇ7{>:}zSqEl&%f U8.y+IW)HwDjxcLB2= N-qPBsAQ_?76[}e.C/v:ѳ=n;)8Oz@NDmLE2" =7fZT'ON(I V37ɖ1Sw˾7@= [ _S~\SnuY'4MD4GPTHP"sr˟Cf I HV:FW0Uvr'H'|ahHa@0ϦSkz!a ;ٙ.9 [}7j^S}PǨmZ'[sQs=i0# " hx՜Hum׈ `_7#fK22U!n݉DYJ7WZcBKü^~iL}=w*"Ho4w+|o ^Ox|| Å ~c=ȋKd埚Kr_tEY폊մ17c69WSD"PZNAL7}8T&Vaf*,_wnN@0R疮:s" T3c =ՑuQ Ak:Q$`<(XI <$ ⷫFVYF9rK$k 7HML"שt6l*KFx~*oRt P%|Cn×OҸXGuLdR;Rz:h:St-oAs2#|@&ȭfb+(r͋%tp Ct?YUJ 0{W) 4#yҊ,[ *j+QxJgP̃5 #@x Q&:.c+?|{D*[>S<@+Հsp?wr'jG*5; UWDheEv`]ސ5Df R+6f,!+P~ۣ2*O6i.l B9Mf[]rr lv}xZ { R84F0Ӻ>mܗI&y>uAR5=ALfֵZZX!݂ޫ)VЫ Q(rO)PulJKb#N;z3) N@^GNmQ3LYvHÈ_Gw@εѱ˱nD Wӵ؍ڻ]14  W,tRp{ J,a.vDoo Q {"fyި '<u/pN?YHF{PUPϊnkwDm0BFW?][Q 62XhUSEIlP:sXLKf2Q"!ZVMz"[&S4n%g6"sP7g_TG>4N!*Emh7~ :8qy 6b͙ˎ]pa]?`˭onW8xAȑtl3#lm*U*i2pD#>^sO}~YDecN.n>4JL%hAL"غ'0R6BDG_$Њތ@зz\3n>7];™Bmt<Շ Q/>aڛ-?~?f$ߴ-qet)͏|iؤ2AT.^LC x%# VR'n(Bŷe)y>.i&(]שIcƋd.3Ka{; j^Cd0ƳDl7@5tɘ.p 5͠#o~dμ=hlBF(`^pďb^D&F0{mTcVҙs e\E$Yce5Uz4)Z5ҫE9~ ;8 H3 Y&ضຊ34N\.<0c1h/eeٷӡ/ ^%Y{F.vUU80i4vSIbV H)L-R_ےi @gtNk.u[k&e1+Vdpy^'ߖ(wԒOxEUw Bh1W`h+|aU@[vh\X 0yªt@*p%YʦGB0Pq2<VuLx~CrbFw>[}Eu^ L*}eXBI%n,5!& 6 [Bku},wTOBHl]9_IA%2da`E[UۚiC9#RNaRTe+Z7yꩶl(Jq@ipMEƔ"ecum1*vE=׉L.ujQyT"!]I5k7Si_v5O*۫Q$T~Ey浘8F] <݇gBTD_Ew߈Cpeќt<c/h~Av t 6,g4ˍ1 | 4ASơhJ3j"CI7AS"l0k5ڃ鹿XD+:#nv^m Bp1[ZR5, KjwO\%f*4P#q~ 45s_DC~Yxq7`PE"0yc&YHֵ}7ۮbeH*y)2ìIJ9SDZaqz6Xx@F,Pתs)tGPe[YTd qᅴ A87/bPMYx*=VsѼ Jlφg2ՑK4_q|BI<^i럅X afà5_řM8_xi3^f?%=Q/wgƍHQ$nYg'{ p{9,g鸖3Xf\W~_ . ^Wt3f'ṟF?ƝCG|2 DFgMΚ &ƒ|_f,7td+ 8f҅MϠe"aҙu"zR#[P9|$ ߱a\e;0Q'xOBpìW TDhn 8D#;X [21Y^PYEw:.o;+yI7 xD.RXS*簥*3T`ed`.CVb*n$ia,-PA+Ev?@['dj^`CHT{ ?cl8=Hcxv tK+6I _icUZt6g?j(?UR>B{ QTpoy~ԟy+!,$LR@i/nnI|1!H):Kv+De'|i;\6 v 4`VC{o>`e !=M#ʖ/w2u:4IQj>K) C.4iu8(8)tA"n͠6G?l!Ywiס2RN,?F2 _<(6 B02??*(ፊ%CsWOsI%Zbx*6ֻXՒUp|z4oZ:Z_*]tYAg xMŘ./"C0NVsM`Xݬ᷺Fea{ޥ9EO<ʝ"-n gO;`a8P뵿!ewb=EyG(P8}p:ZLt2nq o,R.]%)$NVG³3֘grIAHLףfIG- JT,7UU13&Ib$}op*Vb')r5 ΣWDw !5CcVSL$@WJPq^Ѻ :(QѰ׵;uԶGK%iVCB,q֓Fmu r9pR#|H@^-qjM -ne&'\u^8A8bĮ(f薹>KL,C:jrwFz $>l]4n:%.7&G / ҙîۯ&ef6Ԙ11l'hP+_kWNɲ.|~+?lxiL55s`6> =͓ ZD,ׁƠȺuqjkjFĤ\ X0#BѮḻϢ·Qg׌;oX5\:~E}20!bGI NT:7+R gΜQ3:)qZͲ}DQ}jY8b0ska!2{ JCQ!b"W>pm&g-sC{pm$l泀G{mJFop9O݅Y/YAgZ9RL'Q„;jQE~7C]o0}~b7e)4[Le1>xr2$7Z溧U.BmU$ȡvxHQ J7N 0wr3mcذe{:x3]\B|]/6VSJ!<ϋ-0:E\sߴ;O !e$`#(kajף`S~ 1_+ "z˯tfꔊ9 a仛4ys BR{d"rE>/EIpPfr3el*DZl+ە y&;+ BZ,5eމ=?څ '^ FQVJWJ926oh( ɞu[Jԣ 4NoN&e{j Mj/RuD)h\s#ULhVd1a%nLE a53bp^%!D SZWDP]'Q-L0,bF]  r'&)bG|̹ىB~.qVגtHix!s٣,QP;?5 p,paP\\jeD#Oc vyn&a\%y$w CxXU5g}lͼkOw7k N2c_["cdw q6ڿnXk[.@g#<.F& eHl{6%-%V7n0Ve3Lc(Ic&;|=}K&W]"QJJgFyA.Fd%,xaƈE!ӳS:LR\o[WWqSqxі8ڎ>ʡ. *T@-58`]qηbl,68Բ> ES^V/Մ@d^W'ƠWJPfZ3Ox![lCv!AU%*Yz>c N ٷm=~2#?#lyPu W%ǂ9;zD/#mȫ7jZʁ%r2l%qҶj=Z\=@.8s쐰|1M n#*np^e."p^=Rʗ_;lsCWo* 8 $ah~T *S:?an[yӥ w%?6IDPvc~7sAwuhm,hXG6;aAb yP p3:#Vdt- +p]JXwaOX"j00x0O."4(ɺv"]mp2P12L1s_e(_+#f-R`I)cEў ޥ;װF}MB*S)Ɍ:(O[CʶJvm6?J v< \shN/M~86BB! ekת1@hs9id>X XvBt!qҒ2KI9H O(l21Ġ4c ~~xFCw X]Ю`6kEʛi~a\4cHשk k(=E4'aW3mmx*]^R7!Jhry<}M%(2gdtR{[|ڰHP~|M2r0fƭcFGcjiO)ёt l2sQ=C u "+_R} =VÚV[ѧC˕ _q1LԈOȊr.{6Mŀs͈;3 Ȝ'1rȧX+XuF<4Ӕ Lk7yǪ;Sc78w# d= ?r{dgLhHE a.:!SrGԟsK9mIpI}xjff0w]OM8#<%ԔmER-X2[X b1wZV;>'* \x'L_uscdڑmJ_2ܜ?ݵ"؛u\a+cC$"JqÙx)lkXHjVT):bZ%yV}4Fe<ӗD_ ;ءR,=Rkg茗ihqp-%wr!Y drDjƤ"\q?2K~Ƴ34΄#mQ*fvH8ظhC˜ϳ2fόǏ]S ŕL쮵*xs/j1N+e+DV!I$v` \B:gҠ]U6 IM!%X>1a5NL1=m(Jk΋n,ysV͗,D}}hK !:u\TCSOiN2-ƚ`gn (½7q0?5 f(Eb^_f3ynZ*Ei\ LxFlUܦ#KEuTUr+םHa,(߷Xttť?E$Gi{--HlXYV§%Tw4;(ϐ~Zb4^:jPn庬֊SKdMe33/B=J vǕ xʑa+!'"XP ng*|)))u&yu /A?^3$L+6h"Q|ڃWR#G{B^_EyIj0Wn J ss6772\1F *_OjkY}L3*`M%,ՙhgŢc5־mf͛R_V}&ܕf؁sVQ8b.:73P\ {AwI֭;J[W(ǖ_-'_M.\*Z4"$_ҲDmj<es'u=C6;ּ=2ˀqN>Y7NV+e6cjā0|ebjnL] L1+ 5KJ5&g"3l$~t+#یDis^"Vi_rptii,@gX}{-4G΄%Q> j/5a^kb w6 _9w8$.j\ggW{\wMJZŔM5_i!H ðpK6+WPO1rFqBW!$}n"I"ңOI;̟ b |?|Zʼn6ʁ@=m><FDFa^9QoTŐ tV,M`mKZʬPz%Xst.m_%nք$I%N PUi۾|JznuD7?{Ӝ[*t}Y`FD")]/!TfZo]0y5DXS5 F䣬~2錶hxB:\Dʡsհcv{~cw;@!~C'v8Y P|rr&9p%qG_rը'>o5,ʽ4\.Ӵн9騰 إB4yVm"% j}V\PGsX.jU .? Vx2Q ^@kcQ9NlۏT(gLb싂0cƻ-&۟)pg$%| hQ?ڙ2|f/J P.*AۂlOX tso9\ϥ63gF<%𾐈͞*rizۘbHu wñ(-T}t/Ft"i+ݤsԿ2`PBw)h5Qy]8i*{T|"+mbDF)Uޤ8U3B&nwt4{p˅HJÃ4( :v Qnqj#Ïs"^)X; aysSi _Le<(5豠̊@K7{9pM\e[msHTPݑ0"Ȧ3S>5A6'S ]Pyd֑S9kE4{IR/i/z!! 妹 UдYyǃP =B]%LË@zI *zIvN[jXUeh  [r$j.1&xyTATޅ)`}=& r?N%,Q+bLEwZ\ΓJx'B4hyܟ;,wr#[/ %,Ůje u'l%~*Ƞ`ѾFa lyxA'H؊;Ri b]\ӃC li< 0g@r$Q89a}:A^s7'8ƻ.^L.UoBG]նDsBnYx"m|%VWQ?v7IB/.@GЇd:(, 7|IAC3 M>a+X7$[HBa~|8 O1Q =) ܥ`#޷K Zq`1&HH?2??ȰgbSPa^m'!1`K-d8<}ŚqIcnKLpj$NpP;ɏ{%oT6gf\7o_u# 5LSN_6v[='yV zJNN賹٥ɱ;XrjQ<>C7:;ǸN YiKq6C*@.4l;NxeEHP\Ye^?j{ ´n{Bh q3GteF.U [2RW:tt9dA BTjCRE*ڻ6"b+z6@ggY~𮋈d酐;tkЍ'J&jBl[`:t ,Ɛ-~COqBX{/֭zb8+CD;42}̯9;Vp^?x1-jVF6yj+} +8N+;GI-5'+E=t_,y=5"AR&Y t5s.u֘_ 姛"hrW&rA G^~;.MAI1fa_DXȪS['gWwba)]̾q04T(#0"t ͱ]8k?_lzlͽHh3bhYQ~"wqmH~fR#%F*\dCLhӛ-*f>Ȣ>p 8UxVet=EDn0$h4@3#޼[/9$T|A L/ŗΞuO ~]yIN`h5/K8> ,t"`WJnaGG '5n?񚰃ly٩J˜BPP7tkTSc">^"şo$JjM42ED\m7Liq;'^Fjai1%.14*5>+nlɜRSxw~i,b,\CX;ղXh`/q@yLjk* x[Ta|]mxh[ ^`ڛ`tYrTJDy<`V0 Cl@Vqd8 49Zf4 f(&O쬙*S|Z7՞ۅD} ca׎*`mk ͒q(ߖ=>Y&zY,*7+*"7_M,& S6":q qc!ptƮAtXQMi0oG8*}b3ˀY#NYBԺ^1h`Y67YFHb_ڛb%ful0 k' ޙ ۘe?N{65z*]gV)̷k!H9{-pB[zt~…#VV.*kwttyR<c5I>[ ];[Y-)'Q$QQ2s]I{DӪ '"J5!WBI0 -sԘp g,Ba7uͼ1…2v6ocd1qO<0&nrk L5ݍ.SI<ќf#Zws8 #J *PC jQ*j#,J L=f` r҃П69{Syg BQRvv\5 q-3݆/~DNm/c Ji? HTReq= >9S.9^!8ڇ 1Au,hZ>=]w+(^ Ojж{nZFEJ/E q=j2Hx= `xt6?7 */;P"+x gyXqs<%(1Vg JrcwȑTҀq\՟W)d'!3,p}xnra76Y:kD2h|^\$݅YȩŧNi?N Dly|X"CeOЍ& $Nݦ=x ߸uc"miNaA^F=N^lcte~#fs:9S^SkB'doxծ9sڕюD ֯iڬ,4wF*9Vy^eH&69\tԣ?| ܦ:@z$ \s_+jMï?5~' >pTGʟ 7>q_Ç([S+/Z[< =SZvcT[z%%zM/^^I=Qʧyi办_`M!ȨБ@ w&cvp! F:OIˡўw)H<t8 ?ܵo*̊qSD8Ch;>Y佾5J'ͱ :±802; ]BH%v#(9Q\ZI*ʏ|iuLrV/道zm~ϯΥ[6SI?@ Hǒ}\kZ`8Y97P3rkq`.:n7qc! R"28p 4Ǥ>auy|N3XMY_ЬD˥%Tϗ֦{EiSfCę1ڴg2i߷I97㳫Q)&F?SHׇxXǯ,,^EtpD"Ѱye 7K>g/ma'HVv}V@+PGgE:;)95q>4U$VK\f𗋹ʕܲXN$n+[Ni |(k]$+#&b}^=($U01 ) }g/iS}{,9 3B$U4[n+%c@O$ C CU8gE)Q>Cʹ@X}[ef܏~8,,[|W!,J G%gG+FgJmP!b)j4M&aj=j~ :oB~?CۂUZoG)=3?Ǽ-Xg|hwu-\_Qa6*A9kų3Z_pQ6$#`KiyPJ{eF/Y^ExDZ\c)l$lrJ|T)CrNO `QY)aIZ&S8b~sv*h}Bh+஀V 2d~<4~}L%Zd񕘵ksS<^]N%AӶTc=gL}.Mq-٫Rk yEPQp Zt:tV){`wPh1{s6/irvC3a' oo7 J gQ $y$vR#瑲m~ygM.*NwLY:27TEH:X9.T* (|[mU;Ґ Tnf`֖]&vļ^m5YWLձ脙nݹ\);R[عωCv(ۅ<!"K6P6r1) J=zB0i^hMG/;\xz=o>̇Do6oׅJJ_mϣltlޱl;IKo;:ќgpC7t'PU+Z1> ǖ Chfi`s9JSδG=$t䐾5-F٨5VjA'>R3 :UTIܹA;nዳGyY UBo x3g_s)/~yԏ32',D܇jP=|@4KC#?YGw@ڑz5D6G}d m [좓-0 Xj&}–%ۿ{~G╁F:9 r`G hfv-d_G[U>JigV{XB#)BPƺ\aR D!+*P[T#E$mMVUR syݺ `qׅ+,R T9x挰-QehݻKA%sN'Cq^jj;_'ؖܦTP}ns\8`#IJ`g A ur-HP9)YĻQK+/Z68ʔE$&@626-e`WL =¶}oi $Oh/(.e jJ88K4ze#G,79A38X).,V!"s`P9t慜b17}Uu 簼)K =2Siا_O J#V%#``*.ElmϢ8npGRCM9ɐݵ+8[VC9||V[2Ћ}b";mC.aW1-V C_(w@9[c*e-5hm﹔H \E6731=K"f(ˤt6kGK}mO]['C쑰LX6Q#^ EFۢljD+80⮿0/eG9L۲ANaXJCo}C55/&3c3Ф><^#Te9I fBӘ~}Kh}lשj dmzlќv o5MO8j07q#܊ \) y7HWza8^Jy͢@L{Lڗ(.M2ZI59^Bn)( MLҚ"ۥm3C-<l,uGPH7!gC☌o߫_J-,J;fU8Il{/3b8;.EFB&E-U:~5xNUԽ/1Z3i>-@Mp6Hef[_oN=њ m2dn ZZb>|,ͫޡ硩v;:axW B怕PᏇ9k>ɼԔ'_*+V1[E' ̵eKp;TUR@b D<^$x _ q@5E=: 0/Vf *4[Z3MWxIrFcm _"bo'! a <Qhb{5 4 P!Ѧ[>G8\ ^Nkǿ# d c9Myo6Ōة7zo\Mk+U{YzmWlnO;!P.Ɖq& ׉4H'2qQ)Y%$MZUQ]Fy9}[_>6wZtˣ3)a8gtpHJpG) q2iPk*N8)[37@NZ J*Q"|TVވBfcXK;wvhܪe[PI\r0Uq.`ԗZ; ʧ4S/d BKx%.gkSmCi% {hT~>TCl`MR.-2!qIwy7J6-vx2i$w'Le~A\IAɂ> y(PHID63"hb~00AFkt9.^S1 kn^x ig|x!?ae0;υ(5>nB"萊p K7Y`;-^)c֜fv0JR,ܒjzޱav^a -( [&8;K7H^w(iCPE"n deUȾ#091R^`QH0!gi,Ө|64ԡfZ4xQJ |l[[0"=sv@G_z0*`a3^\0*G>qɻl;Hͭ%v+!%7G It?u;0ت!$nTGp|zwR9RK"OpLR\_b7&e3yj^rh*;or a5`D>0j 5sD}JkƉFLAޣbO} KF(pPe-MW,r<4UIx7_~k%ħ5hwqSb/ O{U$"YU*oiZw צi' bl7'ni\m 5bjHVWu"DNA<Ůe_"OE&d.Q zzҢM RyOIwh_:6bl~EYlK/#£:vh1E2 >ь! i%(4yg;lcv6a!q@VilQY\>'Ysa+N'\nukOېXhOvbKWtG,mc3E!s((fOVofCPY녕쟡|pY-%2=M"F/pĮf ph+& r쓌sU*y-.ef4ǞҮ&/xmC:_f0]3#͓V[Q5]/p{;m%Zg;7q4 <3a${230f!dQh4i=q/=]@V q`;Dq+A_Fx% s^:O/ғMqr!lKעsD@̦}(tk(fax/p2u{f ؀SqO5Hx5I@CnI'1+GM,SXMzAZ'57yچ3=MsL7/hXXw EiQlmȲ\k5 YψʜO3$v_Lp,3iӃSiAm5@dJ+ R{rXdRivVڠ`5380씘Eyq_|iLQؽ;6L(Mfquyı IM<-7OI/Fp{w55z2D'LT{|n72p|F*{}Y~I??o.Jm/s O1OMh۾cxŒ̘1m1L~;HMYzL`s S_*rЛύX*z}HF;=]y[)Ŷ*}9 n@҆+)ܛ\KKQUnzi7gJ?FեUak%A ,8i|ېPvӾ ]ۣ\ ؕ|!6!sK4vx R`աDv7Q";1y~t8C$E@8TԱe,Ar t*Od8A2ysxinQ]Da$-JL!I2 lSх~?=fz6N'ACW~iv=}gܓMXfLMYknMNǥz$j) k^&N5oNڦ,^=Y)%OmuwM6quѲ5$PM+؂Y=33ʎVߡi\"8;`bɍ6%+(3iCb@`Cgh`U:yRȖΒэ̴:<4*<-Ȍ{K;b$Lj}ވn.}Xs73ɠ~[Q>{M>*/E ۝kJ/ޕ?@S^ qR\RY@pKuU:D?K`h1)vnj'&>:0Կg;iՐ^L9ʺ`PA':]v}gd/QJHK=qeHяK;]dP[K+c]֑WGlW⻄:-boR$LIh;8?Zzvʘ]Ӂ^@MdrIsP'\R8//Esyx2OQnyf tXޯ|&o2b(Y(dvQWxmL|'Ձ ?A%U?(B OI`")QAcDܛTBK鬜ZCֆ>T%jLJƃKK" )WGHfwW8 k߄L#KUŔfR"\=ۈ]ǁ!qK>3w8iʓ,"-n9j잕W /ԥcX{&5*AHdW8Mψб6F+|c`qkKU|$YbYwv3¡C{%? ygI z$nx fHRMs $)167GX olZ2lhjad;{wg~Ȳ0<'NM:Cpk!}9&cafY/xӧȏ+2ƫ!sȳ@Ȭ#ǶN`aoDFAx^fG9s lKxv< LE*dy?{ % ;D9"A8'9\%v0W&OOTgJ቙bf ݣa!ġ7"2=@}f!LY/*Ckd0p]MQ| Mxytq*vː ψTz,~9޳ҲӅ[ -B*+Rf"Y uoS(O*3CA8ap6μЛ975(ڢ4uA h-e KaX9QU.ŚLw1׭=8]A %aIPip͐kWay X8$IDYM>YZW@&䰦IZ)glu*tY-A}b&ouAx-u(1mj'3JЯ>9?VEFQ3ԇ\2 MR(wx2Mzpӝ!I5*W&1_a}&,% Wti ߑKG>>.`%"p xġlME a܈L9GYUzT3!ۼvtƹ<:~ĝʃUq`lc`WԖ5~'`#t<55mnw#a?gGi4eNuqȅRc/ %fG vvP'0jwN݆V8Q^Vk~O|("*ҵ}f-))~:x?Z3(f˫YcsaT -MmvIej̓ĉ[qwI1\{$1F2pcR;gDé)Սw53h 4dJחƌ9+C]?G 9:WmXS̖j\MyȠܰ`Ǎk.mwyV#NzuĄD/ثp` Q'ɮֶ!$(W=C-kNn4gnޅz |Ŭ$/ 'yUwHLTp%XӘ)p;6no:`rB j[uJ?hˑlCk'); )>y@̽9Uf!^b㤥~p5, <#"g@ESEۢ+yx7?jdqU/Ch̸[w3NȏH8/,Rf͚_`M<<*;kVyR(Oy ~tNgx ֑IBcM*fC.4Jgx.2qѬe yg +sxah4!ew,4B`eh*3xGn>Ta}%j+mxt0)\)ٳaaMn2ذ'iH%~ .x||rYc5(}(֙^c w0aId[7RcV{g'P:L+g-qHAw(ȆbE1 UOQgP?s-8VEV,]Po&HH'-,CdJ=}.O8"@ F>k>X_=T\xVOx %8>mb߲!_ʔy^eÅ!\Sy' p ZN 49"ndž$/q .N ; WQP*񕍵|Ֆt[z*@sӅدY|8xɿےEo%;v!-VfYZL9.]ec%.s1fSQ.pi͇ҥr!d Rc>g/!JlU_ S͜\;g7LC oS\afDjR7!BVe*Bba.s{Tr8vFqx 8!?nag!pJ\6?,^D8{-R1g=2bGc[,\c4S& 5ͦڊ71lGv4W@J^T [N%,2X*3Ү%#5o,^f O\cЇ<Xx- W9Be7u8ioj&!f6^ HŲ#e\O6xvs_Ǻu p=3Oc =^*}^/ vfsgKY5R]藬]˟ α^!ZD%+!ngbo-.Jf5_pf<(X5C5SyQP"Ѳ˜MB &vw%_r99dt{)N߾ڿ .Oq :(|MIN!@O=UP)K懊Y}=2k FNX^Fo}*2ӣUBG'7'4=\n'P:~jĞ9-FE퐈  jkSth_d8zu-OzIOUش0|< W5 R[5:j*Џi*Ky^eS.WLK8T.>3]"Cq9-,őL+5 MŠfsccG}I-s9Du?(۝Bn`gnmZGsMfte[wfk=.|s Ö S2_u+ m~g+?g2ԱrC: ;!xqʑ^f^eB pg?D`a[q>b!{5NCҢ`L?+Q =!d=W pfnxaEaCx"uxF3jg2Դ+@.3'Uov״Ǭ#T^9\³0l3FJ&I :z0< %9sQ? !QOnQ-AXWА9ް%|=$KH\Uzn!B!JJӍ~1CAzxkv4Qt`GM~/ZHzZɱ~?puMWs1&;ɵߥ{kifmlj5Psx*VH㩲ĭVnWoF9ΓQ:kBԽn[s{9ue[z@U4̲-P:6Du'|@rU}´ $ov|Y{v{1/BH$;CS8plZNϹܸ}LH*3qb"de|"gּ3G'3'*o|Zb:X;J%H+Jwgr}e/L?5Uk(MATE aXd?ȭ⢅a\oQ @gk67 {F-#T˚#q #={Ե̖ }ϢlB[Ԙc{q%4$Jp 4$+67;P@\_"sź_o67":C m]=%Vu< 4#{a8$;ZX^ϼ3I)*I D&E8x,}c%@h/lУƩ澡R; %yA"@3e2N\XoDw)_q z2'˦ a4Mp7ӇMţeU~ָӚwjv9xdiZia/*CC =eHY6F^h8XiJ-+%*{3u牌yS\j`3|t9n<\fkOqiQ ΩEo[)tbYPp0p

eCl@PY~)o I՘zg0Ѹl :\1bH3ݖcD? (<2oѷ߈!xIBz& @dKaA mmAʔ7bz>\W]qƘ!^(֘k4lab}ֆ﵋KMPu=>0jG௉pEU輰q [ҚCScnWa7ƬYȎv},WEy@*=>PTpJܳ[r@{ o.\-qk*U/Qqeݻc(8]xX&1W 8Rړ9dZsâ }@a$]$餰G/Ble?a kч$# lk]"32ֆZ^[eLD(|`QR42!4PTr<^& D'VUZojGS߭fb O zc:Wr(gOC$-qV8Bgo %l' '4m㱔S{945f lJavT)Ѿ` 5nXFӽbרVtTdO%x[;Yxz$,/ y; Y&ҥN-~}Moo 3W,E93@n%#v^o}lK/N+~q,VpY2_BWuݵz ^£_:Ś%A: \?^U(uc,^U&۝G'x:X+c72tU/5f\4,:'̈҇6fJ7Srּ,i;B1oCiP]&&p!ɴAEz"TŐNtih8Wߔe[C졝_`qJxG`gX/qKi6\pD9-oZ6#\`rBbA'+۩RVkQZ!-K"d"MGRoQ0`&`vWQN'x±"TƢQZk-F(V\,7\-5gq?"ܜTNtpk^IX/-jw*Uq Ck>V6O^ؚu#+}C>-Y4')}e=_Y?4D) }A0Cc콄h:o.A"3rðrC<ɹ\1;Pj J_txOQw%3 xEޤBP؅|lu!w8uPMyjncK:P[p$ao;]c0: ?•TZU `. ȾqGOle\9ѩɕ &@$bw1KeΌ [ZNLV3Gz|/EF/~2 lT-}qWPٿqqg9dl~N\jb-ػA#ŸwEVpS#+ eH]ڤSn9_ے=yV!A4S񀤮ޯe7*upMjfoYy.Zߺ"9ja:&LkE+oWPay"G K[kKMN7vSɬHq44wʤvkh#XQb~1?wT {Vt4:B%FuIw@.xP ~P4,ؿ'X~6X\ԌT q 6=8?9H^-/w27+v+~PjJܛF.% ^X&*zI$.VA9|vQ赣T Cs喙\#WLfO>8 O/Xq-Fv֟s#Ɖ)nnr-7E$LHG4NpPjc޿[n4_udf/~{Hmʱ!v:5ۯsN{6xyw7u`\@䉭/;tT`(%$a*@2+c, x]:R!]wSre;6$P|*=ʍW,ˌLP͓q q&NBhiZlQ3sDl&8QuE }:K*J0?Z}jOQDXnj֟PJre6Eq.n\,aFFGUB֪cyU~NC([炊'" 2PrJtgwsRJ{[AZ{BWmKA, Ru㶥k\ݣHE_G}[+?(|o+I8(g(=k-3Y(Eٷ$b{!a"t`D!%,OgwG @cpmTneyd5S.[4 b.%ub8"T^Ҝe'uuuuSw."Uai(yڻ( ,kq&$]:E3 mmvep}SqG.)z8"H¡SŌ,7f I[tv4eTC޸h\A:&i/0KJ) FͅLMvw4XVX|ٚj4mQAYg:Tw[vY@l]$s=~Y},DKGtÚYxԝĭ.K)^6{Fj6G[42 <1`tO n7Y܅^r+~F:m;@ >TL.d71|<Lfoš{V.oC!y4Äfbq"TO[^=-JLbI>rҡ GrSŢBU]͝D13~>agرCl¸q67z.ޕ/⬷ [t uTS W'q)C@A ?NW\]n]ŋ/ Z' L)<{?/jVFNTfC&ABejej c@DBZ}\P,jQF՘ɲѨ445e##9՛S k]S,xG=b-a2!Ymd7kD`W'xB6ouR.FC&ww O`}nPR 4<礴ҋ}nQ~t1W>y.gO|@Vw?X> a?CJ_N z*C1k/lK- =BIJF<>d>%AE(Mn>^N#NF{),ixwޛ!(æ7P=D<#O|?Q92_=1ҙ8V)Z%sg,\.x"'ʾAJh)\q j ;\jJipx@ |zl!tm\rBnO<%cDOEV.{O/~~JnV]F k,?%W}LG/;0S\T2 252=7@$Oo?{T]|#ORd.Z1(j(Q U:q5l^-'@ D@%ϻLOzط(SUR::=ݕt(+lɁ@{}u"PWvpkiϚ. kvWi9\ѡ8;volbPAڀ<ʸ8R!b$6a>0 /wRڿ*mȚssHŰ fBFTLG ֦42b;rGBȖ6r)FE[?=#hդ*.3>+w햚VKe C´ ]2uɌG+թ^Y>X򥟺.Lۮ=}Q_"^Xʷ ޠ@]V$Tg]pnjhAֻ{ӄ--5mi'=* vx9)rU &y q ߳9s7&9{e}=Z\ǣ:LPy'e ^4r-3L]C2`?4Y;k=qti;۳˦$?RsIنWSQgu G 6ԆҩNlZj#H#_kg62Rֽp+QW/Xa˙W6)Fui[:>(TT_8 9f>.iqsݴ<nz{L āp5pz_P(_7*y)4JԈbN(Nc\Tg~F`QpX^c _8ы]_*+uѢOi @J§ \Nelg`KaeEa{6G*zJ7Gn^# ]v/ ZhCȋ{c%bԙr) O<ҴeYT~'Jv卭w*  '283xTI0E bAlUss͡<€s(kcq.<'IqL>fG`v e|{# +&6HGE B:C -Rs$B>2sȮ(@HdH<}1<.:0nY f)<3$zd]'nW :O~ dyXϦ:(0[ZHI`W8W˧YʢrJUW@A;yXyr}x!^=˞CG; ]45Nq/zYu[F`^ziD,7OBNk#)QHB4rb;]Sa-RivgSmNPAuT{| 9(]v!3fB({O x02L&`wy}Bz59@r)wx;c}>1I.KBP}z~?,"@F9[rc2m'-Ƚ tOl)*_3P䋥Qՙxѹ؍,A{RCy+:L >0o!m?RL˷|-l$YT@s-uWFX*,lͭD-6\k|.d&D{4suAyx۪W/Yx4'mޑhܼXJbDikMB_7q*hEp 69pz>&f%wgF쨳r6fHˑXHEl̯7M,3kM~'tjt,ɞЂCœu=ڣG4 bRL5l6"b̳y&w2qR)$¸^Xڥ l%tJȼb!##[IP%(gˤ`Q.hkr*9~\]mmWؐ$v2j6#Q#`f\'4qX0]5)Wiu7&I $,SF'/teZ_qGcA)יYf3\6n:+&/I!N!5KU'ejLWcغn2KVGP -o Cz [Re)k O7a1.@ GӕTdջCzBzN20>zo1CdcNvz+cxe_(NЍl!N@oSm15Hl?tuS@NpLM끆qb=憽A̓Sz ᔇd԰[}~PRr8Q*z_,@&Mvgҝ$\c&\#"6)#ixm.[ON; @!CbV꛺opLQ$QP*?\@{:*56uY; BΰgN^k4(S(@g y!+Z,6iJ V>1C<(GS˵4i`׆ki@AHjM0524$!3 (_Dt77ҹI?O`?Ё䭄A(^Pħz*NX'nԥ6>|M=ل/qXs*VA*4s4dWAiYlzJ'\PP( zcϰ\)^0mppupp:jxxxxdj8cx~8}{~zxe8z8e +qqq v|g88b$9& I~l\#ܻ5}IcM$1ez597hߟ`&?T1hnRCsqCӪZtX/AE:.b]V͞HR(c\op_K+_{X St;_T-0yI1>̲CXF _ALj1)c=J}=0';<QVh5_rB0d{ #ALM)IH Ӝb4(J,5?̿=K.Ez2;TNm9V}aY +<)}A;?؟>RPݟ=m/aV\'CսŊ7ʹaAb9 BQ5)Qx[]^n]KG_^_NsLCsfEiRYBi0L-\x{BQ̥qH*&T\g<@"+8ی8O(?KaaUBB&}ח@.>T̜(\ d>a*K[[, N h(Bץ$&LFG~m+*w]hy֓ = (M!~?q1+tNOAL\j\mU?; Aҳ JR';IlЈ"Z ȯ+8)h:@ōg&LiEjytS:ػpɿ֪[M/`_`(tHGX X0 bIU~>P/{Q|Ŵ"ee"SS|ǻ]xϯYNEysrn Q6d%dcq}B3_JCcPN+dʦ"sz~A8[U՛lS1Ή#_BmV΀ό˧ `IT7|DqBE׻(0*xђ,IRc9k«&Nb[FaoבN"\:ogzvJ9zBOF3r>ĆMK W-R۽lb\bDA01WsCYb\gGl:;~=le't+saʼ=05::iLQ#̚8{?vƿ-EхME|AJtNz|:s=ŋnYɐa ];/V;L;灰'ZT38쵊1XkfCAzL4OV= EK*+rf!1KNpKmƢ8 =+/K1IV7X!SQ Nm|)~=Ri@Ƃؼ\B>lظbɶ~ŎO涆}z0a(eq}Ino=[l~6CWhvk(r@y4'NW*gO* 3a/~1SMeXPkea,qCXOM3Mp~EGךZ'\c>"VtmI7b[>5>qaDP44d=rB]aM(l2Ͱ[T8JRO:vsrs2XOuBLH*8d.nʳ,g`c1>v"}Mxz<Ȳ+.X"}T=%u(ld+@&;2ȐiBUM&)S>o%G qdgIecܥ8ZJWc=RH@{VyW!f0#UYAV~1y!c!A:[)⷗d͒JiփLFJKzGgvHkӋ9D4w/o7Ёŏr*%\3Ш'4`uATޭgLH&mO3U;H##tt$}ڐF;Uy հ13U@Db]hL4|4B]Ǥ?9ۃ=GO]+e#G\\9klf.R: ߍm4T35LzVF+9*g8zԷ; ǥ.[`p^,"lO :B2ow9b+.&]xc/W?gؘTl/Rsntr7F+pYW{dL'׾/C!Eo Vsc~E-'[{Lh׻26É4Y ?8n9 $ G!|Q;JSUQ_7lwՇr$)ųۅb䊫\2 GV]}l׶;x]F^L\e?:u3ٴӻomyRN^cPq cᯡH./.ɔ_Ls!QM;Z_ U,1綱*tefs5l^6#iC^A, { Yr}3.1g%ͫR)4Uʟ$÷kg  mJQ$ 喐+XTva훏K; pTvGTfm.>p2$ w4=-I36PF💳)ZɄ:%1+7y8j];=LèQʑhTm`NT O<4MxƎl뿽nHQ|F;U{C{(]ͤ|oBȜ+В\fɫ7|45jNHtgacНX,0yҕ{.Chd4yp'DD)[y?лy(tr < = ljV SYt5K¶L~v)+lz>U7:Fl_LN;Y0{{kOKMk`'2.e''Ep]͊Ge3X9sG9GJg,6)+Vl$7F[(1'{Ę?OƑ9*1,t-$xv> ڏ1,z !⣐aX]@Vl@ՠ1 '0@\&3ot*Z7qd}Ӝ51> -/Yx9ڟ/ QfbPKUgPzqoky˲͸  F"/zLA*"&;j?۸IA8ã!:dpS-<.hsߺzQr^\ 19 AMab+q7<(|%wF躩tЍ_?ys ϹxVxj_bi]JieUr&w]z1KqZ莘=`ro觶 ^)jKLek*~Z3׍Q2rqWJػWy'r/ĻԱs ~@0D ,}'s K란 UO9 Mcb]?(=)k9KπyU>iWx>7A=|XTqTғ)Mh׾k|WJHqšYzuz 2KPԽ)O06F\꒺G66ĂlD&HYU¢Mg"pHeOZGodA[ivt77ZWqS x$ȥ/~s0iY_=L_8 ; ZXuʫFN!obK:Qͦ*whZZxWKMz͹>TPR8gVg̉)BueVie[gW̘R/0n>Ev.B}CfW0?aBp Dʷ+38`m0ox|˭S(df mEᄏl(zPϸIt]=PuBXmL9NׂK 铤D,= `||D_ <KM4q;Szn~qw<ͶYN AMt:FȤP(C9fY)LiM6FwHn$Xu~OzdZR)T'$G￞g+~t'֞= *{ivxI[c߻ .V𘾏tӎ70.^m_7p,Axe{>$_ 9v Ee]_`-{p`b?f׋m^"%т%2bHtZ>!ղv܋M et:(";%KpRJ_^R|#S.7|4Ǻ"ZaxIb;*G6ȯCRL6Rbe@: \ eLx+Gy\*p^'ewOC9!dhU9 kώ]_ή_QVy{?gPSH3f=LOx Ꞹ>Qb\< !4;bgX.:2e*mˢ :CV#GS=)Ya E?%lPz,U/krEDs1RFG=VUfA4Ϝ(7 *ZbJ~psv2KğQ)fԘ|*MBf2TzJʗok-k%G'`zV˄l*fF \2f(Er.!b6+b< Č*@Wt{wy C)g[$ߥDMӯ0ې/2K49 W8* #7"eB T^5I˓SG%8xhA|׹d33 +dө Dϣ*ߴff2Bte=;Ě$.YaVqO le`f0+xU~lU>hh UxB37\~ ti߽ l P7Ѵߢ  WBVpˑ"#V'2iirLC#CKb\mD["Ngr>u@ZO"C5Kl{1͜he[zY<7>ҙ묊?[b2jLhc'uoy.dA;r36&rI/0mtWv&#*L&XVV'jf{7MIʃi X@L=}% ΄~5>nw=JoNkJNƼ>Թs~(lȦULV8N}\ケ=FhE3ݥPIME)SerwqEVbtQS, FwsLmZɢaGz@KoZ4- ˤ]81qڍ { k ݣc ƳS{F`,}shTVѓss;(~َ)xabB6bV#,ǠǒN57s/5\Q=v ` Ê?T3F̲fRߏ[rD]z08Uv^2覺 !yغ._y]YS  TmAnbaOYrbOqS;I̘%P~Y_ckH ~M~!YN=s$ϐk(HEH548ZM"亣3>a"ԉڢݠ>0/+bW;U#i117 =u}p/%5=OߐݔZ1bzbLr*c}B}%ۿEG-GF XK<;'9ok6ql]ުiaEuX]>*$yցB 9kR/߉&@-fLةw%h&,J#kvĈPaHHМkO> [l&j쉺{Y9eWg#YLe!Y?bf)/Q խ\ eVɖɛ2֯B)ϲ =Oje)E7E1.x"`o.qBᬱKmԖɜO;E܎*u%>u[lC*~f|] \ l~eH5j7~CJ/ԃ~6^ӈbyKS?)}>滘@ g-P /ZAEi<:Aڞ(6ňorqn>&m|J5-E.e5]j4L8ܛE_^#(q-,UO{䎂2lbi("c_&w^ۨ qIA >_hc1Ę^)D :jy합7kv9֧tbU=ޔ߄G7 7@a(ziYS\?r+-pXNwa,kY]$/8"oNY8 SApRKbя&SQ5 4b폇 y VoUр<|2BâsP<ߞ 9ItCX;vN\Pl5{Qxp[l]b[X~ >TBi}:boEQC4;$̤##zY=P1qxrf | ܵxDf' YQٱ>l(z<A0/~􆵩`#X3TѨew6TLq 7U^?Mᐬgi0LTP'AfӏuoQ#QZ00Ԩa2\꼢 ;fR:AKfH׃n4cާWkZ3Շ;Svh‰h6>+'> ?Y#u@ǿdߍ7D.fweV@$Tc!57%s/o1.ֵK9YP,We2"s =v>&cEU8'܈zwW#7-ǹJ^N5ᔓ_`+*^0[:C[}7p- t>8v0!Zǁ绑"tvԁ u|kQ+pB˛ߗz$QT;# &q;y[qfZًe0pL,\`2u^Hg5-?~Qv8 [rYZEA22:]6dݵ mR\-PkL D"Ot 5M3/rؼ&z\l\Er{LPYU:ԏLUb/@[>yQ&@Q,mYDg&/$#.q7LZZ`F@2xC*|5YބyiD4T/ k*3ŧX  Gl6R<2O":}~P 8g~&s(yƮhQ%*GI>oF~l91+Vɲl R|dTS[̤56Sua'K^6՝F-T Э E7*3/;' jeъ|2Wݼ[jx4_)xYylBIG_1ŦcҺH|pp|o B_ 6#k4+wYMѺh-ʯ `Oz9ƽ-TQ2J&y/OS)yGqE)b.xDpY`Z;=. Ln6t pWg AқT^CóMaa &2QuG5SZ<gbeؔUxH膍S"ްV}T'KǜIԏ% ʇ|*֙K94r`2jFR2^xhL #,` q{i"*)M wr"ܕUK%%] $h!t9}nQb]Ordݞgm,&?Ux0+qp0s<׷Z#&å.;xЪtQTsM'Y;jW3zJ9iw5JNav=3懏`޵f>[͘^bJM,q<j;L\hl}&Gz@`JsG9{PNh66So*yza2HAztuyg+- wsk^?wgϩ+4!iXIcyPR%aM888txn[p7k)Gtؼj{+ ^OLm"4nu̮ 5{:MRKٰ ڷ?pcHĘj_6ݕiH(XZRs3쏞?U}X5'&N#2yD5}(0EC9wVoQּ(k3.X~&F;LjxgCQ񋡟nd]S)74ٳjfߏą/nozR^)& /dy͕l R祆3 Q> s(b˰s64_jSa`"=S6;OH>n{,"Y-OXr%> U[Uąa7x&a@#a]=c veL"٨Q~DTvsncѭoc=nEC|(ӊ&M P3G }%\ BSEѻri!u({ tr&05LDى <^Զ5ͅYbt뭐ECβ,+)C-X;{G#Zy'N$ѬMb>;@JBr|J"I#mlJuR޸%0]CC@6'BbE4 \/x.R Cho61S׺S-ˈ'j&2,2G:X/a[D-g?7GX𮜇*ֆz,28YQA$fUO**9*E3P SQIS ʸ {t&%_RT<#turL~kSE eDi#O.XݸriJY3C{*6'p7rXܛWP2v׍[gprHU3 SE^Xιs@E.p8`H'kSg"]jB6!t9oޓL $@eb.M w jHLAVbqc-P0܊@xHec PB߲C {5C\pg ]JwLi.ׁ,\r.zb\?@_lCVzr N ۀo e\n=g2f5&Lh\/|z ) X{z&69)R>Еd 2X"钓^xa1ҕi&s;6 (wejG9مMRs[c[U˟k/MuƲV\v w raר Nj/[L 8H?r54<#kGӑgX咚kӼGU]]CP8FNJp?!#,uU-b+M KrDP["3yӰɧPa_tَlEYFl 6jқ}I3}aV z}|%é&FQĭŦ[ȦHWw4Ɍ x՝nXVRi9hϯ-.)hDw"/ {G{ƍޛ z&*touq"m`5B1H'f8|V Y@ҝaȯ%2(ɸj}A6Rn3b@}tv| KԅX+0lg :G4{W|#L9[>Е0G&6ŕm_d2m܉EdUic΂F%Iq)u#,^ALN年'[LL>'JV*fd fVM*df\3Pnh0 kÞOP|vEd@^ }n! }qK5VP8^`d E<~YZvaD63e-EyLl=߳k.^ҵEst~/Ow%Z,IKJ=GHTUs83QRm8R&XJ <+y4<^}TKƴassK@ Iޙp7f u;]ޫIź7v-}Kb,K# ^6LW!1YrcӾ+u z Q qnz/-BUCRK8TUDKtpXH B@6r!k߭)VP':8(JHM.ULEdf||.aF}OsmciF(7rhrE !KiFQvdD#D{ɍXCʦD8{*qwyZq3ͥdDϮwG4ɊQ*ĽRX VE/W;NuD/W\R*Po;hoa0|s,LfNioݬx\ 崃GCs,k(u혩I38ѻVY j4BE>rX%j5|_4x-VyuYMC(.㾄GLS#vŬ7@.ss!}Ē`Q.R#4z yBk.iW8w}6p| %^mm`'9Uvr bWzʾ/)XG;x+{rKy+R-)0Ǵ̡_/9w֗k83jU!}FK?,_-"M2L,AN6Nwin(?ۡa}B]w+yi\oyUKO"ӟr!nd}DD쏶fk#C fy L+ >s,_y դgAR3}B4Ŕú(ʏXT]ƥw`2~)fckT4pє/~ujR7{9Ă0qhSߑVlAGz4Χ]勤 8< vdQE WT8p0x߀IZ-a c ʼn7m#8 {{W5%4*O("xS K!Eck 򶧝2+]'`HAY)q/rb&]S#D3꺣'ya>+z}HѤ/) i!K|{cY^'C=|F);Bv @bJ#J_Ie'i9!kaA0T/_jXrX\bj1AVNԎd?>) *.ăKvjGq̫X1ooѲ䞣ɫ."'e[GWݒ3f2g'69ieuG5ؓ ȏd &ge:I B9{l'hH{f4((Sĸ{7IE|Juf1QZC6#!&hj=v(qn#` 0Ұ~jY!խḸjvʁkoB<*!c8Cӝɚ2e}`@^"9a㺑4tv&,4 l<c#^PB߉= F@b;n"[Nl#>MM"2ߝBR*{0œ H1Olk;ۄ&"Qã$9oy\],9sH§`=O>Ĥzu6W@_zN-\U8BS7,W-㻿s$Tv"yF,!j<=RWתK,0gF:K[e43晃)$!֪KeN u7)opw#_W* :Rkjӄ| Ok!, GDbeҕi)S3rC s{Wڢj BiM&e$ԚNai`팆£?}p|5V&v7K _iTMajM̋ۮ{#5 6JivPt͡GE-I8qʩ+bR\\}4B`tVִMKz3qAqy#$ >q.x-ڎe;CaJK;$bv96 a"_UA79`hzpCT [`NZ G3{CՕAkMȄ!:9;>u6G:-3`WBa7^>=k[5s+CeXo ,Z4By_L?Rt wGMӻKD>聭!6fztG;5]}GQu/~V3C&8?V=v{Ҟݲ4ۙ_Zd2Ŀ{ɖ>tjEzbpψ7uɌn3Rj:=ULd]PRql}!Ouօ=g|۪oC@On^ȵ~;[[ܝtwjvf{Ls 80-Iu+\v./5=T%50 0=Aq@' NIRf^,b%S`TцK`}4(z;BW !lޟ, _[3¤y[L`-juNȺY$ ʈ.X8g9y%!t/4k[-ǠQA39'e T.Yakb- ȥ_⇨.f+Nj9?[FÜ-0JBtaQ$mqF彝aKdK0Urp"j6K{z$jL%xk7.Rў\%a3ZR1Xŭqź1D!NGꡇYznR9> jw^FdL%Ӥ*`dj  :43yĥY|]5̶e/7v;WO!Wx+պV>q ). }:Oy76tlni6Oz5wV&K-諛Vrk 0h2X@cʊX}鳷'4xKڜ?&r ! 7&!d} Fi(#Ӆ7v[^uQⱾ}m2T Bȓsר,ˍ0uP&=<#6y'O{U iʷ#.(Is~dI{q0RLϾO0EYl/-*7-I\' CK@Q]nWˇ-ڿp9㓳iWi*1M\V=7l&dP4f`lY"8$3*6n="&|s#oc,rHFLE[*MtjT[ddЊ&9c韧ʑI' F )gg9odg}0udVp*;ŬMNLDd^VFyf͢GZ툓1'ЕY\Mpb%s  W/؈N j^aWS֜7;]4&64&0Aj |ҩUF 9zq'% fïgTSD3eg$ ^}0 ʅjg2abyϷX7םqQͥńxVϭ w͍ZSh K Eǰ)vi gXSOrψcIYѤęo|cp35ge9kc!ڳsi Lh>oı"#5LgTyΉiO]:( 9Qt[{q> q,1 xp_@@ n1,F]$8s PQ[/k*VZF8_}%RӀ3T)_aƑwecJ件7tImR)9VwcP$S7 >[ gL? byͽ8,~l9FwP74njtaGIfOwyZ#NR BGQ.'2žNI |YPcJ'"5`1kfFHc%d;Q]2U"Pƙ?jh6#f5&(dĶ#1)g<Vzq-؈BZ8`DVE,lyu X9- pige:|" _j]m2T.qbb}vT=VvA!LYz<0ԩL5{p򿩻dAyCMq{!Zŝ/jg1Uc~nMD"},eKDy 3jOa!p 1󧯑#3-*[ p͞Ƀ֔Jbzt }=XhH9ۃu-}t J7jCM|/@{@r=-{ _ʩy3\j0!8(.r P1 ՘U;,t+ !xTiVX7|Zʾ3IQi/z"/Vߞj{\㲹ʞ* \V_|s?Uugҡ\sOk uȖP+c (q7IWISfKG](KGn AsVhErJǩK?%:@o/%F={VCy8G8fW6{uZ UmSrv6S(e]C#8Ӣ^GG|wQ򸴧(_cf)3lL(/&D]U!ַJ-7*eh/7۱z C<~*y 6o9!Ks<6d)3I ;?D0, HnM2o>X)d0'yl {KP)5(%.rTɺuott9 G2J>6[ew 39t -qv[QZICrrI2  ga2DǘL8 p\/EnӏQoD٪Si>W\2j|KƮ #n HʱO BsNZ[COmdA 8,4cOZ}脱bxr2nCb"ˮMQk2tk\KrrWmߜ,7g_3Y=ê%էNřj=exp%IJ2 BX~9bg 8aJu!)#=Q"AxN,nvygc/>A scw%vq"jtBItQ܂ ؝풖^p}J6&{}׏VQ/aPzwoj֞~~ *\%=۟^KrU9!WF =Smnr`]R5Mqf_2Ͱ #LbORd(&}?+z%1L¯me f>igOzӾ6chMa-l4=޷C).D8S)$2޲FS` uD{ R]U]=+cwWz/g0k eKBrPDž^nQWQYrJC@#MsP9,Cteא1>^[*jؚSwR"}T >+3k]X,<:wAB>9Td`_m4yfGYdMK 0(.xvB_NKl7,x:ޗͮ?R"K|)ÃkK G2XO<.P t)eͽrU9pS{#N5sf]h^c_%A\g{RVzTZj炀I6ޥ^]cmklVkt6+O;lDR_.Ǘfi> ̍Li \h{%x[h=uE xWylId[̷E༢fFDkCy)Bi !{~ s@Ǽ1׶N2947a۞ƒ)-kD'sVHEɽO9 3-igp`{"qNEb.@c,Ah> R$m:$UưPdXoVJ̹ <ÞZ4:qHJR:gyszݮ%%Rd_>VlfzaA+ASl8&ݽ&ceSdk}!!dq i')`Lͮѫ<(L}id|;Wo䫲Ty[BK> y  '>ַ2BZ۴!:FJ3x?(z5'b0heч}1b2#Fҫx=3cd?lB}SM0~=j{Zekm]]q,JZ85]_9'I|gvpP:YҀ+p2bETwrnZw-2ʻ[Fwi /2[ʭu~Y1o `Jü3"k> ſ V2KC%*nÅjXhK *Jߍ:fX8f֘A3i+129J{C\l1"- 8XňgW=mˋ )P}i8E!?:$Nþm6m(Sy`oъ\s_fS#A zPxae՟gRaC}gخl/ Q/n#=^cr(RAB`pR>٨G"V|[C}?>ghc _CzOyRD !Ӎ/40ؔ(QSNXR@疭yeAeSZȒA =-Jq-C_=j!ⲀK=h 񿵷1_P8\AƼDmn(dfe2 nE(X\<ܡNlٳqp fa+nKQr&՗{LI4K4?r=hc8ʺ44>%j^7>nz<" XXtb x@7CHH_ta +4D^G2z -X 8CR)olrzhƗi ]h1M{`FjҞSMV"j Fu].;g{pܒo4W6JE2^ڝxk.Lx᳢ qxtPE1~Egxה6D/(ܞp-oŊI.ᏄU5e++#$x%,GfPJΙt-]4.JuG)gRa[GH[1(:PaTdXő™kN?<xb긩`Qd ML/VGZG;<Fp>jO_Z:NK,_UT* cpĉV΢b, W+y;rmkL"D@wRFq!E!oP,ǢL(WVZLP; >?~Op׾@SNQ1%Bz'zA\H7dzGT#/ۙV hL*.Or|=1yJ+#eGXj#LiD].K4|S[.S SSsDu+u=e1z/c"g5F;@Ϣb5+98 KN_R<zpw dJ}cWMAjm_e1$Wy qE):N:|ۿ$Cvݑ0I"4E̹z(g?`S^n곘۽DZ ^;^SVmw/[CQF<Ӏbkg4(T=7P# u]Ep;E"iEQXꞲ$PNKA}dl}1#8?Hw4AK#>HbVq-V>)S&Dƨ|5l*~I :ٶt3-z\ڲ: ?s+5gj;YYiimW!i).ʪתȼkȩW1|r6^E le>`"Z[rtsPi& xo ='{Ѽ+ e-.,e~ĩGI# ~;qxH6Foa P4Ig'3AA| g$#Ɏ_3D) Q^N+ !aY9h+ODzcy=5.Ȥ'PgkK`?"찷FbKZG~^@brM`U#<>W/MnVPI-6٦I% *8)N`^U+Xy&&JkȕXr?}jgeB/*X)`|/G2T.&MFÁP$p~VrS2Ǿ A"$MX(|FqJ>7 Rߛ%C?W!{s6y sBD7btRvAXefd͜~%/43&RIaZg9XBW6SK1be9iIGJVN #e ] l]~۵ؽg*3o[K6k Lw0ƵFLKzDऱ,:;833]YIԔ]82K3.M V+rPiJ^Ox*Ě'?KQeBtK*waы`f=6xLmQ{GjI{תaǁ <zՑJ2/a5@ƛס H2xࠝnㇴ-sE6 0,c+b 7wETf K[0Ϭǔ):ɣ n%shsK 9HmMV Bʵ'G!2|%oN(1Z:c"A5GWg"\Pg\5jʅíݝ2H5G Ǫ>%xqȒVkt$$/[ Euna*kt0>4>[2AgS*5 ji3ʴuf} Oz8-]D5@p2~g$t rJ(iMqrΐhAGd~vLO͝F-cvun> )!*NؒJ0yd8iS*609*9α j⇺n\4$q$i-Jܴ[d߮( GnHՎv 7hlQqcy;6KCq{|7_/۷TgfĮSnؾov>cG'o@A_ 2\%%yD33_ }x"FK`T-5"_egPus2C|fM-7wofl~Sw3x`d*kI0Hgh@$i`ؙ%l*MF\>=hɜhFôU'k G_;e[3I^]H!*BtYxV$IȡThalRd Ljs`hD Z| =y0jj0fo6lc!މV^3p vh3`e\/vTPBT{G]8xӿgI#p~Ɖ2.-Cgз LT ;z(C[\V#Z?_bMywA44.hyDYIuY1tYMJB 4HZԽ(Hfpױy&C&[rZ9>d\K8)A0!w6i 5W؍A 30c%إ(Pg6dvU0fkǗa.2-r`E1[ wr9R'oˉ .5 %| eK fT*z9lخ5M<7=wwI y3` bVP]V=N͝f9Q/. _/qHX ' ȁe~c=ɴdK$ 9Ye}-:c'c^.VK,飸7V36!VZGdl *./.Fu:X==ΒXj0-x>Vd9Cad4j<< 끠X$̹ڮ* q[1۹ 6$6r$0I1s%>l'"yù}%]A͝KA) B. h6FOD{E49L~{˰S=: 40=n gѐT ̈^/h ^ o ~b#KQX,`e֌tfC.<$C21YFYHŖN &8p"A3 3߀ړ%f VM]j^#k}!B y\+t#ChQ$@א Jw]2a/’a*xFa-RZ#}G=נΕ)A\e#f:̉i:׫%U5l^72Ux(sј&_2HGG%8wR4=ǖD1;y6Je:g)qLl ۉa $ 3#2!k\,W+Zv .v[8 m׀/|;8֎Fon.}Ϯ(ha튈xԀu{4:4CI s '7OlFHO:EcHޣ(sBkvmp636填/@d~_ 'N!S {p"9F8 /RݾfႅW\x&J=NWp[}QL|rSiJOY=MӒş 4+IS5wdnRUdj9=UMqq$_ Tk8B=1WNy= |ZDG _Hr3-t{ :2Sc)pm )WǨ޲4W̙[yC@O4xa_P{FDmk<ԍzx%wڅsd7n=rOZiFDnQwCL.z5P(6yqBgBf:qtazŤ۸/~$,l5lEWnOtp+G!"~x؋IUN}>e{!=çF0TK,4{5`-m/UC.d >FiPEgm:  0儿 6¾h/³z@$9x%QÎ#V6-uj(0|Sx-`k ={k+rʽltI@y|Z}uLC:h:\ߦFn!Hқk&oFHt;v=oTmY  |ƖUo >&&ELTh&;uVJ~*B/xvw,T7\'Եv QjCޗpzI258JJ(G?ivӚv2 R &je1j91EYI;cK}؝\@+\Zcs'd2{aU/)5Yϓ3s%s _<'Wuz6Aprx5~5CWI WI~37Odgdz]S;"*O9N&Go.}z@=t=)9>/3nُ!2iQ`vT5ט k,XHo;Ud)%@֡z:D=㊗cQDž4ye81,WޣƿʖYy(qtE1dpwUN-!sNKG\X-=}x UO7M;~A}#wIE x1Vq]( h{doxnCȿ (d@9Sb.r4| Ave6CHO]@~cZK7E ryc0љtW),7@0ED$4[U?4Ն4,Qʒ) {J?%cOr>w 8x/784$P}DW.a1}//N8R>k|NM}U}x;:"7jg򱍃ut똛`A=gb *|[:l[R ks3V 8At׼:z+\&Օۭq[]buq9`8p=0J,Jp+$ִs14TД}@hw-}Y7:E 2[bs:4 pƷ7%oaS"l4ꏹ|(E}W-E`OƕPS֡`TZHY[+>Cı&EYgG.-X"EN'[yASu18Bnzsxƽq2S'n4s:BsKnr{"(@Ԓu2QN܂#;Bʏш4^''Q^Tz0XUavwݢbhN`a>F8qS1e&b8F0f([^A_ߋ+(ȃD:>;D" 3w +N h+/>%aBſR3h|VT""6A`LW};BU}!); od7%B4b2ɰ(7됸+x=[&q"ɇ+8? dhA{. |WA!n>;lRFX`Vq1OS}Y3ST=c`ذHcF8IsgrQz9|@N9)j6g/-Pt1}*}?OmK󪼎WQ5]֌|W4A_\^R-hahA@$a.Pob9ő _Hy~hc4K$q ʦW\dj_>,g DY! T;d4B K ?ʁ9dCP iɛFL` X2 ?JM{XɓZ e9 \\Aj4Q1Lw#|9j{煆~?J$zGsEE*N䩭;Gꊸmq38u?O@=1$pe"{mIbfQeq ;J ˄LNL <:.ZԺdN u0WHSծ3~Η9#>lkLQlAKo^K_߷2?81ȴG6PsKDKo_tA=1[)@dYNn1V1vcCZ߹ ]M2ްJCx;g#}{#Թ_ HG(IͺlYczar+.y o"?_tN]c#oJ a2,|oχ Zx |I͝Tҫ5MTO=`;)uy y|S $6Glܳ]GaI]%cd.)ڃsH^zkWkZvwп׫Sީnt#t:/~oLNUo[~J+KF:Xz3wg΂ڝr[ޣ'5sjnҽަo{!||?h.HUW6K׶ = jmsS޹>VQZǟvycUW}i֍\ih&{ݾMoHݰnu^4km%WOV(<&ۤ&6>{w;n7Sp0"n m}QC&/]uK 6Xfa淌mK#ij ;"$7s"ŔrҹI[ϓ`Kd6%b].Arreӻx-/}atŔ?=U&莣N(G.jDƖq2& V`<v!,U1H;y b&1S81t+xP[q6etMx9B\N,C%Jkeyo DW0H5?dM)ԠH 8)6E)}"rV2-q&QېzVRe槞רuMÊ([Z ߈;mh~ D#zuoktf=!V,'5+-a=&a u!pܞd\wG"r4[ʟhѥWĀ ÉOP؈Jq-MATN7v4P^"2#? :s" FKa0H$头¤:ANR@SE.\S%_Oi*c2}|<^M &bMqH2çN J\ރ$Ea-UQDi^t9=6ц w_ S-MK)R4c:o :lFqȍ:;)V@Ֆ7Azb'奄ǟS3 [08G zbखW |qUр#MyM G,u0mlUD_l•VǬ]N9DG'>)ɹb,K$Q̱fXd'S "ge]B;VHęOKv""ɀE_qqEcИ6]&uϩzx).Iq+1WwqY RY#iv+ nHiC1.;~"\h;Ej;vB32e8~/dtoywQeBPIgJ' 7q8Uc9񱋽,5wm*`e{LP6QY0z>cuL/4 8Y*%hL= 2`Foc˅`0\]lq NHrPQV$e&JXk0a2U^3c>`Tۻðк'I[Bȵª(Ts{&^0s`9Yg%*~ucbƔ͂6砅}yV ,2R#լޕLhup;#c{:c}eq2(rsz{C& 'lb7Nv!98fAT˯ǵQQzq NJ5~ʥAUuF"6'PlcT ͟YxZ*. .@Rd^ѿpz,~4ddpe.ǝWP~h̒C+̈́[a1u8s~:0U:HBGB.ii7|类9*d̮+;!Nȋvr9rs\=o Nf\D@p0#~W:Pm}oUPUg뱖C" MLNPE / x;'p*fnmRx HG7,-WbnCHdnG7⇺#^=sN90+d/5'7RZysfSؓw3]hb*+k )Nw=}ЄJ2'QKꑼY(^{NPAĵ++kU׈qN$ػ}ZR8ډ{sNX +A?cs\0L"Nȗ}z>A[HW4)/exӸYW'b]pLH2""m=oX`O~)ǏA"w)Z\zZU1+sXԑ1f5 Q|_!\W#5?EZe8PCk߶E- 62pS`~5l, U,,c>hf6"fS`uOawB `ͬ_kl".gg1;QX>HА MH&DGCfP i F87}Ggč)`9lqj,ZFCSHC }f6pR!j;D?s@Depbv2gT@pڑdymgwI'߮@U~L0%R7~ab"s]WeYp nPS1w{/S,m9erU٥u0 ҸE6l=ttf })61teJElZMXZw|+OSWt 7>QfQ?vG r+O1$mՌК8ۚ[[fDh^a(LjKt<:$6 "7aˌ~`E3PMRg^,y;Yy>6|tHtxpƪ^(J%c82Q:N"B?:+8t ''=JEc#3dK q*.$_ w  ?7ckfZJ J߁yqq4Ƅ;Ґ?")=etgUQM鍗09gj`Fe$i|ެБ-I; #wO M 9v+lS`&ǬVZZ aQ,ohQ5h^$Lvb4]M3nbk VC',I¹gNc- J2N?f ZMqF[_&^t{3C[4 5Zm\{lo+/YAHl28ᔂTXF.;|F؍ TP >9NcϢ+aSCOcÄϙ&i_(eJਈA_O$ zvѸ)3. BZẔ$ 7-7_f1 IP8h&;VL("7a\"IPz[峱uhtV H>$ҎҷjBºި EͲ p[JKMv4kAWʎ|Rl 9"{0O<__cd Tks`t%E2L/ScS rvth mڠo3! L,uf`d*ԐįQL8':V99d5 Q*TtjTYU/x 7ܩs? \Lsr;1;Շ?`#z,N~GCȟ2-}źn0ʡϥ]<0'u1iz%kTՓյbW0HlVZC&bL_2qJ{sj|Ɣ-U [LL7{@g;q}t41#C3;ed o#L!>f|p= R߼%E7[o{"PNwrhjpU*kv:}*66˗|NA &׫ßs "RGxP 9O2? /WOq If It &x$QA4bAXe./C``0bt6{¹ D;Eit?tɰ+ǵFFc)Vڀ:d[4#F˟&˷BkH DCxtőMk*aݯ&PW]l|Ya )953dJbWGAC:{Û4&d{:zAxe:?R{GBG\k!{Q݉/1\dr\q&܇ȉ:nC>99&"@*!>N=.@ThX'ɛ!1'Y1 ᇖ ف#m `E)}Wu&Q1,Hu(Pb Q᭜r)-KVT#S8T!]\OS<-g^ Il tt+B[f+wxF͗H0..wb%jk-8kK7)Ө;\ȷLȶIn ptEGc 7BV콐UB.;ThwԎVQw zY>ܽ~P:XD0 3Qa]:'pޝ% z"p N Fo4F-=?8 "g}uFRn/;%|e\VC!wRxS1'$PPs'I;4SwOܗmCڸeg/n[jHB3P} g)r/; Ft+C\q~{K@5> :^9+n$o|݅Y,(ӎ[D 8>d h6 ^4a~7bO^oUp{ x8aqgUݿ2ZOE5x65=!$F!p$6l ,N!#@# h*0WV$DWpjlK }UU{>%)Y3 J[C ++{fW_/}r*G$crgтfW\pdHy-$ M h` I2 K9I/x/^c8Nstp `W++ybeu X*zD[I+(z^I2)Q&!@ ܨ#WCYC;e/8((NLgL& NͶgR-O;wΛ0E"}\5*rFL/)bӄ9QJd`A-;0W:׬Q( nS4ccYLהܔeOνs( YJ|ꌦ[;[^r\yfePt(z%#Bv펓P̷y߃|iuU]l^Vwx4|NrΗUi a`5X=CU'Q ?:v=P@,Ƽ - NȎl?Q>{ mI$i\e^opVڲUU>oXtL*uf?mKOa nq` :$0_b#C9 -</9:kPI0s Ue*?zQkt*l(+vfCdĭnKH$+t#(W+t!KqVIr?LwSBJ,!MHhKJT Pv mҪ[HdNOpw&ѐr, n):'*f' 9z:Fɝ?s{j6ksYi*q >3ƕvZ9QOs]'}hjsy-!Ѩl&"Vb+F4PtWLXFd˧WD<=h& MQ^]sNP^|1ш>Z-Ej7+fRMDS(Z(Q;lEJz.[F5oSjŋluRjZF;=Ӡ!CYZF QW"4ULãA.iJ[Z]߬t0?>A|ƖK9 wOqNc n0sGؘk$g)y3sv*Nׯ+-ސϭBuVSm7NV;=F jUs6 1LH ل7E;:CMP^|믖w@Eۡjmgen?iT@&|/et:;M-+p J8ISq5VEhKCd5PӟTm@ƟR,%̾E`RHYD"0L.֍9Ř ءOJMf6?6͍Dgo'd"Čp̬{Ý ҞUr^ m`%%14Qh?jF粈Vz830ZiA DZNKkG2E53*Mϗ jWva#H)ʬZoYUe~~Np+I;X0#$vMJ"uA}V#[i鶙LsXc:EF?b_OC5|Lz" ]GHbs]~vim%3$Bgxv I#i &&ÆE+"CylxFz܋!MH͵:6ͥRKv[zw#]5QsT=f*5DaG+iټ}#WL.ϙ/IVn X'#NbpTA.7L0Ԥc12>M"6_iPq`g +HU~:[^`n'P6(ƒ$B!tF?I siEf*DlzeY3ZZwwPbzz:Lc=UI>v;t0F`;ər>f۸־ n[I/*~{$آ uq!=;^q@,C &o H M|'P2 :Oy&ҸOG zKc r |YZh.oU c |-PP#j,138bqQ>\eq=2YGwx!:V )YWi=T|l/2ror,0G }1a<(O8m N*8#^XZ_rܻ߂lH0{;-~7^d|xyj .0-b,cƒJഠWUZ}^G ӬDziZ?GTjс7 k%* y5@KSaA"}O*7KXN3gOv'{ϓt<6ZɵXw݆ s3; xI2@g̾J@>\e`BBgנY%s&7xGoo-{6cae59X[)۸kK8D0P}\=SCx&$CY/QEmsy 7ZQ\X5*,ӟ &(A&NH Ve%4GP"uI?[>+{v~x@g:ZwyJ >FS=7p^FL׌i1>A+!ѤL2 dv Biz׼{m ܮC۾TB zآ}'[]i,#h( ہ~ZL:|0X~8:Xl ˲$Z6~1 abxʇYyi/+,,)fC0(WC  XBr.8!H"Ȫx+X"{=Q]ڲ3f!J?$;k*2_wJi4˨ݍ䗂fFvETW=J4jK` *wF̪ vliB$m捂a${\ 4hE&)9ǡYl苫rs`yޣyd_B `ʴ.cWS =ZtJ|fv =Pv %^Fk˞>C y(߃:]S%|=@òYM8U9  \Om'7H6wZH:!$_2եD#wPu -"OcG!s۔=8_z`-a}yԜхF& F/@x*WNq4rg#=пiv p Qkwe4DК 0K|Hj l/|ڌ ly588{f<½8 Cp8~(4 ̐2>d\LӰ+e 6& ysT4g, sÑ@cE`uNADW^  1Nl4Oq-`CP:Vϡʫ,L@F焹po%F&2$Fht&yOwbuu|։.r#Hx>y"cFzj"![bTi8T n< ykF~FV٧d4f,VRM4p*x7:\{=Ikpc r)Y$ . UC  (UcG 0&SʔtǍ5x%?H!l`umm՚uG$ )a~5n^6p^ iE'{aVx ZYzX?="z ܚik<PřW~s&PXg f#Vjt-_p}I38eಡMVL].ѝC,PG>V Gzp1@&WBFGr-H;Yú||'?s x?#k}Seظ`< {=TEiƅ~ME$-@)pN:۽{X4Fc(?;`PxKpc v$U!Ij8zyf4_ր/eUU&vK]{HeCnc_|dE--7NoUցS>5V֩tH _<=<{ ުzMpuFv3@je|M/ϴ_mTP |<,28F$K8MV<@dPL5}PR)7/,YDc#bTH_"Kbuv1W&1)@O7@q[SKg i!h#y)yj{pN?-H8l~kYRֱ3k<#5J%k'+8/\ly1fC 1㢺l94F4#5V-s&ך%s׃vP#\9XQ R@oYϑдՂƪNOyxxmp:ᓬЫڷ 2˳:ʖONH@uX%ْΟ@a0dMg.A[4>c%yo;FV%>OS| $tEw ԐÊ2#1vr;]os=h4a' ĸH+~ԯ&''+1wG7Q:ȁ˨:` 4auc~0d-ì9Xt3{sf3&rg+I;FN2iU#J2jOm}I*M]FK < EaHkSq~B .p=pRq0+1V(7}ɴ'9Nytȇ^a7n o,+[_kqE;S FښEBF=cV+ps/܉TZp-Ҝ/!tKa#{@;|M*h::ԟ3JXAT~ke8,+hnx$w7ɖp|Ke`zC3䭩/5w::7HܗƏo_0]43cFVҬ_΍%$4ѧ:jze V5&mw%c-o Tp0*I(iv~EMƄFʻ3 V#AKõC6CBr{t76v֩029QfЮڜW4tdJYqagC"=M{_D~Mԝ(rqϭ^GznL})8IQf`,Yqbmvb^v;|O žWnKOF Nh |ge]C9贑ܭ"#Iq`KbgLU.:A`k =Lkt3 ۹7~wFagĈr@ ,kc4}P 9W*S#W+r,[&h= G\l!4kzLf<<X0N2b6ӈ .}IղDV_{9-"H9eYi4 :Dln UL5WBU8{3-.ᠻ%)MҎnqx֜9o㒹s`'C@_]bO˛]sټzӠamȲeuo䯺X%/LwDmo}sX&\Ht">$wELMl{ZNy6/&mBA h$W ۀ=Ɠ,b. Xg"8:AWveGͲ %}i(}&x[{DuChAFvYE\,,>!m;}OPJOju Fˢ[G+ VHBS sixv%,:D\6Zh:JM2]%`jIBhz#S+G'=9=`UO1)"tc%US°%ì& aPO+G)c~P_?owg·ۡ:~1G`Zdܣ\k8,Ϲ|z4 IL r3c䷓2/q=2P5O*ErQkȢh!Ԝ0,SY9$UuycnµXf8a 0fQt{YMeY*zs;VXUGcL'ܫ9g8͟"G,Nyvui۟)aJ}a݋ $-ioi4mfLi1<*t~=Z=t-ٮc?3gٻ?~k7k|>ZVoG8\5lcYuWKʇj-D;j uڕ;աbAf'^-~ Ƣ`1_M2x]MNr3kHd~Qg@hl t~nP&0l-q40LSV N)!%e8;in*E`Џ#-ecTjWpI5YL%lLr2Ez16)"ΰ-ƄIO2c#0*.ȸzgn%vg)=ժVt,]^vH#r }_|7emWT'hFGigE#8~ϧAYgFQLz+!oܠ/ň_">ݲbg? weJ<rܰ_UA z :/(x  $J)M rcH4(”XXFpۉ;8h@*a#a@@@kmq3썶?5'`QG[|t!otJÏZiK?pjJwI3BUŐwŢYy)gE, x:K|oDzHeAchJ7V-stz/h,"/0/7p Z]]F@مn!KH=mkp?$P۪ 1(Hq5Ӹ .Kzl;JA3h">j 6L]*X_&*C2R&V&_)S+Nވ lVZK=,,0HR5>2I %AF̪X25u*Z/t9pwف N ')(*4)on:(JǓfXMf=(a 5`6kծ-j@/|^q\Ӥ qKόrh}c0yXMD~ 5O^8V&zy ;>Mə; #N0523K\^Jt#p cVT*q::TaWk9L~eɳ]vaʜ I!YYa"·߳Q2Ÿߡ:ӌ]”rls-lDdێ4T|Ċazh27k$k<3=eq(!h T_1Qp?(hb S+9I nӰ bONn9i)h/ZŁp%9Ɗ9n.:3ivQ`^? ք JU{/}3hܒ]Wsqx8`S05ޞ;;R27ˮxJ"= %&,Cq@yBh 1/9R5aPDs[ܛ?Q>YP^{t|K:$#=N|pk5Rw-^hu]le-p;&R$h` p4 ϏB9jhWQM`QP{}=FR<%`l{w+IA^*%Wc1ɷ ɉ{\ִ֩AHC|8l5qiѮ[/hO \ܦld^ #}5qjWEFzǹ,#A^Z@zo*KBz}3Y'^4&:[Դ!=6{_z-e!UYٵ4V1G:|qR=P܍Wf+1V2BM͓"4r1*+I41WOPI#LD}"wLHzd]e|-A&ɰa- ~o)bzh&|qhô61YÅOw] h4/pG !2P*HY5 Z<5NWoboD-"[}="==M47IqjMky<G=/讐,S]'mr0x+.ވou ˝7ʖ 2K1e3 (xYL<FM((Gt&^fawMRk蟣=&rj\ Cy,S*$ c$*d uԗeZ_YV`?׺k ^eژ 4EU*2eˠzŀ/3a SˢD]8.lI>1N ,b8rWJ$JsN2j~XRfI*TԢe+'?8-h Ӳ6lo숦ғ~Z)<,Ɲ:qG!*CA^RceTЬAm%mq:} Ƴtr!A[`;X7fCCeoky|FUOLh8b//`5@Cju}Adwa6 Xk4 -D`yq?"je(z׈`4*(hrkf̦ ۂ"RdWʕ+ۭ42PC}a_ԹZlN.q[{0H 0bjrm273&XG$Zk O xy$%,aO۲T-Zإ~XvtϦjD-KE9Χ/Pi;nwMSUkIg,۶}WJ^7rĶVyPWpSoO,3W,;CxDLJ陔.Ӵ,ORjg 3 }Y k\Yj!<I2X *7 /bG /Qf*C4"n8YeT6#CzMF6MɁI QAo z"NJsap1 ţTC8Mαq`o4IޏۜX>8F|d(욟xi}=d㋍3E1Dž_p k[Pmkc(e.-٣av/.}כjQig`NnA KN5jdz%/} G-_8@:.rc저%ʖy/,$v_>]s\c'x`*Nsduٝ쎛"LwV'*%,pDLY8;r jK:_=ZTŲzAPvkojs.?`40wH eH&Ns;W/ֿ^Yqs~SJj wL4qRn bW7@ciאexe ]=֋q"aV\yPds޹MqSkP0Y];bD|`B@J'f 4hتV,prA\Pmb6{:Gh*Ґn|ܨַc Q\N|⛛fuWWܮ=HXzVEqQ|JX;i*W<ˎڵC"w-*zK6&wU_!v2ɚMČpL;k/G;;ŀ]46@?-Rc?!_FlA(Yr0P!}T}7P;7 \ C>/M܀a.MҙOR9k:⌱d/Cׄ)'!jp޲ 2yߴj>8U,t5rvuj)P7֐PF'Oi~?PdZvT*K2wpΈbfҞY>9!㣿/!?CZ-5JeFKw6eיyl 3JilHYMR빺 `* 4m9{Z=[2 6`]Wf8/Tj4k.+[ *< VlBڶ2%xUJ)y낋#Nʍ֫m;ߦab$Dj*/X6ڃR,uƭ9z$kzkufz28`jY@%K&*HY8iܽԱ sۆ5pMv81?Xꦡh,GN ][@-~ً7HHCR~!r9N3Bd֘ó Efus%-{[?Iy_-jαhsV`m-W`F@@+OKI|rQ׺-Ή)E!sR `AQAɶOV_!NrR$_q,GNӊ-7~O  m ݦKo0-wo%7W4 `8wđ@&)AZ8 \|(3sĠn}i]#pY7m1uFJm;v[dV0Nb}Jk'2og* l,uf'^[zbji+59\6{?%pr@\N(NBݭ w{?6MÔhɢ%kzEm"[$PҒtH< 61S(H397 N [: hKZE-ڿ:v8pf!NQ0 qHT=" ! WyYN6 $1.-Y;Kui\\̳?+.Pe>'#ٮ b9AB֨Tg}K+YG圧mLWGndsU'A_B$_ toħL,w ~Fs.沏,I-ɖ\mR ap Q{h$\Au |B9;q̻k K.3ϝLq9(s{.7əLt;8lbm,~$b魼 Sg -m20b0 E{P '=@6:5ك=Eؗ妅pdYjK;V0@<"rq_ V;>zs?:1dA Q C5[ClyIƠEHf#)FΉ2F^F!2ǧ(5jY.ua>=[4/ǂ_Z#Ӱk}$E0" gF7b )x4/&_dQ}[b0" ԔP".q.Jn0CI\Xg}~kZ+d?MW[g^e,/}+ӑF|aLFD`Ǩ!=&4ɿ5]E%s!&P_hH&+41L0+1-?ZzBG%pQܜwlfe2Ldڙ5"5`YfACL\|=j7LF"aQ3W`Te.hHM` maL՘ԽZL7%Fl[8$ƃre>6D\VݲQhDEodeL3 ~b]k~atwI"4ggM=;xkùžvyeXgm ht=\wۃ> p::| Y=5[-o |t|,S1О&1᷆xY\C&cfB<+j#Nx\9$I^L[gP\ռRdZY!dU7Vo&BoKstE1+,TPh  Tvz2XZF˰y{5 U LLdmQ {m2Y?6ƢNݠInU9K)Y-?*KĩF.+3/@t᫽q<+QJrr\EAъuҗi. f U l8uG⦵f ƪżZG{',5_qSMX>D*6ї:s|>/!/կ}\_E1ZAqBx!fG5D[Ouڳ5ȨpӺ7w24N\*\w39=T Y"4U,rDSW$wx=(G[wę͆YA%e7 :O_$Wy)KB%%-sY9':&VX(JcTRx8{k-"KqXNTAMV d~g>,qLEޛcbh+d̼+>@1A0UN[Q^ *LE}ta@yZ1>m-±eJ@ UwJ8z0[9P(Y5U3Y1 z]?h79bHS4@ ׀yAWvNQ vd.$oCTR;r ;۠`0=Ap#3癭|<|@;T[GAlC _&$†':CL;L[ϲ?^]=)<8'?0aw "C]5$Lkɖ$JY/7/u'],/}ʄ(V"]rc-+i>ɸ*z_=h|޲mthX w^t}/zߦ6S SATroylzURQdwhQY|mNq4-74nyw>[Omi3XqɆYFmF!'0azE,F3 쨂[lLiX /[ڄj{f̷3aH=Od-hQ鬝15f%CO9Fb0wØ&?2&eݹO>a2lOO)\kj)X>߁%\ib\/"J0z#K_^u|L8]kLbb|Ydzfi"˿=Km3%l$_d?*y,u}d:,p0i!HW~4Ik)|=7*/}]rB!0c2k,*$S*Y>,iW7M:wւ ?why[yAQ"xСP4;T4ezAg_|Zڰ&4 wH$͛i^^ר%*}74MMΣSRU߀SDE173!z# e.L5 f\bfzD~u&tەsW>8)Nb\PaQDv9 \‰1%49 q&WT}GVtAKĸI7S/hāiedOС@7`74={T.} ;,Bԣ kysE8#t&X\-g|/Ok|7v-޹6"Iv`>S%k|D5r)ŝFZk ٠}H9\j<c[P(ޖOKC~+ 0J)_hkB‘T:j&SW) WkKM<f*r=Q]t"n v{_u">x0޻DwCiOȼkyZ.}O7_zAXAϝ5ŅD'93@+IбHYiZ;'=+EӁ]6SJ?| ,$j+ dB\e*|%1 YD6ijč/@PEUTG+zp00Qy [(IL;h2ǍY3 !Lc`pw'={`yt tz#2IV%hp</8Ix[/ 41#-KKƄG)*ˮ§zCHQx K̦ʾS> <z{\.t?+\$:p*WBu6dE P3+hՙ(3ї=0 u. _Vu_8Dڵ Wz qp/|UbJhS˛r6ݠ_I8i ua(pV&[;>"B e,V Naj$/?b7"@mY#X]8 cc`Xlְ&97>vOc2>1Kk||sUbH{N*yr k"}m"U}jx$5Kw `{hS JPG@V #S?VV-zq呢k lCn 'E3[z{D"]8EE\ ĘU>J*Ȋ\Ecm)o ߨxy`}9(|t/ 5TmI4vu+yAѦڳukSB8_qaQ"c 3{Z츀ݎo{|h>tNj0@~neӹ qi,99 D lJ-'p9^⇽{x?Hu,LE=~t吝"DAy5?(I".%P $%ׇ" i mDPy@Eha3`|Fq8zzXdsUOL=wn m BvwfűaQ׉HD C?3~;N2y>Sm3Bķ #;_Iބ\>\} м'r8ŒDj٥e6,| *;Sb˔* (PM֘2z y?kRD&CzQ45QNʌ@g"Pt +âxa wZn݀@(N'qe?>7PF֪A bxLI!}3QI\MC:{?몬W-L0Ykd0)Dn#JZ/>&-Ky%||f̈O˅]]{nP?;yQK`q{FيRԿ;ySNZJLL;bʬu;>wiUV]-ԣ)òU/Pru"*+ĕ/ZIdٟ4tɖe+< w-jo|5Mɐy.26{7 07Y\Tpkgʎn24&ʘTw4MAHqSuF$Af@9&dza5ʞ1|$&㫘f{fì0Y%@In~INO#ew⮍ڶ&lX\B2«(jaWboF 8uu)LoN@u F u'wI#@=[N^XJQ"L:Bj-14UY .C:5 . +UbeZrZpfh/]9xTw9'd@RȩBQqp#T o…MoH2AgLcq!Kby8AKah<]DbUYu}W 0pr. M:*%|nn.|Ҏ9X-:pl ~z5ke}Fy; 6~'kWŜ.2(J%lX W @w(!HW8:~?f6^k55WDwe _Q#z RlQ*;̓T10my6&e,񟼘Xx$t-vATiM zl r~ja~Wͯt\?U\tq/+(Mر^H}`w5+IԙZp[0/0gg@vO\WɞQ(N%m>?}P6D'hfűP0\* SH%e((e:@P˘ ]K!t]b2M< I2U-w+D5,wox/й-$ga搆"r0Đo;>=Shpϛl=Ah,P@EQTw7QIhҦ64, @^d Ʊ$C:l^4|i/5mGjjBҽgxNw @wPQT,Wըjh)peCj?L&(0 TtKnt-[SJClOu%2g~Gmɻ;6;Dp&_]1G'|iyJ5>ܴ(*EBKJMX.SA,w(|,WHcHDX5-\wRsg*i:΂HS}CT%T{Ez[v7==Ł39aDk,J15njpĢu$e(]fhCP9R74FGD($lj\@j (B'CTj eP zAi E(ə6 .s4ʖ+XS 'FKma3a2:+N¡fr{,eJqFHۨMH@ N8LB%Z? }Yع1l(B~%Xn#Js9{N #̋'|dNQJXW0IgR%#kY"B} L(amQ*2.D@ 4p3'm>G&Pi~n9F n.WYMx8K_;G޳DΛDہm!X:Ng*lk!;`qpAqj>>@ym-E֩6T㍋%)mT6Si%f@dqk6ؑ>q3i 3YA+)4uy7BeqX$F*8| ?3S+@r/"eD>^q>G`X-M&yo䭢ԙ/Ju$\5;"P g$_^W_ފ+0]el6 ڽ^uZ˦y6n*E/^[sbV+klV~R Nڕit}\X$P'1co}J g;k:E!b;$ܳ lqKqTp_V;`SY@6͙\P bG bP>RtC.GC/q)p+pCZ8v{+A( юr('YXbl8SDg bNAtjvr8!:Ln[SKu589&%,ARy8ΎQ7~EV{ihIS$Ewڝ9?ԁ!)T=oQo O,9Q/hHDqR@.3Q)j(A(ppFzZlJÜ2^oz$G¿gHEGG l_qQr:tFsj6WLJ dT8|SzP˨7ԑ ;2~@[6J^\M0C [MX#,63굶}7@q~PDr؁pIg7(g*Eߕҹ4/MHLnPߥ3u:~.%M n /jw6 %^tn95 KrV5g,% fy8 H?x#\RDPJ'\x.Yf_U!CV|2:Q^|elJP[-p boRlR ٙ`'J;%=XszM ں4&5fɾ/e~„ԓY5}0ŲHbU9/:] |b$GIߡ/QceL}ّo8 lbF1|nI*mqS:?Q-q3{MVtř)-otZYOyr@"^!5}zjgLWn6b)WG0UV ?Պ#׀3vG.M:]7a=G # gcډQqYXlK@#~xwSe"﷜f( (7\b2* i'C\{!YdMvB/J*{(B F3ˈ,))&X2 )@O L0NXhK| 9c~%iiџJiESDn uf` 3,.wGHK%;PTKt#.W-Z\Sѓ&k]'+f&)_]/=JӾ'xkU[);> I}ÿ107qzF{P89a3خ p$43rZrnEEv)]Ur 3$:[TŒgÇڐ T}uU p'{TZE7;]$)$E%=rR|UBǢ;;(tomΪz-1ۗ$T!h .]}9m-YX_^T^=Oh C-ń'zA4'j*"ч_U+"[\K ӑ2P_9{]y[orbWJXT g?  5R3WF,Nlאo*+B9m"6" |YXp.E;cp@DY>#>O0𐽏>:۩1@rb8eL{\-.C<=Vk mMByElz[o8QV,mh{GFC&!E- rfyg~#"zsأ#x9#J[ *0Jbaj q*qlm~H TJξMԀ _ͮdMQ"O?n.~$W_]IsKR}O<%M&]fTOkdcAPy5kŕ/gT۩ҽї?>W3dY/rH-ԧYO΢.VݎgNNF,.+tZ+ K>ɰ^#Eݓ=RvJ z%֎зIdDc }xPt5";NHҏf>Fw8Ve\R~UB)Hk/{áLK>R3L[QN3썖yA3AEckx| ?ϲ*CᎏߦG8^<{dqCY\TkD"&M2t`~W9I fq Dy}TGw_豿!`0 uo@h@2$ӢĽ^ [▙UNxr\%c춣>-6sԟx$!}:[Eh}mv$>MnW=s \^[>UE{1qRN`_5S'yT=r'VnqFd+ɸ{0A"Ӱw4;O+ӺhSHJar^x?M7Gm>2D D/:HiNp.L~FmqIPSq\+~Vd.%LY \FKcXY+M ;O.B695@ƽF)ðt*>KMwK.ؙ{sYWs6X84̦cּ7#60hMVèIr3ՇKy`u&k6ϬlUŌߙJńwQ,=4f+4}v-7.:R!Wڐ ;^-B`~A`,~g 4F(!08Ôz}T);1(@zԾԘnfi0v5m+x:rlLپ;rm?kt9xc"&ol;$}{(˒AsovzvFK=J1 ) ҍB򢵱vT;\%.7r_E|\M2mΧ>0hk49}FOmԛA^fD` fCWE=8gNCFM>Rq6  ve16F b/E3ܐ}1\3_ɅH{oMYYe0vyrKk*k7lBIp%@IƔBvC?Y΁FN{9- =Q9LuM$ZNz^|(YtEk9ӁSIS*+b_ѕcن$RZ-ⲫ+|CTB5z۴"RRs}~ݗJ\FO]I,?.FmWN#~HP<#=HaWz଴1yȊ1/*Pz(d(V9\P58%3㸔r:~ql-S}9޻-@t\k=)TtJ#!^*Ucy;8+ͱbwR'TM"jKY 2J2'@1 }Cp\%ػO9%k}4b+ $ܥkVeD'k?]]`qފƼjv(9WJ"w aژEدjfK9Cl[rda" Ya+:^5gÊR=d+=e[ԤNc('$(q4-F>X|Er˳ ϻ XlE\@ p%i*/fs4ih88N0i&w)!퐈:Rzԕ摮,T?42{-p1MMv4hkHK_{3Dn+`j:|c~=$RCmwZ#J)Dx'T [m=T1YIPGQ-[8`=N^?do4o~I b72dgi94=>]_`,W"x9)biR׆GJ\ݎ|OD)a"E?nc*2Sv. J2VT@Fn:re=|NX#ҳrO |+"_tiw)>JV=Qtzd(IS 5"#BCmfRK_paq'k;Om`iG<RG'v / EQjE汿߇96"]]c7OD|&}&2¨\~(?a <-1zF` Mo(kB/'=ib[yS[rET02wێ0ptK%q{5"Kݑb8]HʓV>*}NOXIz)H;ll8w`~wGÔDb*RTנ ]<_McWAْ9>C~ip f=mh屳/?*i>QW۽o!^FڃWߡvm5IxĀQ@im4yD tT~tTzZ@ZaRwGs\,n(C]g) | Lkfz\Pdk4M?Y"L"ѡm7agҽLˠ.|gUo?Pfjeq>\،0ENSk/6bODžohrN ]a"k% v/luΕ4gI0˦ejr:nӴם2(-%mH Vy|QR@̟2k..CW;5f0 ]F1ߓAx:c`+14{IbkYDp- Bo:L6>O4{dT &0P༻ܧN^Ic Ca ilwc1:)a'gdjr߃)+ؔB-Q"G>@Ea*g}Oj(AS2IsgAԧ|ʸc*rMsd:QXӐg}3F9[KwŅѭ/צxx4͹>ID9^JrVRm{@@G+ >@{ ⌉8ƵbojuLܶV6€7tbL~ ӷC ^4ʰYhZٹ5!kȩqUD8c9&F(d>!q ]#ߘ^#?u2`]e{XאD\Ng-fu?7 [x ^uʮ\3'Q~P~{خ?a鎂0Ű8uUaW糧ORj'g pW;ND¥3]T++t`H{guNnY|]} /5iRiEk[bP Fiwtf*Y`J8X޺tuʓ\FO1͝ ն[T ^f?YBUH*V$@әmyu[r{@W CS͈9@QRƼ`l?H=Abs`w7sQSͭ,Ò ^ҋ79XݎjR@ Wk}BL$Ψym5`t>oVJ*vwz'0TNÅZ5F !=ᴥ,YVž!s ʽ ц"6Y3PX6?vqR]{#daE@&U(rbB?O?iWH($k[w2˔m`` YS-Nm>a% |xĢMNWڽAE܎ yˁ;f?liV6dwݜcb=gnw^mͣ3JȐɯiܑ5c.‚IL4ox?x}wm=ےu?7#(AG}hNi:6R|C7!i>LwW:rJvru>M jkV!RJf'`#6$X?m|^`RQaOv/+ 񲽥ZY҄apӍX} dž״ͼ5m9PF䞏ds1zAwF+3oRѼ>Bƒƞ}XK ~C/(ƒ!!5VNO> y F ^яI&mUC ,>X}&u);!p@|ip$hTcËzr8L`Mp 3QL#(1(\#4L aexVY}Onob00ZƲ~oa$ H6 h׎iٻ7f8(K=dAx -JF.[ؙzP/WNRCB1l qo"0"w hq=|b46 GA¶Qz WY[۶E$c7wy|x+#-v?7FO3W^1( t3Fߵ=&&&D-dzj\GnP¾I}c<BDת=CBw R;t,*Q~\Mex%5mU}k3K@]3a,@I4aٌ3foԮ&n@M{K5tKC H !eh 3Rt ( 4[@8%λ04qN!W 9[1ص; Yɂ1z1(50o!@v0+I0WcpaPc5LntTTh(hKA Jbm@$"rC`G_2 nn}EPj^35ҬaH[9*jpxwZ+b[&%q{qnAhx|YNBP=O'~y>p|3A[+ͯg o-(?2K(@% .^.N!@ht]+0䛏7 C[M{~O]D辉N(g6]JG,>J̡#?JGmZ+HIxΠ$C6 uDMCc͐gzxl1 2XjK"]S .KDk2‹ƐIy4IA*| P@@q¢9|d7H&꠮F SDd N?UεyIZ6+b Ots&͝h]l=v&n@xZjy5b.Y:ӈN,f\hosOX#Th '2MH{'eϰjI,!<$THd]4$}kgL 1SR=‡wV;-@()mm5/?i3T.l/}8t"O- pVƨjRX'#&Z0'Sʢ{QV=f-bۓfKp 3+W }3)s9z=.Cq1؜0ݥ67P 䖹,̻hށaJi4ZYQ5ƫ=g ]UkŘN1B\rKEhl Ұ6Σ.V pΓ8=0c=헥/VY0OL/3Ła]2(@<'"ոVn¬×fD&:'[tKnF %n q΍F>m:W6|ehmOZhgԳfGkRnR_& "\!V ,T5U34 %vc;Li+Rj>A^"%HL’'AiI[UFx=nu`3|A_/ s~6r34'e+})J91U>oJow@[sN|MZ"LbΦ3T*<fQBAQC=|G@Jm-vB/Fn=Y`SAɄ "#s \g!w<  NW *e[BhfzǢ*'":Z47>1;P8D*TKN=L}E~4[."Q1?Z]P;WA! ?pDh"SbZ. \هy [bI>gHF ogIc"X$w<<5]VǍ_4Q}} a|`.$\llG}dϱY|4%8N Mw)9Jd֫$MB-lo-FKTf}x:Z\ K 6 >IRUcdDS[ 5,Txza6x~ԣ&sZڴ$Ib,dCȅ*Sj$ԂD^ V;\SF<-I2\jjP,-DTȌOz|ĕ2N(>WΤd33RW!JVS]؜}_vwprF2l -2V5ܪUE&)ư>_dmJذ,g?V8@]S$ר /KCx~;i12o{f(yO R<P:Qt\aD%-=+VZ{Hn-BCxn3tsilw0EE"D"]0L8{aww0;W#z=#C "E#[좉N~B)t[hjz"w嚐fQ?/"9`A" "Dnq@i+?F{_p&o1eFl4b!qX (I˳t?Yc4W(x{9,,'~xMz]*"&__X!cNJNjWoXӻxT -sڶ'Q@h}"['kiR'7Kd m))pofi\Ug}Tttlh6S0P"f}DEb$K9D$Fdx:2B~K|%$1;u!a><U$_աXm3 Q5HoRfy+?B9F/Ðڭ:`r7p U)s3Lԩ`4-&TB^jHȒ~̫L!9QӲ̺MM>fll^B(:SvЛKǹ2~ ϡqJYJ䥼Nk-"¯!U?@K#MÅp4BI1xͨEˆdB1SpO'|'JkB+cρ`k=傃J0覑$ᢑy=,"`ԯzJO?& Lp^Ώغ6>UBUW\ QǕ}Қ&2'8 ΃FL~%exzN7Ҍ0Rĕ;9Hl΍ s#˔d O4SC~q;ivQsPXK}v]rS4ҾH)o 6/ZD*q%/K6D2$C{8w{wf)yb^EsUin+~d [^˖81G\CO$ƃ4`n- %L/H 7 vmѡ$ӧCmy_P!n2'ҢGA?1Gd>~i`'Au&J,"9|y#7̝QЄ_O1{!TFJgCep48~{T&!K⻵scFzmeBG}\r$5Bݔz Ȏ]j iMV:#q?=Δ8k"2Ct  ph(D7M򸑴ٮlx˰#)L*o._LӖI%W aʲx'1,Gx# 2\5_&\:ܻ&ʝ/Rɞr8rPC&;Mt5.FFT['~0[LpK>!6Hןl رOLZqDj{fY{}:ؒ0՜mS)5Fj%$:PA>HZr}ML%FkF/%*GA>o%;9S3ňfڞ\4鯄u䚖U)FE>~KM_!gF9gr2!8@us^/RbF}Hp|WqlI~F f'3|Yh,NYSM0x6,(=r!W9ZT{%M6Lզt(b?e4]b&A{UAPG,SSt ӿnka BvC' F΋=2"ZN}F:Wl̓H#2 k;w:Ik&SC?}gûӁH>X!sg u\#T]%>"wCj kU-ьì!(_XspinY?B2#$'{m6Cx~_1[j3ci|/4cSm22Kbڏ.U` H55"Y#gCiL!Ih?׌.",hi0OULh.mzƏ23ؙ>z~xP pC6tȱd""-7P6:ŵt /2㻧/˖HׇԴ'@A0.qV.bp*]|`(^ڍLH˄3SU OcɆd.S ,~("5!kM `IXX  r xu]7O) 牾~hW?sZVR9гfRk{N#4{orqfiۥ.8sI; (bSbxNGTeז%J x\NorpbI4-{5x$9/J8?rLHbFV+%P pyOiXM@QA+ 0&@FʯiH{rj~}GýHS:;݊/la(*s=.>[~-k]"@]p%M?ZLmfEYCp|Tx3VAk%kɀm.s%7Ц3˱i7l(AumKׇ`&r'Pަ:bgsjnG"9{ܘahj)嬜.<(i U 3l R '# DTR)tpB:uIBxX<lb8lKyC|ЦN;l,YSd%QlܕL(1^RiG1M ?ilI8I9ͬnY"+uk[T;9aMLpݥ7d$m|s M8^?)^EXAGi$CgDH^pKR2|j&Y$pOw+>c+e&!gۀ:ܾ)M ]iOC8>h{)e \ ߈nB:2R.[f.W0lJ֕"3JHFR8? Na0&M<2O[}hG6(+˹.Fxaz ׌ݰxDHPQQ5{ҟL(h=WXHBNbi)b=<ƶX^0vW8A!kkkC"XU{&jhų棛Pq܃؞^/I\:5ܡNk.⥹GlaW_KhCEo6nji7mph iTǀVCt7 #͢S:{n蘈FHDeW#Md`=L k(^6ڍ6wbsZê83'RZnS2{ Og;2<>m%SYb'Inb"zJ_d^d0\4irOAlN程1p6je<'+p4n{sL5"z8ܭp| FF:\qEԸ-'y5n Xxu\}1r& :=׿뛡5B#]V ƪw! /s?iaŭFhX m!@zE`v|`x^0d>kVo0*i6e9Q /W_CՐ7MU>E"T`1 粉86 lp̔ԉ̕@$_ͤrIX zԁ.t[r<` ^ϟ*,PJ҂W="8[KnSY*_-QWd1_4-Fa*60p&fh t{b}8=L,rP,0EY9pțE/ůd̟?ΤӺ2še5d {30vk- Q@({)'ucA -0N-=ůJ~I/)[dCWVJ;[,=-%oԾ?i !,g,F5}CxmQ#M3ϟDE2" *VLY#tG)mWE}AtvCh@p޹g:רv/!dNXŬ<< FWqWeSulrD+B|AD6%G eg_iY9ҜAoXGB>F:%2j ؂*rGWmƮemX2 DYd PןܮT3Lfu''h ~45?LļvU9-nVǛQF1vDޕ~@ho;%B@A6kYӛJz.xyEҕ7d֣ʅT+sWbʸ3%VfXB69;x0j1#/ {SQN'JeQ('TQ䒛F[Z03*fn>F-*TmIba=aZ i-40۪VGb1?=%d3NVVqK ?ub׈Raͽȑ}qbYB12bTV h^7| Y9#vP jxs]#N?Li Rjƒ.Kx݋d^1KA=pJ(VX޲+!7H-VA&;ov .'˼b$Cw11: [U-PWj]E6+m&y8Ϝ7J;[+@53}Q |IN$?nU2RG6)(úqH]iB,yECҧax [c!nB8 Vx%mRN65S uUcڲef*ʣ~vŒ Ί"ATcHxt)'ˑ7 5;*Lx13V ́㷝r9iTQk *cZCn#S^~'C2M/hqZx9lكjF WvO!Q,55-.{ y?&a8@ Y֘a"A /%ɒÌD:WG`Z]6x94~[rP,\>;Aߖwebq- q(=e^ A.fA՜KIS@>h1$8Oqm-fQ 5=\If)rߋJ!C1-]Í^_}>%ɤo"}mWMR=ȏtrH[#u"O=kl#;e߆6ަ-Zrq; 0I}<0Uʼ#Q1ECIzA [ŰD*!)AbThⶴ bEdp>i0x6"bhT@9$3uJmc fQ eI,1)uѬ rTZzU-uo#ǹ{wler4ԟtNO\pO@08Li rjSr`(kCKુ⋼L$:hJ4]68h}17@%qAZt Ih"1۷ZcDC(BQ _W$!$[Fķ #V۠dKȫ22qi4vU|Zw#U,>i?=͑=zˠ^?Dd@&c@8QɦQ/l ?nxtKqhdyۜڛQ U,ѳߍfDyAW~& F#@+ (VDCyR?4F!cZۜ)nEVzu™:Caĩ6v 9cq.tOUГ^>TXYYWZ+.O4.919i.5^̏M/2X '' m+']+rB,Si3]ս+oU>IV7[Ӎ5<ع@ ׻T[ {1 ʛgr5Y?;QhREa[GT} 3c؂Q Ŝh3+8C.U"][QT!|K%I5kMIof]fTSD?lrPU:;} ٍV|!r8o;VϘL‹tu.8*T]r7 }Im^@&T@7/~S)^dJ5' R7)u[./9sA' A(ӯz6 oퟩu+1cM:G} 7Ws9#A27v{f*#GL54봱 #y8[T]P?J21/~|":F`[ƔR?"Ǟl Yu+BtFӃa] O 1g@oS ^:7y?+ʃE(ܟdi~%?mqA }"SSm5hRE0x}-Qs9T$[gW/2F̢yeQ~W&UMixu@(A|29aB U#^ L#T5wHnoLZ !kCf w:Ńoa`TbHeIJ~]?A':~*il0W /H;ݸ`tV!m77e¡ lRAz˜yP.3VQs% 4& cۥƶ_p`4&9,PաhW7`%^ho_hYJE:Cs}v2eHCًC^v'^> B pW0@3&]SxΦ\>|X\6"-qVտJh5R/wDUmps}@SY~ds4e.7BH+ļ]RQ?;$( hGL+N˦06_P)c1,6C #a1>H-h` Q#՗=/QFdcg5EŶ'OBw6Q%&9/Өwr|[çSNH SmOl V tҔɇi'*69O1u@ 'TDC;y SU֨*rRXyˡ6~5\HV驣4E3wn.ȯO6V-v4 F.8faR{ښ^0-cn|uPc܈=PgNR!}|uZ0XwǍ)\W`!}FGY8B2s,#X},Ez|wTr`ǩ2)(AE)zDBVѽ$Dp7e}2G+ihd͍Eʄ04O[s'OGO glDqn5& Hwܝ@xTaVl'sA%g3zZt=H$PĮqǺ6M6SoBh"xo5$i_Xע(f6j:uy̑Y\2#kweH-ҰsDRD>bb'C`w~9q>l buNQkC 0ʴpcMWm=o…L[Y*3g渄OK2Cc`WnԹFEU@&z$AlX2Q3!?|'ƪgǑ $m"L;DLUD5 ԟ`GWyth&͍Ugj-`M1DY];k^p%k\ T,;u7 ƈ >܈ݽz،(d'E>^٧R`욤jdp 90v?oJZu+` ]F=߭>i;l6iױ 9T&j}#pĀ 1ym/iϵjhr/o?ޥ% ~/=gr YPS: oH]U 4JDҨW??;lGE#%6OZa(DApGŝUiCuǥ&\TY:+gVvYw$лB6mL&R\4 xak[rRWvgLo2n L7Nu sg nD(Z"=xd@t/nNMfw˶u_.se8L]&#PcuGNVsƵ T<( l!r8ijefҨQ? \7܆ŶS[Gya/Ǯb&o}^|mx||\aIщQѿ1lN6$HyuE4juVz\gEJkNپ-CLPzX|W1#$9a0VTԜ@j l "͹8dxTU3@EPZLVǑja$&V*?6r}." ,H_2Wr$}L_~!EDX}_km) Z(=rQ]{uSM/<pb H+ i:bŝ. V\NĨ-n5g*xo/V,VxwaQ`w(%dO4hvi%KvBlȀ\J2J8D^]M|. 2~MAQ+g9r%"/6 mEd/b;ASR#=_m+=_E=`ޔtC K6fRt;v?&R֞u fre oƼ64.[G-Ab4p"wuϼBo1 xIҧ4cJOlbEx!! nT{_د"aXSr2xφqY}*iUYJ=ۂPWb~:x^Czj/ Q&KgQ8~ ;n8?1kh Q6 HKJVi]T'qc Vkנ%YtHy~/!HT5Y>AQ)D͆C:D7[ȿ!1_j,yy쟉@ JǙTg)31j1&D3ެ~; bmpp,_ pRV刮 q]{N@Y|UBW&=h8V -kL'H0Et;^-"K)Ik$eӃc7aC[\3W~?M Q-쮆PYHkɫNXW(1>cY+"L yҊ<Q5k;Y ]&4F6}rB7OAIc-6T*MQ*eWscGl;Nַ7$ bV肁pL*J=O$L>BcPxi6)i}qC)6C aN>`T}hѐ5$XV}OBlo^GPP DW3ÖMpu7yK~60@ՂT`򶣽m iy/{.!\5գ*j6T?Tn*-%M K~2aTӬk{ qwT #i1I٢hFڹF}zrhfah@YaUE7Kka< KW$΁ :'rx!d=4='+:- ,Cu7wY.bp fvؖ|;K8|h#M`5o Uq~W7mzY>řq-b /<<ժo7SeѺWyV *hC_tcW wTK U2*}KM; [Ung2i˹,0; qu@0Ľ/ze)}Hl7q 'C֣byU0n3]Rd|%k]v1?M4,8C"ݔ`/42G:p̮K@ yA1Ov6As#z5ٜ&֎i1P% i R<l`y;`Ax2+:yD"Pt4\Ф*.ά R=qdװrnζS `0 T)uᐙ>tJPÕ{$}Bq u9(šF*EXipxDJ1Co1 B"eq@;na"r/zyՅ@sڄcD y}ǀ-s)*l^Nr2X=|u'5Uv= O8ij,LmD}!b*W7Iŧ@eMI=jqBrJٰRW.L IյIsl^M,$Z!v /vYB ?IBwsX\}~*qҡW2t {x^Fay{O l1=rַMfCJtC!sxբ }WNL}I` M5L( Z6/Ŷq<ci`Mrf`Ø+wM5:!cĨ%y&Ҧ m9\%Zq$t:SaVK g:9(`n"ߝenEƌ˦aI㜫#7HƣĚ@S5BJ.ҕc+Clg5Ui%L˛L-0z1@Y@E3!EgoCR i˒B6Ė m7Y&B)8)LðOfQd*(KԮpy'4YFSp_ij8ao]^y7AsI{Mhzn?4%N #Wtv*GADži7jtϗK@nGAʼn?Fe|nl9j\X'g]{@ =({YwGu\7j}H9)-yO)I"1dstgHpASSWc^I=y?p&;,,.nQ^ owI7C7G$+dČs"ˊ C$u (~DTf8GE` %B| Fmݔ/FR`>@ W[@a̷gȯ̳0U;^ǣLYZ@>vxwT;0y-WH1Ư,z\aI`iBy8{ۿ8FZO+l&r8M*Q'O]s6XʼG yIYy3`P g܀ y<7>VUF ;i DGq=T~z41F}@R3DշkFm^eo]٘9kD6ҋMxC,h>̶Y` >uyS'f]6Q̔ӀW aO)W G@?5DऎW w2ɝc987#pٳ+@l}Q50({ Ra &J$PO ݥ]2m%0HM$ùXZGtvM8ZOdY5p3x퐔5geoj>~'(s9S{:IpjzډN[snPȨrHpsgLPHǘnzN)"zWWS^~.P/U?l@04uq] +]#LYC?=db,W_$RLϊЭ"L<ߢADEru{}tC1')n9gF{A:YRpi$@m4I>)LHݚj]ǬZ_܌G;B\@-vՀk}) B~N:UP@7;ܽ{}bAĠw_\R, @ArU$47ϲ|0rkNټ+&2܆Ҥf<^f(:2cT?'bG2mםq )CV:Jd[w@i]T-TfC#[\m?&'862LDl3s<Ӳ-{Qu8k˂]GpQLKg=ۊ<;7a ]+n= oY? G g+d^\+PnүP(N4X+Dz8 W-[ٗxJaKHP0-Sq4} ,ҎwLd] ?"I,k<:f7ʸyҬIScU) eUYU!lӑUcR,J<%Pb`2-ZT“?}1j 3 "%p#O~d3v!fw986GъoX%sCp?ıD2ZIȠVjDml8c'Y;{hXOQ (ND9~G u+4c oIFBdLTX͝ pq ϳ*AŸCN϶n"_ST ^LAoT2)? 2|L(<ԗ1!WJbtOЦ~(KZܵKxku'[v4WUb@GzТO@*+$/o2n1-Fi*W~ znZL 1>ܻ{P@qkRW1 l.=EFȹ;?QkeI2UK3ja*^\.3U 9OanDž\\b1rdRS"BWGwH!<ʤ览;>`kxN] p\lwRU$VxŴ S4iOHle#f2YHٞoF[tWُFy!"T(A& \'[]a ⦑7nZU|bܫf`-o&`䒸}N&.50I2_%lGDyMծ! %w 1w$/t!!}񡙻P/!_.\ǰDҨOe"bk-ДN ASzƢ\L0+۔C!Z\x2"B Sa 0a# ǥE+Oiڐ,bq]T60=^24# Yz׻<_vZ)*4=Pu6Ɣ}@WNX/R덡Kv/tf3Q)`L BBYV, PľhRf7`0@`Etk`Y;cL9b};Dm+np2K3xg.$K蟭8x'Xb+'w r' x^Vr* #1j6\ G8u6t0rcyjƓp\g`=))y!uK/ JA?|M9D1eڇ7 trU4te^FNx64VaYe`QU.5-{b*Ǻ]}L >=?ۊړs,k%+2>%~#ΰzl6}TlLj`>r6h捳mb%j&EKI * &9D;g.xU7#yKA1~-Sa i#tIz?5s};J'cKC0·F_d,*g |;-$ګSVja!(;۠9(v S 5R=:Vw~ABTh-=d8]Z/#t%fzSÜqBV|^4&pJƩ9rZ#3,M9]|%d &j_GEݒ׻åWqF1ƣ KFvwDgkXYFͦ O{Y}إBZeqۑܦ+j¥aGG CZ9׸Z YT:2̣H]7Qy[4+$ Qzhֈam14 A<% ( z8xVvH!p`r9C0_XڡM޽k]4ȫ=%h90QBm 2T ?\G?utiKel䍠cbQ7 IhBmAcWKx>s ypaC଩Xlwf(ZBz$QgxzQ L,,OdYIV>W;ԩ򜆱tN.-lr'}*{6ok`,^\#ߧ lt^4#\i(QTsjnLt[Tհ5Hq@MdNZxd5}}@NHl,nu3Kd ~j/E6E>=`}1JN}>h8nM6,q^ svXMWguiqa+f852uv[IC LYYcK8P8P8 0ֽK&sVZ5ȢjGPoC2G11@1kW*6v4Wf̵/ l#e>`,{yF#kRP*3`x/Š0'2E|T^2`:{Jj}CM0>Z6 碌+%Nr+;I5B{[ g- .b x#zwB9'2t.$|j^r I/Ʉqn#uLWsi~)XI^pa#e'(4H|gLΪsځTl PQ gkH'c8}$Kc4K U+hK%C} O"6)П U5 $~2^Ҫ6e =摔Wq %ڋ7:D: /mW}ض=Fل5TG&T+37`h*KŲMk7SV{VLYO^;qgϛo_e 6;x_@B+ä^؆%O~1 jl1^q5IU]ڍ4Fs\'nje 2.0y qArWSW˱!sihym;Anl^G.On8;zݠ,7n;ۧzyo9|t;m5 }ynO.__hLJ>h86rq9ylݾ×͒sm:;A>k'*[ûr@}?5oI~_}rN6ۖ pv'/.hq'ppiGE_Mw@no1~W;/u/ܸoo9ھh#!F@y|Ӯh]5ޙކyܳgz޼)Q<\מuIvtj.cq6ft5~#ʚp3b ԏDc;Vغh-ưa¹X@`4!1qL5P]6)+֨^yYu)gO͋vpVSY"e{DjVC -!fhK.YuO$(}58_-5bّ;%]o)EaPySV& !ՔHɈDOY1htfd%6RDBҨKϘIsX@`l%\T yf7Hv'2upL-.ZAU-`-~F׈|C!wEp4WH|y !oJw$FvTYv-H C09oicטwJģczV.LMy‰ f(=6L 54(EѸMP~!9lNO/y'Cx.Iv;zۂVbCZmVC.Wv(0k0|Z8ḡUEXo[΍2HRO٩ KJh{N-ӊ< y$76庭wa)a|[1ߡSC4$:C4隍jq/+2Mo+w3oi )(bOjV_b%'9镔NҒwOc<;Vo%δz%joRWfr MT$$ɷsj"tmrea1[LP-`9]yt\|piat"3GMt-]zЬ`!8 gru 9jt_1Y)l#cu/e|م+6ZqjUo/JU^xpuW,TU uResX/ܷ你>P tXb.[sݰF}qJ:)]9Fyކ2.H_\;+}ld.8YQ K 96 n^ɤE>KI4ML8_KmN *j^#[U<=ª@PBWMN&?-s:=jw{a h-4)ñwAvq.ǰ<R\P"[jA^n#|1ao+Oh`q҉ o"d戙ilN*Ӥ~r1]՞ȆWdlٖ2nv+PM׏w.>ݯ:<+f6HnU5ny^/Zn}$x gbϴO)S4sJ8k+eQulAu5"g^@{8j$o6 MAo8HnlTgh[<%[u8Ss,X]1 (~0 +\Chk(}]@=R0(8W +m V[B"8n`Vs^o[vL`WwƹFJ9y:ݓOe",B^~1bj,2PiN'Bw~7bsYKW| ,PW25bn‚UG;r#ݕo'7b?Zk+zy6$RIbͭl缠f=zX֍~i3WÍaOJ>f> I/43 %[Zy3"눮^ )x#G,4,-Y^UT-=q!U\glYm‰"k}\%Xk K@hC>H_H#U ?yŹMol<S s-x,">y|7zLE@vurZvW_X# ),XnOܨG߼h7">1^$wxs9>%$"c/dGqhz^D6k4i VZ NQ($#*D햜"Io@zm\%t1A׉xѕoj=>)WXzZ\׆cqSdk>fHan`M"O:{BPEh@9{cTZ'mG7.x!S\]xH0iƞ&fBr._)i?+͖Y*j4F.:Iqc!%TQ@-tQ_rZ>Ѳqh `u¿wʜgP ] S](`&.N[,vSGrOmAF1=c4\h?yӚhzgNkꒈ $ 5O" e( sZҼ ܻ{)Gεͫ0/ĉ{<^L<JZ G#jY~ʤ1N} Ze~ x-uL?l$A(X#_`$c>@' 7yg{-m3tџMhh6V3p mkp !oܗHVSm ϔiL&9cq[жd%摅VK7!ȃ -K%a7lo6ƒ [$=J:Ӳb'4^IttBuӨ &`g{`'ըtO @%x f#꤈Ѧ`6vX/B JP$Aka@iPMw-"/t)E ^`g+=ݑbQi(rb63:qY>5[yvؔSEf[1>pO&XE6MKۄq Hϡ?,T[FE>1@Vuk|:ΓLjõz|C͍n$#f)h4u"|·CuMBrpłШ\p yMOMC> s7oi*h:wԊHxes]S,v#2hZN0ϪMEaj=-*鋳E{zm:"%kNX_sgYx2 }yM2YLX1`BJsbԦSzBwr {sG>itE$=/`qlm.JV_ˍ89ȃ$0m 桐`auŸ*j7q峛xL݋֏!s2S6CYӅ1XIN!5~s_"U@[-5PK:N(58$:E4/ !uy$2h[oU]T =Z'aCM6v"fS>Ýʆ^=7㒰6ѪoE%,m"'GQKRZ^͍k(c cfn[e\0G:81oT@q9JN5<3ЃQhܩW8(,BkͿkEBEmoGG![eKeB\5pT#'qF@Oq쫾|R(7mkf=.hQ_\C3fהOFuJ֮qbsR\@ULiY|RvX,(z16/\\ZQAE o:y3ur[%~ͯI2%hWX%&u ڰ- $eE+Eչ(υ~EmЏh+o&RaF3y[ݣ+՚0&glLtxPenO"VMXk2gMGPBf|=@oW\g坂9_`$ӶQ!vӪ_UlmlfGι3ƠSS T&glk5 ~xOAQ6G"t/@;LOsL\J+hI^6yh?p/oR!̐L'g p[H:^&t4B}W+îIUIJ GPTwuv&Ck]W{8 bPp*QXX崼N ߈sPg@? }8•~QDb̜ Hכqgb ,*>v^"ֆ҇ԟ/>'q Ϥ  C\xp/ƒ-&u2M)AIGUʹp Yڜ PDmxprȸ YOS>v"ݸcJ/Nz.+mtCZ4Bv};#AAX3ߠu</d, ~_R`,8mdz"vv{iޡj^Эᚎ(L_J3K(>ϴ3V+ZތM|0 cF҇mv4 ]fTZsx`'}n`1UB>T/V<p/, 7d^-W=ALǴzȗa}t -cO92VC]4%:t *9\/EjНC(-6[z[ 0apM#d7{ւWac@FOB㔠26)*rdA1ŢB?D" vT 38P#I-N~u0F$T&؉6()oU ~x(k J/mE2^0CFlI)# ِqu4/N({9Rק.'x΁p8R5A6acr5Rv#θ1">%B g>"ojrkc%+xd`w vicE)rB,Z-uC UTM #R}VAqyeTYU-`LM$~Nտ(^;drݺĸ:rHbTЌ=tiT/'әDN2ȈTA.i&}T̑03K,^LM6`z{&koҧs$8t l HG\3Z]o3b#GEwW۪KMt>.b@닏IKp_W8R+QTt ]/g9GVZOAK oU&2>Xk1`3z增dy0 %Ya3LhKIsy_ 5 ?v8Z{ЕMɮw\44H5Uw:E543#`5nvyr+ZՃbm|>n+e:fZMWxɛ)4}T]oNDvy=Wp۽<#Slp\ԟBG eҏ(wnWl}a%IRO1"ӰI^EqWxBn# E3G`4^)7ST15kՎmg%?!J eq!.3Лx L=/΀iT&}f%\z2n ڤ֐ǼՁ킐4@_ fu>>8’ߩ;Q\"CJ.p\-[އN:LZLM혘rJ6#+ e#ѻeILsrwDk?BG"w`;P*fdf b&hO깿l|o)y_Ux=!=o 6g% i1F5U ϺU.eu-b¦aW0>SHѸ1~w_yDqsBbzܪ$;bjߩM_-W"5+|uW^ÞhwLf3TɠNAjx.2MmiJP43 Lf2񳗴wxq}/Iwaa|:cLiY ̔U\*JVsx>ؒ!J 2=pKp֑;u~;Qַ5o '$`+XIE}}gUb,ܰ):ϵ^3(,mK++Ol*5Kr>"8{1C^4u!lvOP&4GK|Ş^(KEp<n~pT9: 3{Fj߬".čs%Ƒ\}#OqkCE)OU; Y*3SRi?9cL)بryAet\tPyWه3#߂Q Q_XH뵐e`M/2vr\'R(N]wG#eZBM$гŗT'Izl=+ꔕ&+@fȼѶq4vC-Ok}YD&mC") Qm^TvWf˯> )p|9SE'\l@$A -Qj&E ]VE[k`MPFÈ$ZFi?1!*.w'O1VCY$ ̍V{̃A-BÿX#Ygz%, 6C>;By4R9ѥk,}$Bì |bO :b9njsH:9/T6CUX-e@!ԺϤ 8'R zf{`6IȮ˓^116Z֗gm7{☁ &!B4V>X0^fty@s=S$6IތO<*4ưQLvP :ru8z%LMάa7K@.xLCbO^lgzWkَ_@\u4E~PB& *zMsﰉ$=-w&v~-yJXT^,˘*c[֋5h@mB_}͡aE[ǴF0z˩U0NVP HFU ԡe$l:[gλ@.$w:M8D2ls~ Ꝑ;lgX}L8&C-l/M) >u0.z%m2W>1vJ Mo2phҢv,N+./.6R&q(3>.k]‚F}}̷pqZ;YIfwx@zPEާp(Tj+l8XBy#ȥh=gn 2s`'/iȈy1٢P}R4V\0l]%C޲&:_Wpf:l'ᴕy$Ah= g[y]rUק捔Pw>7\\@P`ŀ CQbY@p->O3qs])VD#{rY s(U]' ѯm+[wKAnOZ-kz*!.x6f6Nla>#6">wuYgĞ'2=LbVOhg+;fҍ4?>.~Z~ [iiƎ[$ZPr jq`y9SD+SY&N,*g (T2=Qg5]N@ք'ු]'>N;@H~:Ia@R<>݂S@{lx7 aWe(݀/!X`PHFlHxC\FWmG!߆Fv 1GgI6r\;a/"ϰ۽\~QȐ&MDQї ρiLEHUWb zEl><{[jctM˫AcR ;fB*<]+g%i Mo W C=T?0Dp=JdBêBaöWeRBW'ʚ 7oBsά/3ͣ}q>DҲ v4[Q2k|/VOV=o2#葿1iVdWWt- G}-.QPMAϔR0Qñ*tAVz-  ^R2_|c4k4pgOA*{(by g9LOQɳGv-:_ VH+wYLZO~ s@rCtۺYH-I^\N=4\W@j7BL@9.ch/Z)"~RR)ŞtZڍ.K= k2XR ״p3̭n<$K⣠@r=ߟ br,=aKނgd4 K"> {_1u1oF_ՈTm+;w"}BvۊШEĝ9dB0KJMϋt L13=X5ؐ(nfѥ]uesRb|_6_$u\ʙЛO<{@rqӵg|]8!*OL,MǾڇ@ ~ϐσR  ^3eS癔 nTKo+l@r(0@.*IA|֬WM.z'#]HƁcmU XW5vwAd@.s3F12{J4t07!EjQH!ZI.kUGL9 xDd+YPV$Qɭ .:w'Qi#kI$MO'VQ>N31J]+XFxb'AU3/)'V0e(K驳F6PAd :6~")&hԬ ?ңTXob筣S2W̠(F$m{xʐY>zh-x6-")/"!AVbP%2G+C%oZ!vo/w>eɧ!D{Fi `r/jymHhK-kbhIH1LlCt2J 1 D:(e=G@`I ^I<\Qmݍ|_AuH[cS`)\j YOv B?113S6B֗0 vȧVAy Y)O0/\ke$ޏ[e<FO&<Ҍ[Bܫ`GbI6|c>Հzw]!1=irߔWTZ<eZ~N:6V""b4^˦ Ϲg,p&`u-s(JٷY5` Cu+"Rq2 0VӡNfL-?Pr,dG‹kpn4murew~"{:NQ1!cJ\ZMVV`V"}Ť[(k`y|Oa=^Frwf? %E3c`hhP>~Hbلg,טSW.o^ĹQG2*;Ef}Gj皅.HJΏQ)Qvae?ݹ#e@0}YL 9Au1Q⊡v^eP5gURIG]k lh=õh-s_Ta/\j0Dz:{x(!b>A\;]L{&-+^I "`025%f&-KFXڐy7P4 {C I h*6=|-s`nS}?]/e9K%xtbj1B-L#J̱ :Eg-s^M)`Or`4(q]Xל gsq9ض%0$!A!(nXM?k=ܽH -ͪ~O Jnk\q>-2M_1 OCR^ZL+F#>p&7!ޔJ9Nv24d;ffBMM*l 6H4MYfaSŕ*cC CzL! ApgUi#I6NFXLy~2AˆM2-̧*$;$DC7}I+>Ϸ{-8|)o~ƳBMih=iFaS!:6 'b˳LJ9M0Wes a^ 8C,jV9O=#mʟ(!*ZY٠lXͯ)xHkYs턝eT54jh-vIVdgaV.3 FRa SI'C36v/nK g,S ok&Uv2́~vw9#ϐqӇLzBsTSf`i5 aEoi]h/cI髞H#~\>-_|4/ٟ'T[fY;zb3uN om?lBVcɎ#OZ-xʢ'ө>]7Dy5qIl^N@x+Q8}xES<@\"s vvSĬ sd sc9!&2v¬S}@0-bk|m+V,V׶1o(' 9i ?Nž2 qPmn\.‘mUêFVOR ~`mvU*CDJ  .%x0MBƚwa'-_0REF<Q?$sځ!9*< qzM5>HҸk2VB})H_x~=Q#'ggV 45j=^* u Bfe4 ECeEJWO9w#&,IY0dZ `v376s  磒K8KI2 1tJkDʘQ=z [qP#>F 8 يl["%t:7b~cD\x>t kf.HB踵/6WHUY`Ξp s|DGYՂmQ.k޳cX}D䏦7$అu AJw>D=;w32TCo`0Biq3u?XVFɟo$`Q.b_ԥ7\b­;H?&4Q<)<8*[I)0?cEyYm]g׫5[=.Z *kYy+@sN42͔T1h jwɮ** p)ȭ[|\yu7݀11?#`ssbTN0Ci>lF?v[=meR>΁] ωOlx,?Fʟ@*+bEFث!14Yٖ|#0-9 JD"ٷ_ת%)?NKv3[&%]ήF:Yp[وFiP(;;6F=5W]?%?!NQMVg<+ltYp0>mL;6D5'@βjS\m}bH`ɂS:s0$m'"K2i?`E h?EL4jmsub͙>2|  21  ZUX,BK5=k[+bJ *7k~X$2&ֱMx]w 3: p)V8Gz*N9AG %D64F{:,3c\̦nBv  6ΞYGirpF(d2N$ &iQnRZ>$3uحR*g0'vlQԧ:(Yz&'1he^蚆5w[Ro`n%&@O>/ay-urWK="y s,6lP 4RPGkʨ4Peȉ0u/iƿ 0C'v@'w cT5Y(?tlY$YO Jns+äe -R RuZrw*MσRcgT[vJ`D5R:oe*͎W]:o `w_S|Fttz)1l xIlSuGϷ4垄vNF7fx-#gte# N,8ϒHk1тMB[,:`;t2OsTvK5)=Qj6v{)b2:km䞼JGV싇UibɇA ;N$ٿiBW&u RqILAcpu\UܪMή.ĸ]TWmPG!0!0K{|NRtRMm(H-q[hd—}{^QuuNJkvInb"?}O=eFt@E~kMű1ďli+ #r/P((=D!/4ŠC{y,^4Že aa8mmkɕa=㍹r&yx`&&Gqnj(@RXW?g0DjsR96|8 rmȻhV+6׮ *"l΃0%țIдNpʏN=@w]1ǂn7AB8zxmtҶMlN_J?8Bd#8n)HjhRG|]Et%%L?c94V7x{UE9t 3__PbP\BT\F'*hQ:{G: 7'G ښ+r:M%>7]ߐĐ(g^) ILA\syS~!&{ c"4PFnefl#f] 3O^&W3J~NnarH)ᢟ($g{ۅݢ6f÷9 3-Qx>}0ݗ; u@fH6]- N+yj6 JN_KAwc ?}w-HꝏN2n+(E`S;T{ΆgbK` ys7y_ދ͍>iM=_Q{'EH1c!*=oыmU80ne-I^_3+UX;[UQW4"ժ:CN@AuCP.g='9$qUu1ҝ)F(r=w$N76APѣ(9kOëU݁(-itd[&~Q1}ZN'ʹSBr~>T!ZdJxs$I6wGNFזlф*M <ɋpZ28B_k}qġ9off = nm2b-Jsq!* J.ф2W .; ҿM2|'@CYY]gOq#Zz.`q|p JX-ԟ&t\H _ڬGԒHگ^0 Or/kFslˠ30K ĝ‘PxQg+X' ZAK\a̻*\,\ՙ) !7oER] Ea  )vE2wb"uȺGa{roy8&3=b. Q`SrɷY)kg'piGKu@ ᧲dII-Pg`eA1Àk]zPȱh(ʉX6Ӆ Ovϝ!H2($ߗ~'˅X@%@ٗC"Z,gFZ_UCz{)^d[ABDeI,j#lv0P-0Pp7a[~7\%&;e?"QtWlbAww|S9SҼ:0 ^.zhV-RұNƒg^LԗuD_f;v4ݴfѼp"CLKoGhj0oHE)ڃ.p6Ąlk`p. [' %D C_*Rpbc;Ef}ULq[S~ "XkYՖֵZTJt@ KE5:3Y&*uzϨb$=]qvNUvRv<[(ZI䒁=!zć8[auEHҍġ!n}LNo~FjF-َͥC~*R$I8$9<Q yjJö@Fuy9no6PhWRlc"D?\h<`l6lPsL')|dC/ »)U¯YS1Z4Ը)'JƢ[@s3np(y^$jł4iҘ~~[X1-(͙%jFIҹ"F|Eԋ!Q*~ne |K eV':eM*Qŭ#V4c`U<ٳkpk,%@@wcN섁 _ v)xpu'P 8&_okiRzKaoߢq2םNcQ'V˃J;!93ZnvZkRUZUx[||lܤfo͕FϦle0X]Z(vӶzHt Ô ق_;"ͯaܶb7~+ ^2ҹC,y^*Ό <7GfmcJ%L #5A/h{xN|T<%x/>FVAW RU2!ƣ~qv@+}^K5&+D<]rnu 8%Bs z)Tz>7é?˛JӾ3X/B !}XyeCe=@E4EU6=} 3OY-@*6k mYd.ph|t~'yQ ?U5EmCoc*Fjdk{ 9#/leH hY!%gIEn={: xY+{/]暛pnr}VFP5/9v5V.~ƔȾ %ي&dٽFEq 屷P4wtjH6xLTLcq91oW[&ܯNePN BF`J7=O|)#F3*H33!y2HUu}&Eo{ ,pW t/-+ز_VhO)QMCq#2%B~QN=jœHN4n⏺7EwL~v:O%In: ?)Zׅr/5JReo1KG_3'.[j` @P=uc KRYQG)gp4'(f鐰R8 ު$7E!*Uc{N_y`y|:؁D&<܈:pkz$FWd:8kwMVS4?Ni̺R>ѧ2Nnyg|0Kz3w<9MJ-h[CgN3"d;K50Fw"|pl\A/ETPB#J5_j寙/oZ䑏JSDx)ۀqh uS%wPsy8h䴒Hu$fm"wf/ ~w~"'!)ٍϣƆNO`]& ѫꨀn`GkzԽ_&r_'m{:oVr+_]}u6 w*gQ>]&>BJ!_mMiNHӵұ]gN]|u"{|93.%N㴥LUK Qm1mx0Nt,Kٲ04_E\hݚaGKƀg;#rLTSB%Iqo\ { "ٹ2X92 `݀܈Rf i>y01z/;rZS B`Dm x7NJAb.#WJ~ !e5TnnqR/Xkv.m9l&8h ~0KC(k.EKtz"{gQU6IX%\ +NUOq5B 'Q7 )e+cW$b6PC6e62PMl6{Ǚ )˿#C5Ww"?rv 3miV%v_Ux(VQ^;D>1A!`S@T z!9xm|y E?5gSTI+ޘ ?SՈND72^lN}DŠ+ZL͜JBKu2&^|bgG_GjoH%v}Tߋ_XNl8YӲۼ c{Y1,'$ڕ(w-YW4P, iqEv|Sb'ӡ2 kf3z{rZƠP!;s*9 1T)(#96$avy hR$wJE?uU OPaЅ`o=1Q\65EK{0Sc ޘ9Ja`+d MLB3'PyZTɶm@lErG>K%ܡ;Z+;0wH=S_ F[qX#PFˢ-vnsS ׄ&SbZaC- <4hG5b4T(zHx6FcJ=*Ҩ[rXM;Lݩ/F1 "&yJOPKy`"jсlTk Иt #{c مJ/pj ?G&ǔ |8Ep0X2Co>-5DI^^WUǟńF M?ƿ(>iB+frG\C_F2zi|/\m)&jK8/ZeSV$㎐pl Q-h 6;|WR`vV+`z>8TZְ",5 3Stkoz4JX HYGd&D.?uy G,Qxh>:Y:K4W4]ʜK7&`k}ip<0ߜu'Xt֌* vVPvO#knj.3{ ḊC`C+ o{YDNvik~M2لlz/ܷ@De[AoZA?mP+=GاA{~7 ~ xbS $a<@',)NTf-C"79ݧ5ȄFLY/̗7t9WZ.3oӅO-Υ3p)-k0YpajkJü."ROr[J݄;t`<{ɛax@`( =6_ $צJi񏱰2Ya_xIy,;S76uЙ)&vxޏ&. p-{wHD̡i]1#2s}faSr<%]O B\F%!$d`DrMOXrI@3F(MW?p>C5$Yۘ(wgT' @z<k\>6үT9:S N4#=V=ϫmM>.{M58`ٴpH#lsAjy P2 n<đv-Mxh^U.?9c*<;Lǐf۔@iԹ'E7 H(#&E>;,86psQѓ 6pHvӀ湸MʘoǠt | L0"0P_HB耆_kdZm <7v69t> ig%[$[Db/]!c*, h2qA$M Jb`Tm{n {Е_pf%TJ2-<{)P9> [3W>de/$pT`P%Omt \({vrb(?% Mpz帘evN3ƏdmȄ}FN1LB[V&_N g8^#`<޷ByAa"5͹h\K" 8nLT#`9xr<>3UB2;:[tQ{r ,=CLݫ c]ХloՅ>dA'&c$A 1sh G=x+J-4ba!J4B[fp8qn3 !x幣bc9OCSpʡbS0ZqbX.mD5.8+W5neLn8. GfEKX̘Ⱦ*Ҵ`H<}/1YIJX_ǡe'h 9wܯbPU@hۚGH^"A)]=*sⲝ߇ Hۿ)WE- \(\NO d6NŞ5zU(EWޠQz'iWSzyn%Iw!GI,x;D9Fb'b:SbmFf+c#NS9EWN 1j>Q|(}Dt;s}퓴Ko5Eپ`y5+Cx:Ț:ϯD`031w[IK٥anDQ`L%ߪQT 0\dR6?k1aB9[I6jt_VNrEҶi \LA/H=n鉰íf:ÒXJ22k,^|]ZY4XCVyT~JK@ti u\W3 <28uI\R=lm'n-7nAlM`Ny>먪K _w‚t)=ÇMC!X V@m ~ |j 1ؐ92n@f@ןIVLOߝRKu'"!U4G&y ،mU/Rn}i!3xp oH^% <%n: HN_|K,5-i*D|Q)7R6 &[R?^t%ޓ5a*5{g6bZG*EtTEۈf : Mt`Fj T:8aK\CdwsqN*ۅ$+>)tUj /3Cͫ⮊KI˜l%FcNql (R[a{k]zk` "#!dNM`.-S6AOckDS pˉ}I!ԕ]TQ}Qaܦ@l mV2&[GX~{%Ȼd֖N^E$;Ǧzm(i">ͮA 2OÒǑE?[d* ʴh!ЊJ >=lNe־[ 3ji3G*)A"O2nt*Fa8΋i^nB&Ubǖ;K/H9%bqmDbTl^gZx'zݹg7$*wm3bk wfHu׾@ʡ]{\Vأ]*ĔU i]8; 2f$=xKtyUܳLٓLRME۶`ۑȾufR|[x̆d9n</MDFpۍe\@sG\t#eDQN@“!J3XyhP?C9vzbeTLCG^g 3=?twq)cz|sX{:,=!Υ FhIt?`0!.OtAx+:cSB7D#.?߳<) 7:l EҲDp5$B9ƕMs:Y>-%`*޿θ ]s~3bzÃK}$<2e84,G2tfn]]ANgD{ێ>&)]6D>ERsu,+v΁ %>RMZژC kf3ȫvck7}Xnz)qR|=BaRnRʧWXJX(*5!z9&o|lf1}T;d%ahA' le&DcY;Wēi+2iNd<@ Ёy J{2ǰꥴY9nFHLQvb*g6sV88ϵWA>Lc:)|w1ޱ/6e">q="a~wăqLJ1GrVa% '.nRuccg. rțJ9'7I JJ=7)1"7Ue6D $O@ٶ_ؾz1yù99c{adbp4)QE;/ۿD`F+5[K-QUte4_^'a!yi jo?Dn`(86Б1*̴7G|7N_\KShkw ĉ|VZ0< k]/I<\?e3$f˟i$iRo퀍JkH-4 q*T YI[2@/+6Io}cu UD# dXݪ,.>hCqp5CGn^O`J 3 0vrϖCT]\Pr 񬭒>6 ̓9rX+?Ԑv $!0h9\߮7j P'Zrq/:iwz]-J=>16lQP}WGuEެi^ijf7@ITNnӖUSv8[[U~Kw &'6DxRJWi=dG`ei{( 0#wAs8; z" d0O;Afދ)Ǣoh3"SkʜHE&m@$,$ wR-a?Jwco2hO>#o;B}uyzCW'NpV&PiE## ue@bcNtJ`=7x.j24$0gZ R*~vj?濻DKě#8@w@:ZV^R&5QSʠꈝs#!gG1P&#Jy!2aǗ0> y{[Xl=[@Sv.<'8y%և'* 6ܡ_en=f / L7]{ E-0GT @S ?w{H,f//fjoƫ^D@O-7̵Й\ V̝;53ťǿ @Wvl}Yٗn9jE; I"jR]gX5k|NB*ۣVIm@STņ!OPc:YG",>&AF-l_xT&l΂^Ƨ0*=|B]1?ͻ癵iYؘFBZFԬ V^0JwO+-ʚD5afT2N srs=doCi`"yͣh|98nIo9q4XP2?Y{*O!N3#\hVhQZ՘1X:Mk|f^ߒ[,'27Mmd7:( FZAc V8].FY)>}>T}ߴ}uS|n*jP8jyw"q1hgeoR 9jQ10*Wݑm$OǑU(2H-æZ$+ǥ@ )+= 2>Lp6B+ ?.ڛu}qT~Sj~^w#s^ȼ&XΧ.*e꤬xͨhi>m.Ȓۅp4)׷fڻBޡD*h wR"Q#ɵh>1[DZTʀ*CxHgD]C 1JZ,,F;lm{;L! 32uEH݂a?yt%)G7i}Rs,O/YȾ'j>+y%na&1=kx؉$<5\="38b~V~Se9yP&a'-> &V_6i\+$#W`&͇>iE"KHάUѡpvEgrԸ0jYH_ |.=T1J㧢۟6|[O8-U3YKC v`fGWтkZ^o؂qUV.DCB nx4y0e<"XjoR)u{^%pY:^&KsmςzqbSS/ur<&8?Y]0JZ.8h5-a8kZTK|chpg.&)_^I[XLp̗Rݙ{6%1U7+Is`!nSX6M29\v},}0$20re/mDxlk9N]M)1v}#WBB|me̋p*d;k3`LR[z^jW:Ck#75} ,9 \@V<1Ƹ/:ٓy7Ю2rx!C }b[C1$cڢ Yd! o|Ŋo;NUfsCMSeNq3u#yyG%n5h 5:jF&[eڭdI_o]Sr9ofVBlXX| sA>f(xsP=N?Qق竡&T WgmX/6h_iL.// ˛/uM`,\UGhZj2*[Ox3u~im2h~T wl<{Jy aEd<ٱ 77B΅" Bd)e;'%uPY&M@m bi!U@8Qt^ \*y=&ۤ)=- @EzrY)Ȧq.W|viUN7IڴP;Hʫv,KWÂTݬZg!`tRoLȞ-݌Wp{^C/A-u=KX3HF(?9,srL}mObcNRY׍L_s bVsJY9LjW5)L60_ cwOB[:k+R[tO*BVG^hzYBݭ @a&2ȱomoؘIA6ŀWfFfaЖ@D/WAl) 0vՁ0ڀbK%A/VZSx VjQς>갌H =-e-eDtCޑSZ7Kw\oܺSF,ۉ_ 0Ot0X6uZUlOHe_V,n˅˾4'؊+9g>Ha2\5 MʷDr–؀4;L'CՁ[m!|8sAQ(Z %;렗lM{˄KUxݿ?8 ty0b ;/O w|B.R85)rV\]D6QHK5'>A׌m O^f#Cv8$e(-mw&JD> Y($J.glaA!HCpX|C߀]LPrRϲ^1Qji`kt5֡HƗ2pQփ=>;ZE9{$gq#'l=QrtܙPŮ2VgMP*g< t44Ǎ CB =oདྷs]_d꧉t6OО1E(% 1$N}XqKR~&cQ2 #s5)ڲz5Q~N'5Osu﮻7ɨidLBߣ;csD|3z<>rsaoS댆:7[+ЧL4dqzT m lMgʕVJ$넫gZ2˺}!Nc!ΝĻ靕e7'>,&8LPנطr.+,Y::'dGwԔ_ wE=V- +NdS)imd)wUV!0Jg@ /Q-~Jpv;JD҅^%]'T?:Y^˺i=/V^ s89Pxq瑺_v_1(e"Fłbl!]FߔtD2z{sw FQ:H{c|)z0Ҽ,LՒC-,n^٣׋rWgw8 q^g/!rmEBwu&I_ 5hvѥfwKo1$iL #g|I-ZLflfɻ &@x:r1Ur٫f#c] qQ{h34e;DGfܾJ8,^X>VdW>A"S&;*;?4M0xkR-D/w)"!7kɳUWP6?kǬFZ\0.i&m.a.lpB1 RjS9ıÀU2xfenNT'l,^}}OmBPLRCpSZ҈Ik&0l5vUbl*6Aua~eUǀ0K+:p:Yc)Y #QT`H>.޺Ts~{^iֽ!DF(3c~rs(B |+ߊz BQ%Gq[UR)|Zp4s)ᚖs5K !C]mydO zLnPpef2@i}ɿ}~_烈{(^"1V3\dbVd& ƽ2.yH3U+\9ۇ/jce}Ls!P{s͛Y$}nTk!͈p5%R Κ\@X-o:cxa1_ԄJdQ٣rYS-~穝܆k1HiԸFCfF;bdg>vkyC& AwFw;m?yC|JQJ\[O=1E@j>(N )iaWr/޵ ˟A o]O8B=ekP:̅v_q[ds$24@'p94TUQУez.")Md)_;9ꖠ"9Oe''z#?dIv:Ln'y:){m:2L:/!ICr Ea9,8rgH5BN#0AaSl?3fT֒`.t)go2CIw @X($mR4sӣw새Cqd3EEo]$gz]K(:7HH5))#L/M]AjVùIÀ-YEgap#h%E(/_Ȥ7{+rhr *]$NBZLC꾪c)+ bCRC˱? xD HPZIe<]$_: ,ruDZlnSGӐI4/V*ʦf,ujYK+@+EUwe ?VwBi(h#ЗsJ>$X6 h0I<HW-vZXԑ0V,1o@CA(~/!9T čnrऩZIܤ rՒ+#gh{vUDSa(:>! S?oX|8vBLl2bdcVvT쎍pe$=smn&ps%F&FmLϪfR$šp[.E\^Rn}4GT *eRA?\.NԽg7DIHz6bZ7z@MV-D:O9 ~тU :>$mJv I{!2)F# ~GK¥{ ='|GfFaozϊD{5jǟ"9Bk1U+e/F)e߇@JZwY/ι[!<Yu?Fsy;3؏˴tIM?%%UTꢕ dn^]UK%̣m)wee}a3 $c5.ԗq\Ku@lua>b}};Db(yء))R0Ɲ Ԇy?q4;igC%`z^j'$!, (^,YMLe`')׀xlrZr|HRy=b &WDn ;)j `}1ecg㞥c H@̈FtE~$E)>)ҎX2o?#g7#\H]-֬&ǴNlKi< 6GASvtqr"IaW&#PX-Jj5v~} qJ`;uBwTV(_b8LFڜyV9I![\_xk_'৺;]l?j"0C 8 \C6)z% ؐo{_5wjyc"nÉz2pz<"=6$qZ!kv_#PVVLףZ2xZ>57|itc>jR*kbۆSIC!T"ߗZ0h`gD.I\@Ԋ&仓 7XGnrH`;LkoP9cVR#r1ΤC>uddI9n;7fݰ>xnq{>cM(/+:ܺ3O1qR/2]\.D1*|fTV <f@J.%sCB%~klU#%^sg'l2sl|6w&ILO'Om w*+lآ `1:tFeqTR&Q$M6Un1rNza#ї! |[Z{JN~~4Q L 7v I;>{_ϰݝEҗO>4Z_Yg9CM ݪ}y=חB|T}x ysZmT R_d ڊL9 `W#6 ɑE,JLN}a4Z>Z" B/TQX4,(#AmR|R.ȒĊq1 %g$ ?X]Lb#u My%n i$NLbb\~d#$vQT.k86xͿEfsl|$l<EF *1 r I@(r(I|2U3n|*6:bAoUtkӌ|VC_>+^ۥpH&R0x҆01n I]|zd 'r">.tW&qe5xS ")||@0wAh֙X%lcܒi2+j+"yNVqAx.n5Z.`g#`H}x+d ?b򁑍k`.(v0{pј]A`U5[ -eQ"%\F>2k35irDdNY9^Q?$ D:+67\Yu\"b+ 3ofS(*?tˌw1M*)s=7Feo+`DC_W#A~;y9u}9bU Aǵ+zN< 7h86f4D9]J`w;{ZhN[!k%wY2A^+&IHnѿSFͅR­(oRo5_+ᒳuE@1Lh:Q% c2 CSȏ# -ҨAADL.Q0i$jw>=C>K4_T}+ CJp 41QH8 1Ӱ`?/7ec/F6^(v!q]Ճih/viXB4T)J!39klvp&s8(ߟAU ^UAQIs Jno+CԴX|#lb[>xFO^г;6*hW}ԣ7suPfya5!b\B "fYFX.%$;cE&L_vh(7 38É.5..7X+PlE42nq>Vi.$5nfw{&R"9R\u +x^WaDpCI01S=:>SLxI*v, =sn=*&%k&D/̖{֎~88h.S>/;b=΢2ЍN Ԩ<ס !IC) WۡpN xۈG*"`Nym-X `EK"QuC$i  簌9 ZXUf+¡ɧC5d&hU1|(e9md戴 9;i[gy'_TwՐU=u< 8%ǦRFo,V4umKvcFsý^A>Dv RB玤m)xPˑ"Ð{*H.\*)U_%l< 9()[Ȩ&cvu[Sw >j~]'߯k z[wI)q a:EkhKh|]AT3q{7m BRӺ ` >bU#+'8 [i\z: 16B\3z9s:}aU!UW 3KT65l0b#]5 &ntb*~x3] RwahݲJ@&X GO }<8f 1{NF.tma7, sIԸv޾uu-W [Kr.ˤK,{-HLcp b1b nMַޥvXFV+kR^FCJ,۶'mYa(J@2 G\{a?7~6(gdCO8^(sG5:Bmbsr}zђh(eQP'4-H#jx8,}^f@q@TYz ւw˞[ޕC3 o8Cwo;>os7:=wpwWV.s)D5W$@X] \*I"S7RyNP3F`M!}D|nGF,yx_2e)Gɱۏ6NʥVI我D|>s Co\.Vz~P9UɫM#-b@vg>ml eL8=v9 P}("a@'-'ש=qSHϫT˚< l`y@GK?7*EWn]f {f\(?ag q`# w}6}.hgۥ"}S~z$v(Xgyta XOy)7lo{b? B&ʲ6...gԭdIN fdh eJ"1/vr'Rw#vmv?4S=Xһ"3uv$'FޔvHE!>lRť Ul*([}JͽNBn+r2l"+vʹ)n۰e<:PW U]. ҊHeQ`PVVW"7鶆=m#_bY;B14֗L&`)-G/4F#yCKXZ0UMN\90'֐xW֐0"!OQnYYhi#?1ϏvڵK"pV,T}T@_z]f?U-Y3cJ~4gϤ%:1PN%-h˽˅>PJʺzj-H(e؏(Lf:ن(|֪8*4&רvCuO1؈d,hzo w%T[Mx7B0I=bddlȺ̗SBWiհC@f'dZUXrlLVw7X^ ir ^B)&&}vϼmw},.kq$' c‚wX ^V|iS4E&ŬeWh? a|cϏ@ l8`dӚ(+ 0Y1 |&2l&ֹYeU;KSC0 $W$WaZ˦i֠psFNh:skHU QAW kH NleH fŤ)s흫g@lT2@0]@,cTh4oȏ# Y2XF VQLI^g~5MCf=}i20~u7ѹyN,=bn :lJqk|: uwfs(ɬpޣ/B n35F {D- vU -HS"V#ί뾊3l aTii3"_|"L[c9wγ Sa2wZf <蒟aܢoAFF0r#oJ&*ۅe%ni/Jj) 3O0y%ʐVP)^6@L4c|5re"}b>tZg&F_)pA[%E'-PPU~rCHiZekOgPYH\FƎbl^F10%cw?S<ߍy:{ym=h6 {3(Sq1Bgif&!vlKfج{%6DB젋>T’ˊ1I */ q[[L$Wrx #iV3EJW-$j^ ?J?($M̃eP8`9EoT5uML&/DrhL.&`JJl]՗bYssD/%P7E9-^E *+FPU##[i m'`VZix?e>)\*ÉۤM{f9V-#0yh@#}9= cS_H!QʭC1(UN,V  zbB3%=ݐ?~O:_jۼ ?]s_wt -_:bA6H}[dm@'?Z4>4Q ; 5^JCJʊdBHvn`xȷ >sJX(/lh9^bP7VjiL\A/"sSf/\0c+bv脽f2 WUFQ2 &%USP%=!p^vg#>hr8' ~Vr&m"%VPzbp٨;U{Vi+~-MdT>}wZJlo; 1Rwx* {үmT&K? f}Pc*&}9YK8|r'MIٲHBZ&L*yI G]&"q D6joKj=gl\Y(@lqDЧcD{n9hw5* bd*nN%nג-RGHM×tkRh*l.xD$rn FG뜍 @LۃDp+.|`3ϸ1R4 >7؝:N.*bvt ARǛ&4TUKq@RvԶ>Rp#m0JcnK,[c`?&8b&M{TCTjWiiWA.J . yQUMPkSW#+ szlzPC&e]ijPAe0M C>5v$.z Yؚa~ǵd6pD^cJT}+kd'2)N$s䇖4oF_;E"yyrzFҗA<鰿)V)gf 9fv!s?ZN }:fˊ~߾\Bi?Cէ "%G 7;&z`xey}LF'L0?ʹWxGOM b̑}G]0r[#9?i4+}G J>&a4_fem !xv04|1pDUQGv+D?/aC "nA6x3< yK@WBK=|Y~ﳆ~Wr4*X.9uC7ϧ΁sC7jvϾƢP{\*sF ˷TJo~ZaIFO2=KE3-f41!8Eֳ";T!u+(f;9#UTGG7jgD06 h-YtV8Xr%dEu!/c ~g}F03NhUcSnnpw.RHq3I&[-rwШIp_=\xWi0p͂^{ 0h[S]HKGӨ+XF/]=;ѩc..as}P$IAwSPQNHN/Vwx$s*#VnVߞU&g !U$dD^1#* "񋾑AMRg[19"!qf, "ړX V wKfX>C?+0@Bae"wLօH|Ӱ5=SY ^c!> Ğs;Pz`|#\􃖧D|YYR~$ mB$/N^^ki@6oR:iօLR];^_, kᏙ#WeQ h^) @ HlCN& !Us@h!0s?M`,āV0qu=+3qLN_GKBC=0 aXN s  +Id ,QN +@aeb>vzv3a6Z0Ļ +䌁/Mt9tnm'C+Z(jz[\y5+k"MHg^|3IS=T*n3% \yh6bRr;4Noi))h :T<yȷ\HtȯJKsMq;i'RfюlEzz7veQ< ;є%#ސ2C2}dUcn5șK + (TzU>H.So0* zyG.N{ Qp:6o=~m:B{;44vرmPmbY3^i[OMN DJW[Nr}G"apÆړV-dq$-X9I0)NoE}i:߯[<8mATNS3\PȈe dacz79t h l !>,zU&h1Smht0ST/jc"σ cT=%ni6#?I_[PD{Cㅔ̈ѪUHREFEW)&H~o~>N+o|%ZoD`췥`õ$JKPPҪ b7Ƨ id3w}6dW 8f3B+YOR9:Vsx`hT)ſqo=,Ԓ9t^3!jp7V#"uth3GnAҨ6 $1;c/gۯ::#Q` {^hSɈm`D1I@yxJh!,Xh ׂc&Te;_Pt*WH=W -}NϐLH%,R)rvDV9| p 8?tmNٗ:amڭ;jAL0BlĕIJ3eri tn%[!9O#D0)ĀaWNЗ8/voHh4GXgeXC;Z(^TÒɃt ~ oieb 1T}+?fȑK6D<@aLi! N(0^sv_&Lҕ 3cwc.D,| IO4Ň&s SWx9)jPju| e''IC|fS R|+{ Yw+X3P>zrJ~6~+^-f*P/?eC_{pm*ZXcIⵦ{P#B`m^#!I*uQ 455JDns h'jMԼ _]LB/gU$8첁C))w<%K3{ptAӘ? ;;t.%Xbdv-(Cڶu1;&L/<1VZcv?n**G#} aK[PrN~$u+j;Pe#VCC\4l>ah($+쯈΃LpY^ 8b0(fEx@* ʍ}zAR7̗x 8uI2߾4͡a0ӻ\dۿk`1=C_lnIUQ{qy bi @ Xw_i6e 7XsgQ,#)5'b^%dJΞTq!@Jr9wc$Nvr/OsXb=~qwӝVi=@:zlb(; ȩT8w LߍQ#0~ʖ90Cu) !eNRoɺF6ox9k.7 43#[ѵ 7jӕ2y7mW)7@ -O;ZIyr1evگ3ye C2RAmYhNWu ]%uZFVr rep?t+vXQl'{R C;8XJI c<*e_0Wg? ,ˀ'"Yakmx#;C}!On 9a1bnH*1P] _ʅE`4N/!BJ ْ 8P(oUblkmKiHRu9' `[70sy, Ib{ϜWbw ˘Z,o$=<'Xugg?9?,@E d g? 5(KP8 x%Ȣ_^*.Vmh( S+`GzUa*DJـhŽ0ǹ"ڽ}?EngBHO<Z(aPd*n/=2r*2ԎEdz![k%IHq2!K;|tfEu!"mSLo$[],hCz\Zԛ.%3$.]g_Ŗ0n-WJ⭶۟Z..)aVwn>^:[ O5!F8%MZ1.*-2 qσUOh -]ҋ<قtᐖd&ۍu/-gճWIT""FѼ<·2b?4ޥj"PA#+ d,d;@= 9 ɖX|taxgb:x%8GUwV-O~%. / \Z [ex֑ /fK5E&_6¯∰-~ttN0_r-eXx96lGw`@!#Zj/ho+^۫ ^qDu2R@sibR$PšX :3~#tTN~YvYNb_4<"Xٴgȅۨ h&m EgtyPە"y%L8=Zz;!WyGu/9 E /Ĥ)eLRp (NTf07Wlm1}0$`sPw.{$s'5o^3Ku 8$M \kI˄+8aV2Wsݸ8Q akCDIt3v`n;,erB)M?m˳G1%\8lPDBAv׻"xz}֎lsgѐl_/)VkMPyXC㭒qEs<BoSdd @xנ8{2v7--}B'7gx象+ A|m\,P/-\{}_,a49Sx׭"hS.$k^ഩ2YNh>{>7%"Iez`Qz+l8]!:%~l, 2 6۞rw;([&MwV#MZUO >ZڇxbZ=1g)~iy-ABZD?-ݼ4H_tSUD!ҊD{ u^txA(CYgnQ;=d+"2aQ x2nJ.4n`0t0{A ޷/6A"!sMä9ir{N_x\A9Z'}WC7Hoڢ[2ٸ!dvb4${55̴N<)=#O!G2FGaVIHġ $.,f`LWx'26_@#|{6upp~Փ 4oԑF(JnB7ݕ|'yw#?!FlXO2V%˂ûm6i䘲Ң?5ez.P-𭒃5fw금O635Iݟ?N(?j(U &ߝxhemWlN7׾$^ ҷ;U_j^2;n%E[fl)c-EW[g)^}ٰeZ Iwsť  `Ai۬v6e}, vjC0Z(dm&ۥ%༴AK*rM-=wD{j7.tA>y-#V4正Jtk2jV\YzG$Q "$_*hDzk *0tn*dʚkiзH\Rhld#Ɔ?lP!X6t"\v}31rO"Y RaXx~&j@5cX1XU"y)ix*% (F4rga( [pvS۴MnZ {8 V̷S-p)Y>ۢ:[ZȌ^UFWC0YpW|.wN,#Kw?kVrf&O<8->{қǫLe1lE Q 4cQԆeKe%yA(sBP{,6zm_︊,]):.fAƶ{yFFN8rN2&A+F 0C9ǧ d{${i~+P CG";+ъq[T1_.p 4WMqMjF.2NwaqƶZSlc+7|w9TOٰT(z>RxP-9z&vb-]ভ_ 6eG7q7tzO\R߼WKE<":fpkW66<;D#; ivs" NV*M C|@ Zs^]S+3ZM泉P[F!ޮ}+KX>B9owV&]Ϩys:!oS`[i͉с$wclS0C8 99:#gJ4؀O}cx L]܀@}ܸ˾Dǁ IP'>2*ʊ88c'w 8ܰ $qC;4bnG͉Ecg:meWp}:JIU>}o d4v!t=61G@F|LHm$|ܭ8pj҂jtmz&ХtH-Ckm2(} xݴ5'o&I~1ř "ϫd-"l];spDQYPqvWTS^ađA %۶K 1 o.^Z.9in/_~V]sdPa^,_3'5kDuPR&ƣ%mS`y OsIqjbw$+hB阢qIe1|/6U,zWDYGC]T~׵ 6d[7z-{ k09\]SǪb1OwGs5P=BAU<@l~k0{A ž5*Vp.ޤƉ/L⇻H_6[!;wrm,!2zs⪇wB`fcH.t@6Brv )]xΗ\m}M 3OJ 2^ާ 5T~;e8V$e $3@JC̈ĖxgIM : ㋵Rė;N'th _sMXex"\FP7UsǘR>-W;C[)d+~33UiT喍:]ZN0\"*ݶ0`=\[K"F%L^N gZ߫-2cnTbv"<+C.p0*~GΠ59~S()X'ʖ H z4VKa x텞5ܗB rE3R4.m̎7Bz>eY&?`fhUI>BEMo|gXц2-yQs. nMa7܍YW ;R6/6wSx(AsRYlk6z`6V27c>A0hW7EButgf+N|4mόX!yť$`Ru KJwJlF~BLy4nJ[?~=Tpqj Ӷp!mqȝu o{@U4D(9L7\;gbcd+:JѓmG4u F#@%X܌R|T[}\ܱ 1b-[YFA*).&p+48s0`<">5L4(",zM;nIn. R5 ^&m7dz=lխn q`}}ݦiWGwՔ`y ),GxUBN ` ҂̬};B! MD1vz[u[i=r@h!Okwx7V&.)ה]`&kl͢ǵ=w.7U$TKEGL.=Mgd 6=܍65Tb2-ݓ;q]] MCj5}8 !NI,+nR_>';YV'+Vlvxk2ƅabLEzveQp}Z0 }3LŠ싕o+ˑcK&-S (X_T]v]DwbFÊBMi0,D:ZI.WZ;eu ӄK"hZ?N@P"NX߾(4 ޔ1ڢQvƕ4XDi,oJ` 656Hg#PFkB`GcC0_S[zfO=ږ5ih5>6"#uai څk+t|3Am rS!,h:Le$)Hଈ2,є:u"i|F{{KjH Q?J ${\ g<"2+.E4_L%&|&M t=(.`1݅%+"}I` Q,byNb@3!R|9@v(~|b] ?){^3U;U,j۷VZ6i~9Ү~5ßb^)g[\^$j8dXbpI8M,chr5 0f2H hչR}cvϺR̨hiy&j%>),_rˍrego뗩[@6rgLvFވ=i 6sAQZCŊ8oPWSG^d.==ԋKK_#wk$4Gͷ}HQ/ݘ8~c\ _:rv@B_X61ˁڮQ%.0+cFͯ7=?Ҫ{D 'wC7Hh~& t+y˴豕dQZǔv*Ԟ]kn ̷t,y?ԧDqT\41ǬasM?v0Fri1\{y$_DH 7b5 (Ht:%厠7upҀd$eDil>]' R)'yVMقTy[$8d2oФK߁]XBsgkP{> \,I+F 6Y͑\E2OJW>m?}=#j<b.RpT)'HzeC_LصTdvdF.9jŗ]#ڭhU ح %\gs}{>GD.U6TVU_Q3{Q5S,U/1 (.BIMҽr|P%9%mjKۀh?!d9{؞!QOݩ^ծVsOmҪlBTy4/Jf<-*iP6r~FOGtޚ){9J-S{jYt;FXXUȁFY:l@mwYTԻCq)b`ѩ6 Av`LtƻhwGd8G/<9}'bz*Լ deRDCe|h?3s[ƈJox1<(i&Y"i1QϦx\#ќui8"Tnh)H:l8 _~V~"38Y_4c~Ui ̍𼰮8vFbH~Ͻ;*;|O^ӨF~ˉֶ0%x5  i6)[k9,l/ $"4*8 xv3 /e5񵑂:sY@Ke--snxj-@p8R~ 0Q|VSZYϞe7_͚<>U[T2GZ\E}.ئT;KgL+r_(o.(ZbfwG`ýpxئ^)4ʸtK6co1sٸLJ}A%\٪]Na”hNr8B+8ě e: ?ꔙEF3!Cbj$dzg[FݰF?_az @c,~}/u qc$VvfWCNSsy=2 9"(Fذڤ{ j}U(aٌ5[ Dg*/֏p^A >2 J$Fc 6Јf;8 6PV~2HXoH ΝX1K!ZRͲzk }Pg P}"c׸ZMXp5{o b)$CTu1s^'*o?]6Jj's&d3:u< cƸ %<;5ll8C0؎kdU;Mu~fb }QDjWX"~/u(g1αD+ W]<.2qm>x+9 2"N 3 ISyԷ?a#p.RMI{;("%y.ob( 5k#J ƿ$q{-q|qH4 +Q3oFnܗPOm@*tÜ|ĄL)4rON6߄x[?w5/_}fQ$Xw}Q9*vPaf?Zp%/wSB%o"`i}Vi {ďe@e_ނ *i昴d5X{l4uؿN=11Ry;)2Ex|*P4%Ҏ[:CI\*AU%߭BsqJ^\e<61>PUT7KB-؎0;/0|ߔe|@Z&:9!\*=K} GH6A^fP{? 3I F*pܜ+w (7]a1v]XJE V2uUnk#G',ѷ@ͣtM7 [[r$|Mow!rT[LJezLq3!Ŏ*X7+O;1Z|IIxj 廱*ҵ6䤵ɋвRr- NWR3S$wj{y' 9\QER0 _ H.c -I^ VE1'y̍X~ַ(H*[z6G=T |O-t0oz P9_ٙ RzycMD?haHyؚɋI\/HQB__ -h⢯\톇m$v^b$`c4j>BE>G s+U“RFL B:47+<`t9DDIa kMsTHj "ve.TܝeZ/]:NٰDWsVW!]K xͼKƔ5u$S&k M&kPq1|ei؝FW [G{%b`M~w(il6((j+pVy>YXz ITX't++҂xP|ޜVp)Ǒ PPsd5,eE-6 0H25hg/LfQS/7JLi}dgj9R~ 4b]oBOKGxݧ>^;VۀX 7e&eoa̞@)_Oj*e{[V=7_&1Qt8 ҁRpv=)Ͱ@d/u$blX99eAdOf]Y=H.F"`:? 3)( g[{A"]-v{/'mu7+ 0RHX*j(n- LJ`Ӭ wh:„a (p"(Et^e Y GHqG RJ WQxA@sОkQAwfEf?x/&S+'sDu;Ć3W /~t9;찓?ٕҥr%I~$t{hLO3ȻG=h_ !"dКQwSاˏ(/dv0ElAo-'j,'7Y ?@ R*0$ԩ:xTv9I]*w 4/MH;/8MUDbՃE{.mq]>!UQg%jN[W:d&H&wT-n!܈On;f ˇ_,[W)x* agzQ&d]ވK̭RpJIFGJ\&+z.WR1x@mۨܺ>uFye`g]jKg`rdyWRഗ96ie]"WYI\z>ӚޗFގO[.S`+>u(zjl AbߗV봟m"oEmT-3qROb KXbzG|~sv{fkn<^z2! O=H7Z%9;''(ccgT1a-!ex07)HjAK0}nZܨ;\h`Ybwnp`h1Eɴ۰fnqz̗'"b(^VZ q ":R\Fbp٫3x*<_Yr#`mBMl?yhKY )$%3LQ"q?( D5=!Wq닇C(%d.p9j hR\U9ANҧ|~,;Dὶfz ˡ8>zXG'^ӥ\*LzQqkJ~>\ZTSS1Vm<"z] XAnxZPš^ӬGcvO4R>U3jLBS\ 0D Taygc!GͺL*QDAkOM/%y-@o.k߭PoL/[5y%OUq\x,ZD D,9 ytnJc`ŏ+Ew'&kq,'x|lj+.6q(BS_6綞E%f/m=s೺~DJAKɕH@('['AdQ+V&d+hʎY-~kPVjOזVSuQ1&*4˖H#&l:ڡWЍ.'=bM99ϡױ iZ^7jfj3ۈI)°6&ވgX9Z6敷wks{e֧4 "h8~m{{ :[x"KAR 3pY e DAuۤo>da,m Ly/Ƭ̈́,6h̲,ME~ _OYGَ8˨aO.K,Mz%kFrT"̅[3uq>L9AE:HIONƀK"mށ)Zlʕhrq rõ9]gJ?%]ACpyyD6Y Ќ2q$,9/$Wͭ/ۣ;jJ} ;t^P..+/2[I0PMh yV^BXU%ɍ|*ƧIM-DnÆAbVPuЩ,Q'ig]N[)T?D=mKx?H_J|/AZCTG/YtxT/畂i\-a s Ǿ&_OuT`wAh+@_4^TZHSky7e>AeYK8{ xp-&lj{_149V,:p-y$.?WcŘQ<,"mDgש_I#iJE] 鴪I:&]4絆AO`lyr p/4U9tڽ\n;t'/.Z&yPߚ#ؕ@`omWJAEaLեk_Q(5#?迚2-8}n?٦WH}'`uIpQX'\3ULd0$!`馾v]̷hGw:*~L4l?pĕ"]*gaG!c28AxQN(ft(J6 ϑ!/kR,u䗧DE.VM{PZgت[V{[ori7J!){uȗ\~SJ\r_#.p K;yHPfkJ֧ `*&`juB&fWK`_^G;ݦZF͍o{5?m|tfn׀'5FˠK[z ˺6xp@tv)IQ}' 5zDk[ wB+CD; bXks+D\U,'AI}Y'/j|,<*לH &T7AF?JE 3gMiܜTo%D1DWhT^ r) K ZE \ּbq,K5"\+gdQ!" O;6uFȮ~O=LFM[B3mjefƾ&W;l1R)R_>:j`4̢E7 hR9j?E2xW${&wtqA38""Y 3b2|&Hy9V/L-yILHhH\U$aag[.gɜZ5(ލkףp7p̀M](z~;Fn5rj̘X)dl F|TvLxBN.2jH;̿Iύ^jx2F{ q?^޹Z2fXA挡GR^n|#]*Ӯ6X8mCa<gF֔S=X, Xk.sz7 ϲznr=ڷm zI) kxǟs[m@GȉP)p8wV2l͇Ql4XħNivn8uJHmx/RcT/7c dëҕcdfW5kNίym}^Qт݊*:zZ|Fܫ y۬`R]RV c{dceqCاv-;qq 9^曼!Y  L n>-E_=pϑU[ 8Dƀ{?'E#=)"B%hҼ\S1{XH/f~eEFo]0 Ⱌ[ `lUnzSї4zF"v[?Ӿ.Sc7quAq}vŒ{&2 J]*wZ L\:ckp"Kɩ # ^!y-/ g5Kۜ *ۃ`7|KcQVk_Ӫq/}VPGh08M7d4؟Ce256 b`5o(^0)p^B @. tEDk@?zet4¦;SƩ9[1'DWhDlrat'2% <-7UҎg,nAwAoXF8['QOHnHU;ys53s_tϐP;@JSi/̸ő-`-èN|:wʛ1dAs).jq0fnSN(>` $lc,XzO6RZ&מ >켏v>W<քp483=׎1+STlrݍENQdD}/>fƣ nb5c4&6R6]  dwB_>|1 H̯l"`*f!Ͷ|e(gK6E,鐿%1| 38Yl/xJȸmB^j HXgFzpe u5ob9@eް{fmt-ðerU)f*%cnf[j[=qb@;Tu^ s؏^~8I&$6O`ZlN 'Lr~JOWʎ/qieGaCt6Y L6|/UHhaak~+`/ou܍0aG(%ʙ ]a70g)DHLJl2cX<"]淋#d\9Dٻ-"Q_0#j{k:56M//wC9Wy܈ Jn]] +,Jψ6k~I#o1 Щl2unh3l Xq}asU;q#'QP |L1 |` fk_3?q17/nV$/yƼFݠ7ZVVw:7L+* 6T6}hŠ$p0.J,6`W1 %!nh 뤶;5@Y/&72)ϿfpɷUo! ޤ}c:;6^`x8x23%P8H-u ,&AhHDԵhÚfRH>P }eKu~WhzDv1*!25kNg+;G7uJ(kӎ27I;YCeiaK/e``6ܭM??;GHX' B5/{MTj1UJ^J3|9-@ЛRO#'C"A[ Zs-Pg=1s[h 01ӪA%84JW L&¯h^ш],|Z2lbQ W9,os'o3oIk2=pA-]Q9|LEvD h늟 飰AJ_uUc'B6eSXG0v`S)ũ4{],sh Pf!5.Ĭuγt$ F㆑:?o$IpWS о>HhT&0,LA`쾨JGw߁Dޫpi*6wQԄq>Շ+ @pexJwԷyW ;ЬW@e7ώ)@.|'d+ 7N&)qlKxl+&f/0Vq'?sj SFTgj)'O`aeTbz(GtY1tx?׀un93Y(1;v1}7_8ڃ _˵<`+"omK?LqFsM&Gc.m3Q_"AmѯCc%at=L(7""ϖ|w ʧ,w]~?@ #MKxIOEFcp ӕ ;Qa}K5\5n_+;O8}[ 2Lvq6(&:şm]T2%~rJ z4OK~0AVSm{/%]M]{@pڇ^c84o@'F\ _m ,5@Z Bn4)-hK7 }s;u9]|l0QL<6SEoKvԓ~|ˆ{iO/]!}hJ{H1bn hj3o/EiWXD OU_12[r[O ➛gǼN!jgZrH UÞpHB#gN,\Fm>mk{FSm{AiC,>ZKlwKޙ?q8J]ffρ$9zN'Kk a3Qqdˉ {5G4/k ߯YE.*Ni!߂Z͡dlW J81{O^ ۞]'Ki(N9Pa!Su}{ߐ$ >4o( 25Uz8U"u߁[^Ba#h&:vC? *vg n@x'gaV{{*yrPpݴGࠁ1ߦSc'>.Ud|U=cie970x%Q_ aY?BQm} f/ZCi53'ǧ QGV[Ni-Xi֡~*?YT9?e u9sB~\Aߖf@vS[z'Ix޳&JV {h9P/kNZ^kHl?|P@egjvM$x< ~qj;"V#xv -=!yzOk ݵ.+ÔߑV/N4W%ny.~xa9wqڸ#ނ 8XKfa6bDUE<e;diQ˹"yP`Ӡ>1>h{.QAi/9{@.8>Ӽ_a: :8<.qOit O Nt |[bnp;HiyKpBRu,7p_kek Nݩp~J&ѳ,|.}ƫϴf1Y[yl r4-ȿߊ(`A)L`=jWXimZ)ϒ\p1_wBϳJi4ϧq%&cBmЇj-Ӑb޳Nu6 xC}h)cl h"8@T{xhhPky/mnbkGH&:&7X5w}% ִV74'6w6,+zeZb BiNENs;IxnM/o]d%FJT6HSvK:ѳn-hb 6oƹdv"o%]SlѳkcP~*e~DLC^ӿxن$::Z;X6`zrVk.lSpS=nnW{jڜ>um^tLOa7ZYSkVx' ao>d}v9YW&3)$:_ Ϭ弻DtRfK|3.]e8J*BJ?h{4Oق/؊ٿ̿0i@ޏ6kǟoEO\ $`8>=׳Ii~lX鬊>w!UC{ xyn}M>!f5,,>QocIgC^5d0q/ 5x8<}p>F$ !S7%.3W.^nJt"m +ɇ2J ! nKTp\iJ18stf~`Ls=ڸœM~\G:F?-bHo4sw|| d\鲓!q3Gd0VN38_FctH̢wI3{F2ҋ_׉F;Hᦾ ߒ3do"d,cU~)l{oOQ!g^Cy6`;qv3E!n;9(ܧlnM ;R rϔ}*k+k# MPxnZY\n?KqzͿ@ 6g_g"Wғ2 rAB56\^y@CT<𵐲BJ~[Sh"j^EE?R0CH ʣ z')ŀMpΣ#t)cƬh56}]$G@0|TvLED*+l"]#0 (gk19 qQ} ju=-40ۜ4X;" ^m8x*o_Y _u;yUfV:-O=bĂ.e@-ݲ4< zgÓf&OGp W0SŹo0jB?qvߐ@ )!YfoBV)љ:?K?F6݂˖o b%<Լl7rT$k.V(okrQx8Ju!Ϋ8CwAm-D!hYXv Q N[:ϩg2c;NˇB(& i]ěĉzGE*Nx^(_e7}wǑO]ЊQE |š˯Bh;r:1y ēt-go?_!2L0cݼu,k֜:ܴU{h$@ JrT;<[6c/ 0om/) 4SjE3 =v ^GkL"(ycSS?owG;ddˀ{$,V &<6Qg s:WzGB;mdG"1 ML%3:ǽlx-f;m}Nhf=[ ҅-4JeEOB~gܺ2G܏&JSkCTȓ)VO1TxCE ")˗N s0^u?_OJU=.䘱 U)2b ? )$7 \Ok+,y !`sqOB8{JiqZĹtҜ$\{2 zdV֢P@jfEl窉[&/FmK̯T-J1ƚ:.[MR%1G>G] @m ߮|'7\lȗȸGQTm] "PV5ѕB?@qTFZX͏\BgE9Sd&7%`VMR1XJuW=JO1Iج!qq)y,dB"4DoJGpv 9{$h.VlE?$}$!&jIY%P$g۟*î_˃k~n ?17').쵒2>:N)'|!9@U@^TPր质Rֹ VgAuY4Ǭ/(UU1)lTT;TVB~y= ]|cw^(.qWfä$tUWD#t6j@ z9#S*:Aof`3g.}3[cuwٗTD m85]wD`RhX="T0]5=;[ϔ$syg]||a(Kfvw*0±z~9rAq }'ϥ\z@9F1IX1(Q-~uLѸ,۠LCJ$OCy>5? qW ͟sKㇶ6"NkHdH9rVMKQe˘Q"m^Ť~M޹B۹3#gVZpSxdܝb.ۥ[h{70?ح !^^٭7F[jjz#,/5Մ={~EMC^/KakWH\ssJ9)E'GDζK#1moAˬD#mtL|sa '8/"y 80b ef3{],+Q:»#8؈!`;L2oRKkG:[{ImX^bz?\Ānh/|6(1K@ډ:4k,.Oj/-2?bNBoTG(J^QI[o1A"~maU;`"Mf6$mJyW7:.CJƹz~6l"b _ g[Ѣ]ښ3d\;v "Ѩ/BbhN֝ A&Iҭ/Jcx- 4''Qoij dZf 3stnW["@!WfKSȴ}Ë{ڨT{G`;dU{@q}upuW(Q\@[']7G}ϷTڨ;3?} zE_؜@CWX2㙘r?YS-YYaP5&*!6>y0~dJ~;!8a!ej4<2򬐈(Fp5g)T3p}%em@Ⓤ\GnZˆ 9'GH/,HU}U^8|[07 ޳Hav& o?I$eXʸ6=#=B+@DhE`*Dks,pu]=w%]ɠ [ H%U*+`n#ڠ Aa)-XgY^v Wt>^՞IH0!k&Q1.\^+ZC$;Qi6=b:^ $4f\* ҁd0G^ٺ'&HYB|ӃZ քq MBm\n7n ;: g2]3N0 PrFC> e8GBq< FJ ?+ ӯ Y5apР(xfp4" 5f7ΈJ7{0QcҎà yi9\^ +ooKaI*!.4/n&ǿYOF!c}˓j5'ddgF/:nbA%_ppr6;Ai $sxc&@'sJjV&|sl)]SƎҵ:it-O**/MtX܆/D I6KJo@Md=xTӑA|"DUl^Th1og#7CW2=<,ǿnHAVwZhQX`xBMVͼ 7"X@l 4wd18C:: "g dwhNY1=jϥ{ ]-~pXVyn8e6^b晏0mYkt4%^ -ۂۥ}VvR7,ۧnmQLW_pDѸRW|Vy;0{je6P7e+X#412)dre_v3J,rǻv*>,nKgr?c<=E\.7ͬ:s4u&6M*lK3Pcvޝ?ӆԛnjW^Q|V=Jڋ+ RZ(T_Z`~ 6Fx'j `np(>t5 uOy{ XQ@^y̑5(S濕31<Մ(6?-uQmUo5ׯDА;|,+\A^~$PKQR`b 4Hk+{72y >G 9Pco ǃB j( -p)2M&g֡NUK()2{@1jkVLoY=+HL {dɬMrnYlR6fʿY]ysƹO.$/:nuwbWS".HHVO^+~jM"_Iez!!έ:'8 JZ@^.zRӡ͂su=m1|F:ק &<<Ԑ[*M@8}HRE2nɹol}cxJB JpB >t/YW9֜&f Nm>0%w_tRAJ$N<0/~Cљ0 n t\a RO ڜe`SXBc_\ܺ}w5L5QJV|㠾Ma#Bq}P%ʙ2G陌 T|Wg3Hs;~os˒^GHWj+ٙ])֫Z~7S4M2 4=&|j-ÆN8&b5i3y=lbu͐TW vU0|dÆƃ;A;D~&j9[pk)w P9oan^-a2'>L=ӻ '))fBhYrQ=0\ 󬚬O|ikH%.킽KkaOÑAZj0??l}<5ߕLH 8`oA:%SPywPf`89a„+ӬF[+ubaTߺܹ]|]^37bIe5uSJlSCnDZⅸ$3㸏T5I /;?L JKQjDn>҅M>*Bh?h23 ޼t%8h4(_/8bSc~cT{g[!7|!%JXGuW_K'zx/.~;*3x)/*?Ű)A>irw•/wÛEyeN+Q r+l ^fӆ _Q&f|2YNF;iR'^o"}6^^pĔd Y?_qs*?M{uk#2b+9;te*Gb >Z%ydO{uşDu*C13 T2PW㏐)ƵDA^FaU%h"$AyRB'E1+єXys$Et4闔pPĝ g[v:Q0DP<>1YĬޞf?;͡.GX]['*0IK1H0Ho#j,D7}iW❽x\_40ٽr-o.1+ӽ3h[R/6hM~_\Bo#c#1l`dֲ&Z4;ηN'T̽y7 ogVl}@&N?M$:dq)TKmmcfhR#2GW&KZP!QI`G;$ vc 7_zV|ڴ>_9wXG $F :6qDEc' ]hK݊u8qvU<Ú! Yr7YAblmd@qqYI4(RX>t,Wͬf@Si)k c rˬ{ //etlm.i2Pwѽ9"+>>O~d]yNHőg[9R+7l|$fT8LE ,И:.~i8[9zGGL O7a ǚx| U=Ld~*wb I.,>,X5 J8Z~(7?--woK%G0-[ m8¢Qʤf).@ Q-*JlxhDӵ@}|hQNE, g[H/ ӈv? u~(Ib'B*Ʉ!)tЦ30bP@3 (-C}dlPzf[R{k+zc~xO\dYnb@"cJ7=u>(>*p9y~D%HCa  .z.p T2cD}(Bxb8T {yNEGamWAř1Dr'"+u!$IuWMIJ NlR{ЫșFԠj7^F>j5 iRl^<_g]ʈV9Dv^Yp #ie \"$\[ 8gX_l7-Őh7^o1nJ@|4Ȝp4[`wlӓh_ʥ֠z TI\VE[>(|UDAƶH#)IR5xgASpQʱ<6?!8rbjέ(W`D=e]N'KnṒ=g:y4 ˤsE;xaPH?r6^H!SX( Ϗ4~Z.[/R-/Ezx3sWb2po/'E_@ ʘ Wf_DlA/K+|(_CLh^"#//yb~.>p, I7J`) u!L-Om'x1'hđS}_@mӸȬ/rK$Q>:]RӟZ 75#^vFKaUxܐ?p7k EZ」ys@35ݑ;]Uk?H~LPec).I';5+ԗvi@ho*xDt+cmK"= S:̘2 싎D E'=xvs1VdjzOo%'ya'چhpUPVcv}nޕ/L%P{~\FpZxJ(FT_ADrd~hMyjEPӨoZ;U `vge;h"5k%\$gfՆC M.gԥ \}Ae(Xh2sšOe1jfM<^;7kcMW#Mַ:xe˧޾dDzb[7TSY>P#g] C%9A|VbZIWq ["Ww{B*Xȝw 9<#Oi{}.L1B696W =LŪ=DsM$+Gb'aXJ>aa^#6$/B __1jeKh8HLXM[=Յsb<,|a?Y8!v.XS_Vك=D#-P~H,Rq `Q )rh2#iǻs6Dĕrg.Kׁ !G~-p&o ~ ` +=$&a{4y1bǿyK "ixcg5g5Ñt*7Azb`:rpxhخ:fx=l2L:LEWVRP_ݔ>!Ǖof -Ohd0m;zd M[uIGTLx%>)zFϵ̰#C",4͎T|O|uy/ͷ2%ǒw: v!>J,])njXUyXЊ2]r9`c¿qdp bϋ%%5.R3@r2]7,-uZ!<7,…})J`F86Pq S)TWQIq 7Ѱ+zؙ$Ic=R7fwX|!@3Eڃe 1-*VD#5($H{x}Iی-0v3m'Րm >yMahYPwSrO2rbGc6 ?0Czt={nd^Bk;;.YT 66~Vsew/,6hg_f9k]p~}?_U͑UC(k%' 2-5sgm){6 )ٙ!,#7H/33B[O}VN!'2'oy7)?zl:٫o ߦmȟ'*ƨb'3ٛ*2+n8)-ʆ`]02jCK7[xRj(mdz&eRV;QBì(j&ՙsף ZNgD.Zg3C0+-=3wVP^s_u!jF1" 9rSumu3UYŊƀ#6~q*?;ZkTpQBn1ɧ&LU=q&n!2Ep=$Ww163b 6go 7{ZW>*8NrTSG=]L@Penn^,6]J.Al(X.sJB^ KmPGDZNVMy=򰕟q>}/Rz\b ׿yk+u /$x$!33Yؠl}ƮEĹMHX'E@}?ѣF~ܰ4D_ fL5Y(砵ӻ Hv@X()>%WƓNmBhZO{3t2Oi y}mfr/Qfزf޿Aӹa~)C L/F5.)4BGf3yzP. /,Á/O aMUNoOR<BY"*hfc}Ku`] ӳ$6!'b7vENTUA=sEͅVVeR<7  Yj# 6_\3;5r65>F׻ !OXm+!ayWAP;y$u >~bq~<3t`3`hm[I[6~' aY_V2}JwOO>>?$pmMQhYѝ?QS'zUIŚއoA&,yPV4t1L+hmYg܊:& YP}{+S?䱰lȈ[0P\"Ǚ'niB"G/֌. AʓnlO?#Ǡw̯U^d7l)ɬueLlD]+I%4VDF|-_e>m/Rj/yb=v^P1=?LfOߝӱM紊],O/ߍ[l 3w1/_Z;bjpoؙHmőbS^%T#Nb7Yf8!*5Ch![u&2%I19;j0_}3YlP 9侗פjez6hwaB-ÜYTcR˵ 'pvǐ1' X@9_FF^|2}ԁqNr8\~1ϟw/gŵUbT(?"L55Z%Rgkt4YYS} !#ȡ ͐nFA;ĄZ®u*_tEdjD+cS S9o.kD\*WS53{>H#RZ?jN$oXgʭ az7ӳYKP-6èEVCC ﴋ3p1{֥+==Mv7m0,GCwnS j%QY^/LoJt\8R5s˥L%.fϳ2]:}XtgK|8#-7IJ(@Q8"+>]W=MoNXH0ZK3LQ k}E3+yݧoHp } _ asx'Ռ0w!C @sv#Jr>jy(rTilV"+#6Nɽ9StPJ$ 6+l.Sgwt.6 L)oݔXaOt) M|j3,*pB0Kv 8p@ڕL&`fksM`#.q%AW PRH峝P)B~Zfb/5 !p[l BLG!`B&G-GcB<=RBr4w߮q|A/% $ o?uCst 14[VTDs0"Eog-LE"sec>XU>l+ ă0E>R4`kݟIls%}.@u +IԹἔQ&3^`[x8?C .y5SfDa:=)Q B{GBR\]|D/Ķ4ԨƑ'93y6Bh,' II͐?`TC#ReZZ~KǍ!XOzK_ p-k/(IGvSԢ*;{cite7)@Guјlt X;jF vk ?Q,w-Co"#uK>'d)И, 筪 yLn' {*,4Oo…sܥTa??r 6M,Gg(a1WO*T?_( 4A#l~:vr]p%s$ڢͪfDEfy%Ո8z\sGJ 6^0týYm_lMKpk*F`>/-aȢ^ը " a`hLp !͝Jk@WU z8x9̲6=%v" %-5 9rYLH55+w߁?0Ag–OI,XSk]Q][J^\ۣs( ]V(, M*G3{kGnh<~ᘑ7 ]x8 V=<"m?:rwk?ۅPLYx}pw"Hj箷Ih]M}]>z"iwyS<&nt1gVU Xх$$wEjl|AӘ,3EŕvhaMU/!R hWb%s}e[v7(%Df[#ۄR`{ԊC^6끣Zo{g;1?sTUݫ7\Né$OмAkY V8@oY4ҁ>d :_tkChQ:C@Pm0jmv- FAO<ʭrMbO` 7N΍F9"~~3~g>.9.ͪJ½Qe}dťbs8a U!oU^CSْ a`@Gu8A 5!'?O=lr\b ?:S4yus RexgL矿S9B -iQ)/ZUqwx ]jN2d1y:S AJ/]FRޠx&OP`c2˃R2HibtK!oEt64!$#?R>9|;T4LE| j>HgsU֚ND b5{DL٤iw}P.- 2BmQ-'W#~jw4,΅鞄DqZETHxpGEDtW+VGP$E]-xO#O߳Cj„/A?e^y3י@(t M%*clº|_V"?K TEP]V4&XRP"O:l}ZQ yBࠑ #zw3ʬE~8YXu%Ӽi1H )ftX` 3 T[CP^k;Ga긎He"oXEϲ|o} |0vi^Adxydp`Yy!l6bplz-gI ͞,6P|fxXS9|&Wl=NEϲͨ`Q"٩ ,O"&bmB)s5{/ TK~Ufp&"*j@pl#k=τv? xj>_kffVhu[ώe'5բ gsOُfb[wNL6= W# >z]t9C ?6>P$ypQvС7‧~ =ghϖ̭4}d2VY[dG? Oz!IOY@ƀ~^#1+̨önqf@[uɼ%mD#QfIɺ2 |a~Q&RlM[ PEf[H0#u]Lr:b"50w;l%n4AMKk7,ŗ5ۜC|jFuJO 39됿Cwㅀc #vqEZpNA{F4s&i,Apz`/ #pNܺcF+xFйEעX.#"Sn"fAщk_H.rMku Nolf #m%Ƿ,.5SA~50 u2Y2׆PB\pM엡}^> &p0ȆYxGLGgBEmQy%37mA@I(cveT}tk_Nدbb1]~44M^>.2dwSs8بLk8k7GGY ar'dLtL64x"X\9 %Ӟ^[7G\0DľސAϫi35a5sA32p_F4\*70/u+'CKԮWUDcG͟Q;Ыq8MlRpޥ(z}ik~Kv>GG*Y(BQ@/Jv?Cw>'!G!*2f5P'v_tMZN+rGĆU xB{j,U?Nc|cJB s-9ڟݨCXO+ek ˣ7L`.~~`QPd5rU W/e5;t*AupM±Y(J m^d{d_[@U!w|Jgscj)c'hblmWhϙy1W@9c4D g™'!u- m/@eZ^ M׌,D|d5+}iɷl4>dU@w^}zhI6_t5CmЌ@I8PDb i~ PK2Rpφmqxߩ @єHd{rj,;~ ]|*$禧YZj|oo=Z%O(&38Ȟrq|B֨/T Z%F?;k8wUDVqr_GH5l> @]Ձ.fs QUpbQXns$Q~RGF3Kj>5Q ^򘸌*hq/\Kx; lQJ{mk8 <'D=cMax+cX6BdVtώ||;&k+~ joQ ;5tމD|UFdEOs@GxR1/"%AĹ"f*aXC¦pR֙DAyIXl $D϶:fD~~Ie)~`oM=$`3@n}v @F;ԸaVW}.`g٦0CNT޸g?42I2oq1HR%_(7?(pى"oجbK̽]fi(g1_-!QIQ8 ;;Wږ\ CfnByPgc9.t?\wIӶ|fZ$oWGt4egЏ /Ǔ}̄z OAza-?ڦXJ WRcKA*e;;p˂22؏YMRyp+۰zp:L\0_:ZoT9ӵEhS-HB-@׾#,;)Z`ƺGq(8Xg:fj|3 D4+&Cl.P9Ulh{o-g)g&pw[Fbƒ4`L.~D~@Ez䔊t{9XQe/@TC2Dl\1MN:_D4p 5s6#3&i a i+WwwBl>8o+JaZhh_@E9F/4acG_5wBӟ6 urΉ|ګP 6 }SF^1b7%u4HX V !Bh-ESipG7ڵz#]^`0H$l4LunTXul(Ĵ`_uk톈M{pk&)f3 \UIrBIWOU-Ow`9/u2HZCQiWЁ(fl~eW#x~m4i.{=@QR;@  p KHSB:othdp XF+D`#`IM4 [m9}Ks̄nq;}^Mhr p׀+Mˎ6_1ȿɿݛLo{:t'{tmRw6?3K\+c򝺒[7dцJ ; 4c Uբyxa{~^Ѐ$d&Vc>JSaꝢYE5WcOn2D{(Άw_Uhv&'Ѱ @Q@-h6iL,7l;܅gۧ^7+45]~遼-Ǟ ^)vkhcvL)+3A:V6+l9{x čE}qD,Y-!qoY鎡DSC\f[Ƃ .$~ #{6'}drV׳Gm0==`Pe5ryD-"LTpa"Ly/}F KFygM>05* 4fκրS㠙]rPt:dQW QYTb `U$ha<[qn%@(m!K9 tiܮ.Uk>tsL#c %Ħ/xm-A 7\[|M6KaD(Ch zB zWe7;YFH@^1d< \ȳEh*sU1\<W3GӐqHa)7诞=ǍhؾNOTAG\L)r4W]Q"_bAiN>ȚC+ J?_%nhN`|t)#f |=9j!^1 ݽ!4bϓe>,9N.l?rV$w*fЦ!F\ޗx^jd˜b{t1 sUGpZCP_PsBLPGVPNu+D'%c-*CGe?*$2͟UJnKX~3%0 Usm쬲)g#~6~[snύRD'*r*]!DOJ`҉[Y[Nx^b[Bp'5z3=hkM{SU&b} AjPSN0vb_.-Ò`V MKSt3 D[dhzHq[n&KOEPMf6pL}<r,x4 c^N{a&,SvʯJ,TR SCkKKQfIAg%g0#&Iq>+#Gχs)&vOxz,DIfqGNJ ^v0Ǚ.BKFv6).3}0#Tw~ں4Bo xltz`rtGq4Ŋ]qtuh<8]E0%0d[jJH`e;0{Yd['OCN@i ^\"2M )*j8}dſ?[2An+֑ jK󯀞\L1n(?0hDuN8-. wGZL3%Mk:08 ~AX% nx4G t. YWnoы>IE#0Q}0D8M>؜T/,2n|zʦ`tHX{}VӀ(&dܧ-vaLف8Q@P Aa TC2Nb &`z|0&${eE,#1q/&#oy#H ~- a/j> ԓn^. -(L-0ݒ.%w Ɲ>{vG^ď үq8-a{\$50ڹ~ F_5@zQ wW#]d@ǑCW嶾Q5qK囪u8 ^RWy9ۍ=4%,5tHz‹X6MQVZǜ:K%BȾh2[C^|(U,޷xh!)IV8#1$[^"]avzq )B͍1{ji`osہINlfD _*aC81kΓ݇G3}Ų+8Ja: 緟eLE2irh3hی rĦc6"ԥl1Ϣqu=AxKZ'BjիrES^2+'2AFQua0#ԇoH*ߪ"/9ufAsB;CƲ:/ǮHLV!wDSvH7/7#7/1Dl@,B<%@hC`VF`h<FP) 6H"PeͰyZO<[* VV?Zo{ I-t edQ%HJ(/V=D\^` 8zx'^s94u$0v&31Xe2toaqrj3-ws! ڿ>n;Xyɐӓ=>P֥BWK/-1o?VZ0v1l%>qH<Āhmh0~=FSL}%3 Z ,QJp}+ǖ|/yc4J@F1o'p޲s uDh) TwY)M 'lp{!mlEZ(&j9|~*ȼ 5vnNFɋ^.[ۉd"%3j:c4R̕SV-v4#ڷw!Y1ƄHc2l5ӓiahBR !ixX A:W6钝ܟL{ ˒ܗ1 ^yH5;M*${֯<F!6^/_$MAXsZ>p}vK9uBꐄPe1e[hbhs?m j CeSgмq6~\Wu W_"up}iy0?=&ras䂚xv C//:gFn`I&(M$-_c֍5>To\ $s`ivpjtA@?K5̌Y\lPˡ&<׀'MSQh!!eo<%"1p:ZEV.c;XdSAOAS=R#愞{O]ݨ(%/]]riqgve篞~mujo[<)pEyՇYji]4>+0ua1| s9XmWG#B2rCE)wr~6S Oq+LL3y!]E&5('<Цxޑæ9s:dq6llnWKN[շN.3q"_sK}d"$ʒxkpw@mP{l}$G:BY h 7 HiJ0t 7e`K+Y -Or3m6&-ۦJjl4Py[n` .R:8AV.W>A!eў-8@A)yD[.9' 2_3+=~"U6z/ȝ_p52Ί>t1fH=$yh` M7 ;TQBu+xtV|܊|0樘*AfːtZݐT`J@c`h| T;#FTsHc 1ѲZk$1)Knף`[?3ˬ]̶v[/β.7S֎s8&|L8k9NPà B.?ËyC{,\:C{Oڄ9x1Ο g ͑1j\pK fMVI22FN[{_C3KX*Ùs@z!2jpchihdrcmapjplhcgrpcolrgjp2cOQ/R \#"wvvvoongLgLgdPPPEWWWadKakadu-v5.2.1 gn(PrYWd<@M0+(^ȇS~WeFt@ZV@\v 2sP\#ě%l q[5 WP1t֏g:ݷ P+Ψ>\,Rq65ZWζ He/h/-Yd9UOdI!6G 6\ܲ_(^+ Vj %#Άx'0rqd8/L8LIF2$؇2e[V3ޡ'eTK+hWಘPE?yˌ~^HVb f MPw³LH%/˝l7Hz.Y;VW}Ɵ)"R6?|ÿdK;.8E.=GgTLs壭FF"袕zv[|1"5'Nʼnqle$oAl'@Wmq3pyKmW=5YZa)kH8-ʵr+QuFSV xU Ysh`}@36))MQIS>r-oծE吷nm?юu@jE2t"h>^.t2i[iMe7Ƌc(Bbk.p3k;095PyJ@(4}(*qZ>ML:zmtL2'C"u)p[XDn:'ApO`ǀwϜkhp-pZ9W[§Դ X>MFE_ ژ;%Op5a߉|Ym :U8ܡO %{apNUUՊp02?]ak>z Pg4B&ZKQwӆ X h:WPxVrnXejѧ J"BpQMw\{=-%"}1JR,>m}&#[Rӽ۾Coƍ"Ѐ̍" #ðJK^y9E]z_`v޼d,4 *6ɉn)\,H$Uy5hv%<* ޅ 9@ҽnz/̱g}y8eX52T9y =q w#N5B`#BxYoY̳yxMokT>ՆkB v2\sg)vf )蠻z񯄈 >ħ'méX t_:$JM;OV"4;`zK Yej0nUMfwhRy.!͎7u,2:&;#D bԻ2q.QE mr֠ WuW=-?J &v=1.J[0>bR_u-^wr~綈6t+yC]繤ϝ7Jp AupĘ Ti6ip.$"3v/^VEX2yWY O5!RB:cEch1BM]klz&]7'^Sa@Gaa=k,bDQd#wbVGAe9qq2PXVYcOznx]F.+m(xjD81/HJ+]PSf8CI0hي9$6U}e- Cyۮ^@ }fKZeg$_'/}̈>ۺs$.贶h9.ɌG9_#[GoiB=LCM~USZ:9՗%\hۉ+ǓK_tϾ4Ґ%~VKKsG`$|bZ>YS904=n8!o2GtZ/vocGE<}Ɍ{ Gbq 4`~ng cRLB6, e*9)&p>_"8wv,34¡zo2F?L7n 1PUBx(e6u2=dp:lN8עp D2בrC: r`4vC yfTdB`Ȟ-rj'}z[BD-yAmo WlRgRLH̠Y){f;szb~揍ҶN2]/S!\:F/F QUqYm(T _c=Zcdqғ.'ZlBO:~C83Z̼At?:tr"9g_Z iu-曞 $W Yy2mҝBV* ,NVϢ!fQѪ@:7y.[:QiSd)m6A_(4qU_0{MCAՌv&d T^2HvEF9^ҍqql^N M,==IJ͝n\;̅@sHѪgv ^h At/O3gA{2:_Xn f^KUHY\x2/J؃{CX'vdsr_ѴQCi\-3iaq,ӟ؁>Ip-migt?R |_qt>Z[bͬfbyw|WxsPB댒k x1"y@ gq G[%7d?̙^[B|JDF;cyG r|Zo`. 5+r"ݴNxI\9X,ᇇ;EP7/TXؓFqaI\*O`8,y$^SCI95}˵`; d^KUι\?nGRq7=f]R0`Aʼd~R%{>z&7KQpgUӜC|&fX~CkŦ]e6eFQ2\/qc0H7^DzW!zy>TZXwPZ( 7(IM}0+r/"˘GF,\jƼ#H8,H5,\D>#+5/Sޯ3\c&?kR[ FoH}zs`W2H%.{YR3HDx$_3vՇ=uv4l{r=_m~f9&\|jVv{28QZٝ1i R(F;phZ]v}=͸)FkDLYyrqvHzNY}Vq8w2Ú#YȃtlGZʂ}GD*;VeIRZ !œ\aҳE%42MYȰݴymޔA#qO[쭏t7Q]d3#9dDu[S 䛸#'ғ\F @VcAlJXS^eAK$[NIqE@v2@y{Z iUcVMIjJ%2:hF;k˄pqz m/@Cqr&@'i⏆,2d CUF?G^Yv'ۓJVKWeP%&?;0Aϭ ̰|`QG|33νpk<.wjXr|8]%ֻXFi`o z2+h nCuRiFd  8Kb/ēfo_5y=ޞ&aRmw_0U}!oPvI^tD5< _>kNY<әhz>M(;+tZMe6e=eGwv/=[ok9(Njׂ6USX]W^cSKH|z/6Wp*Z)A)O=cRge[%gbkC(hq na*}ZNb H jJRh[Öm[4b1]?^ s,]+8n i~bτB~GU }B̷Ѱ<>ic,z`&z"^*I"Z5dx"ԅEH#RL_g.֌i2mi1ܒaO ZAQ7fPR20SԲ##"Iu#lYpl3ޑC2{})Y7zY{ S҈a=`UD.nڷux$"Ȼ1j-x%:!rc݃Qv58sR͈%3U>UNP!. K%bz}<~۩)3A v#!f!`Kð'rFgQzڎc4駱ydYIz7 I?KngLeD9,0b0U=F+1 {x=}"Zn3F M8kpϦ7-Ţw;OC4'YGOEoJDVGQEӡ`aaz#23?ǭ)ce<_F=1CGh ğ6c9c#K^UĢ ;x_PaG fPI| ,ʝ0hXh3!?}IsF0{jFo|w V%Gޮ0bc>Zel`@,DDǸ͔tiϰUBFnCbU'XW7?9 lG苇x jٔ1S "(2No>w>eԨglߵVN 1tE$|,IB@P[H{hK :&?B.aXCtiA@C'.sˁD4Ǧ@" 2~\ktX7e_s]7B2jarC'/F4a䨰 = `7wy 0.#oB8ձd veQ_YY׻]]ddv?9~mF@pu>p{Kf_WsJ$Cn[vt;î.T|lpׯ=)w'T'I'c% ,HsVaPpHis5@Svp2ǛDA6\l#5"tl yܺҸ$ÞAw_ &(C_GeU 3 ҈d@8#hmV9uRahK"`1&r:m >jbVkçjB)PӁ raW-yY^ !E9W3@i=0z\^/!L}lV2SrJ WOx>3d.q*?gqj[ Vkpx*[ 4"F#?8X_/~ٜ\ ҹ1,\dr16p1#$-ZoTR3sy r(S ܐQ$J.{s1:+JF^f坼AUR*6]!gh}滴nߘ>4_ \Q4ޯ& xbԺtBKy]oh-C+UQ荇֪xRbM݃m3^av ciQ2- dxZyqϻџ_l!]ƠC}Qf,_O5d `1nVcI }|4%' n)Qwp\|A?hy.pvI×Y8eLϰ29Ls%y8.?L.-!bS"eޙ{vV Nؓ/~Ѝb{^gN҇Mj#pѹw~0iO @EG{Xo8(ę4cآ%{#X6_i˦rq#4kEMOg2\m\+a7`0D|NtakUDܢj?k>Ne0xڹh Qœug'S{IW8pSJxI1M"sd#'.Bd=!ƨk~z JjXF&e4zQOA\D^BY؊r@BU7Ԣ$Ni@z?&jnJJ'6€HKuѦHtYum> qkpmOO~Qt*:cW ) M=;f _ۜL&;IBd۶$ڒln- ^EM*Щ̱Ɍ<'GX<0SDXoaoL"niއ7'\.rpS愱^ݔ=Ӵ $MO+:|-?~xމi5\NnQJysCE1JL?J61Fagwi\:V{'m-SO0ɏUĿ 3ÑE<7/Jf#IekJ)S٣t23d4e! sK"a[bx!$ςXN9]LwۑmM >˨e4S w,~)W:]źdhq"fAjk5O}@AwSOQu!ej.x!ô !KOݏa İh@Wk:}{d^E3j!a\Fl$ioʔ|p3'PPMH43m >ЧXsO݇߾alc!Ld=0d#2fpfL<}g`Z3^S"Q ;"".]ӈ_Yddr]Y R !Va7u_GWO E&R2Ytj&v)7Zږ/NP$A2` m]#p̅4"fhW/DӴU5NgO_R=[$ /6;xGh5(5Ga.s V>32:^;TH4Z/Z3gU)7]+ XBdW< ؉+Cg8_&<$t!ae ·Ik8R8RV 4I@c QSuSguuLtLQ:L_-<}:lpb}`#MPB񋰈3g٥w;֒,`Ri2(-rynU˧JD3W" S9>#IQO/1Zn=!*T/MӍeK;FC5?UWjlW}NN.pU>HJsJ܁wE*4vќGaNM>]|xuRT>i[W$O5\c ֈMf$r'3B,==Yj1 |YkuCosRD%߳d*D:ਭaHr_|r[excHbJ"6RѪei$é (?k ]id:[t=C]M|E1ƹ b1M㍳@< ٤?AۢgcBA.EK=*gp;f2ǫ cr;\G@m?{'X:#ߌn@l:EQ>^Aku_19k3 <}m{ڐEo]EU=*oδH< hj;HS1^YFL<>akj=$אuѕ*@*[ /^V±>7O"XyȯcWp! =@[hl((a0$Z?W>I`})m٩3 :CNOOퟕ^Kɷgw9*FvEk [%@w'^61QSv>1!Ybe&] $ObOwbPzc(M!{oHa ]Mj L!Cu?7z(lsL3 '6^`$gpӪ]N$S'BcMʢY^ b|a֍t@n"S18J{I"\#C%ՠ8+s8c.\ݦ4v4ι TB4>Թ)?q#T BY鏊]d[\/̃Rv򿘠VOWhhuĒREMpk ZH=:rJFQ!iWٯXC1"bC3>!cVn7 'DސAzeBncbqNJPC]qr<%"! {;TQJpt1`$>6fxR b5JP.1XqMz3}v  {HwH`Jdt}ۧFOV@sŅQ:P3Ar>5`W߲1p-|tG` v>NPr>uDT[zXg8/ sa{ht38|e#jK>݌͌H -ډ˲'t̚-4nwO䗐ɧ(F pm 'kQi `п>Jk41ݔpZiXroRLڡՌ\k&ywۥe ~z#kCZ)4 0/3@ȷ`?X"-׏5×8A[$ƅy,1`T$\cA`~ ZS$0n&ָjja؁HmKhs^q鑙czifyYڿ tcT^6M|/L\gJxyO/q.D *Ap:=~P& |\Xq剘Ug#+lo穿ޤ@ʬy$\9**8NRHӁ}NmO@4X9٘<`W;U Zc(%,K,yPi*&)/~)Ӵsx#O(U'ڄdD{v؈o 鯯kJ5yr%.#3o?pOy6T @: E1Rj}U K0PÝ9/DnmWޥ;Kk[.ܰΒݱPAcjuvyl(nOЍ1[[/"AS&J;ݒѤ=U͠bj+#`T*Qpaz ӯ0~u.8knhh<>^ P6ľְrj5E4Kf2<&_b6T_uDZϹ P)tu5= Oh 5WpOv  ?<`?݈ ,+2mSU6QYQ/D)pohԭZ*@(S(̓O_݅CϿ?6,DLMq@ڏ8盏Zw m& İ%$ Ͼo:iNl/? IT.=2XW3΀p7ŜH72N6t1ZbS05Ԡ}U@擻Oa`OK^I(2sX$s; @m KCYt]MߺSI$р'Zi`u≻P٬Ra2ieiX7D;A×'^Ok1} Z{B]5r=`22o] 9WB!L>C/.U`gl.~v&H$x5`"BoBdp`oYH6Ђڬ… &\-~?:(OԦ+4"9U"=0sTݠMI[U::aMiԹ@` @.~~}ŤThhUi6aCIJZ+)G ?꒕lfNCYw, zDZf#,)Go9_26) PiEq![Ə@-},V ThC)Etnp-PO',vrf:*I @&4WCY lVj8Q/5}mtÃ[ŗ㲴qeV_fjW/\@+ 3.N0v":V+_VM>8 l\4sux/"?bTL/iő+G$}E yˉxVzd>+,Λ*)QA2d'[IC`['x:qy'PwݒDOOU1NcdwC5,ZpwU[:~PXrߋw۰P.3\?Q NJ#xJRzs~m D,e(u,F юMEۺ.I4K~P1CrҞ?(Kwm 6W?pEEHrg4V7~gf|tRa)yW!飃6.J̉aC:)4w;o:% ̅"܅gH~jLjEcƊ0ºR.* ^ @,s–-qtMmycQB?b2ꪚϐVHD sy5?]C8$f'Ġn?pgAtfmǔX52=Kz̦7I ?_{6Ԩ_vO/ui25R az5?._4TN2!/$gXJ45cH*SHuoRɨtpG*IӋEmv/-W|SU)&fce BϚtثXW|fuu* wA+5ƪ%Zw .1;1|_}_ɀ}hN:kH#&JeSf 7 Pi%/lKt fUiK V.wϪ]D|xD&t="/̢NܠWhSRis4ffRO\ñL]1䉹sbFRﶠ˖_@i)IKoFDe3InVjVˌ_7HA;(Xb2X4>\*Z*6Y9!H-ڴ@\ U>|2@d-0ʟqGڬ㑊$YbFG9967c׻UcjH;6ۖ+-Ŋ Wt)tqNq .sߍĶfIc%O51p&lb;L}ܘ's0y6px Fgj^NƋԱBq+ܑ8WǪQTN h%^JSu/Y%*~ǿ`Mal* Z3F^OJ.XHh\=|rȃ:,1WsLh9;T-^IeF9 /T@f;-c` o.]u8 Ȋ1*U྽@Bƈj`s 5 ϳ~9ς̠MƠѴ"L'>_;lk#[VS6pcԾnyߴ".}'UNOX(O?7&syR%':[Xi5_]F 1</O ^B%جZCĽt:3Q)2@ >Lz7:h ÒLTvF38ay< }&Dq, wf5AG}j Nќ%6%KpBq 'kB#~ @2_~ ;[v<_ʍ{6 H^V]uL*ͱ W?݁%<꧿m"ع;q# Naof, ťK}'2mNT&pl\p3FK!mR;{Vy߆{83SgV-$3*SxFTbUl$^3ko,-?WDW+j!|~F[]vs ܍al{nߏ"{2>\ؔe MW׉D(:4u$YŭwR'ҋF>?މjF&lge8D ?a$[s!vdv0ċ&쁝B# &kz"5ՇMwBo&n&P.xh1uꞲ\@HA%E' tRzpއQҰ nf`G9j܇6ɺajdA;euy;8w챟R۝ӄiʎ._94.\dmS棓<`wB&Y%/T\)}Z]G(s޵, h x|Vn@_I@Ȭ_I{qyđWn-FB潰Ypeɾ (s_;:X*s;^Ғr DCT*`ƦkQYJY3t_la*'9B6j1?1%xA)GYڞ>=W)T>M8$ADm%Ny,ɆYf"Te7F9%}IDjH^ f}X#amAΔ,FR왧yC VS t8+4^hޒBsv?t~l=EXhPEh.:|+|43 ԸGt&Q#/ c+nUT?F_1lnn%z~ά:D$jgIm\%{t@j{__k6*31FLtYk>d8 m !9m{}%dnIJ`N=k}`8_g0K n8J]t]UXnk:|Vm^W,-y~'?^xlY`YDr1SàE ܫ r%WG)TIF9kd!` F/Mi@q/- _qڣ}JNlZI2}'- m{o[,6kxC݈͊;TS:;^x,û]`Y,E>㑾L捶JSg8fHSa s㊮W0^c˶gK b`Ƞ|婶%Bݶn$oBtیa/GbߑG=/)=niv)'?F z pۿQd= 2YÈC%!0Q^NJjG7NŇ-:~?edpζik2}g]Dc9](CuwaJ?XJ^9!(~|AZfq}iuE.y*Qlt,LCwg}²owwBr;֝tlxP38Iܞ)=LdDOٲWv]F]-<Brh \V'F L~ 3ڵ1PvM!@d-=G"ƪ.-\Q\;Y޲SQ@ԻQtS6`FLјZkUIlˉ(\z6&p+m{X/{Ps$1DXXxg q-P`9@] 7VU%pݏg+q7 jZzbl7fyDviF@ p{#J^B#$Q Sݼc1`n9f oʾ˥*J"yCwntGCeC,1,fB .2U*Uj':*Cjf1Z 'R?#^v 8 !4f#kr;" d9qODt5op[#&fxuM%~ٙ1cN8TDNqdƘNifwzn("d7V~q^Iۧ/|o5\Ն=n+>VH,!hwm )5q1J ABMB:2eRm_5*sQv#8 EnnnvS"vf#X$#,T`~B\:1Tk#1z!WiN`"yfԎD`:#Lj"X&}3;xzހMfws;48VqxjDkWߢ&#"Y}s0VD,m`GإW 1E)|֍fbFf&~Ex_&ňAxx%酓ʵ6JN U\kjS-{vN]tQSE)rD;sMmtIKkFAzC92p)|}$cv"H6t 6y"8f ٲD초yh9[0\sU)o7UDMt65?"+%6[;Jv{x7UJ4ґ+'@3S >>vQc/ J![-J#w.rn g*= r 1u)r-&.cbN~0u:&)x=iq*1F@^0F.#!s V4h"],:9|j SG3T?]W#nj'y's+ Du۲΅ [GNewU"1yV`e]z;ΧX@Լgzՠį0>AZ$#üJڦ5`B*2r 0!7'hP1_փL[ZkB*gw&l`V-Ѵ'#דdk@ + +d8%}[uo[ fl,Kl' h2vUa#i^q ="g+E /]3yDDf6 [;? 䚨5L!ҧk^{M;M.>qӊoV1_X,Mw%jL;18CVX=&l_rcmŁyj+ oڌi.*-#|P1kr}p|5ʒ9Wݴ/:vT#'erR'FTHyVէIZe.d r7%Lv/ tX3.!?hymXCff~`8ޙr{ɵī|#S=!f)9*%:k;c2@W0@|>l|h!0vy[Q/[ ]L]%MFخS޼o0s \IʤȬS|7Z~@I锊+g (9Gr">|sf.}hoZ,$tSTN,VŖXw^>4 <8) FAwd)P"!"P4 hWbݤ+U~&h.yҶX]}(U*^ F?^=;=G, Nߠv% dX)}i섷l,ktf 8ߨU zd' _yꌈ)hfAKr7}hEFLr/ ʪ)S̋XJ\VusRvmӡ><] x+ g[WkMv*pA ,-I}ݞ+X#IZg_vbq M%C'";r7 &Z.{T˷gsz33( ͑}NibX)RZ}6 T V s' cDVfNQ|M[[yq|{# Ϫ?@R eӸף͏56r̽aJ,P0`i輗 9cRt9ѲG<;ZÝFr\g衋 $K_z5klK[nθ)p&_zvD݅υw-:Ca1:`d3,*'vro[t_Br@(58\Xcϻuke񧵠ڑ{GgG`tUo4-"~(2M_i6w`P0O9 aG342acI5 H󓾁j^(3n״fTk%Oء:JsBd 8}zvDB# NQV9+7< % 3̇aIzLM]Q#xIS (0a_Xfy?WlRӣ ,ntZ 1''Ŧ{s[5W< ?ڔulVyK`^{xIӖV%[ezpH8cOV1 %;-Rd QK*F%: $Ϡ|4i[7vkրggZO*J/f?Ͷ@up/ lwK c<fW7Yrr8>G*s4U}^ܲ&] t7N;+W;8-wdFp%$:'XX,$gApT3( B0m6},VčI| ˷ qI1T?ń)|JCE{E.ODMsHVm;xÖg'k`s[1=r~Ԥ.ag'*1m'IZjֺj[ z5(q2q.8QSCP!>SF2`,:88a2Y]uE2s^͒>GBm0egC+^CU ݨpS&sCG $7ƑuH8βk 6+={FBs?i͢c6%D~Oqp`GMv:40nDuQ$j9z[ .J3紳s#nzLSe>x:b|."oiS͓@ K==`9獭r04EDwWK짭9 / Ä: SoL}>5ܢ8M@YSO+I9_v̺cn&DS̓_,(Y X%:o*يq,`&+7GG0RfڵzX,3cE\?q${wQ+-5:nM\ѭPޏ8\QA 9NjI$[}]pn vp v("w.4EL%-Halxuw.t{te 7)Ͷ1h`pM3w1(U{JvXb#&94Z 2^z~VxvQ s~'98j弶m5ˎ B@uw9_+p>5rJ.R M6ddфQPp8qLӊRp_cEyb`t<=$P&Laez?K8tNPna04L0'}lc>uK, ǘam4f Eo]mf%>㦶V| x]Z:k $m/cvs @ӟ :+_5I5=eܚ묜ap.ns;nHaxSfu<3%n7- [W?;91|]9%h#9m^^ ]`bUh*jpchihdr cmapjplhcgrpcolrjp2cOQ)R \5"⎯↰~~~vvvoongLgLgdPPPEWWWadKakadu-v4.5.2_itt_2.2 Q߮PVf_^g/tIbRnŠwʃLdunU*@FFvKvU*p4֔;{85iA`%?T3ϣg]{&Lh8 /.6$iu%4PAr SyK[a͓-p=`son7Q5\QZ=GsuV3Hnp'wU}x]frs(-,~wƶQ} |P䛣ȶ932kҀi&Jaz1ZA-f@L/F3]g(b|*=M I+`1Y{G/ ~E4rZSR&)oF*{Y-.~|^U6WmDWdS;`Z-t vK4=RJSPp}flJ1>xk^6~3jHvS5rIqФBT#\wKڥݚ 3\p\Nߤf; w0>Rz Z䢊]Ij>oeȬb-j nl( Iɿu3Z5UuѴ]ϒMT 5߽7gJAhl̿tgO[Nv[b)s-9g$*A`(jMUT,< þf ̴T΀>N&GGT;X^B1/;4KYkoxǁ9j 8t?{.CmAG?gRPP?쮔$QHs]0L=.ž؀\A#%LzVPrMB Xޑrh(vf댑v3!tea<Û ) #@K2_*߸W=m _xt_͌Ԉ-2QSKtԽg?MQĄ:Gst^R c_b_Ts59+|~k kEZex+ۜcI"ʂ 'tqR`}=܁=,[V9;۰/PA uBZwߒ?>7hB z)D6m0ens XE Be8MG7 ֭E) f\ Y EAƑ7Hm'I5 r WsFx1&}M{׫~ vW_3,,]7 hxI*`DO"0_1gȘ2haxRfݤϝpFYjMaEgЭDNfyl4k9=Wpw|yƻf,ڗT;X1̧p S>Yy{7PF;h9_h$Ua0c>،j5 +b I yETS{ǣq_pbC;.PTAS8D< 33Aʹ>c?j~0Iд8[Ft{:2;Tk6RvGAɮk=CU6Ͳ;@ngFo/oyxl}k,J, 4/]s* Єs|a/ 85RRG\wVtރG:_)˩qw B[RТzqŞKa)r5<D90蛩طS-Cm =]ٮ!:|%Mi"+Sؐ=׺<2|V̘O).Zu #':Xhb>qm5@5jcq7WtɄN{Zy.c9c |˜[ՠ?Dhf+KdIW6p*vbR\NQb",3kY^ky*ZՋJvG?zⶥSTk_PO0v5`*|㙓x(͢R2e4#£TIXtpާ%#ak֚0,3KZ3zW] C$X9#\YKn=R؎ӊQ9:|tD""S|LsT@O׊pTq )W$emb7i2pqkv @9aI돜v%Wui  7122qxvJ|ky"OurNh7ЅDz+IpפVSSk4 =)U$9 HڇlT caoK l6D끬P0]$-xòMDot,r@7L`k}KŪ5@x"f lT/)W*B) -??|.IPk^&/SbB` o1GV-y{xeK,CM9^lN*T_f:ZQ1=SL "_=K ×@NDPmZT &B3 G:_JEgc)"59(||lsi%/E&F2OVXzAR!u86r(k u0Mb'*i-Q څb6]5RP:9Gqv! 3븩%+c^x@A.b]2ծKYa;6iTzsT;p ~J =p ƀh-<٤Nc$}'r7%-nrж R.fe ,3MV[_ `;iYSqե3sn򫀴omG wh᫸b?4*y`\'*!D{h'N} yMR> $?u>‰W2M;f2ޠqfv*Cǰ-VWA~g_sp&]9΀Jpnd~cawB?vtJ,3LyZk%+-GxQ&u wM g_Q$b}Zu ŘʑVx0;`^5@]ŦM Ƶ"kNDtM rMKCf:C4e8ѯ"k3El(#+Zv &ǭ~xf쓉2JМ/Ï6Udmid &k){*a7>=(\;E?&rzk3B&.sG sC<ɬ/\;t Y(6?voF*,K'qjvB|-\&̬68G߯I } M5:|[E:\yLNx,!Y5eWxtqOn;IQ N$$FM0 :m1YA{%b(%dz*ݭ/!t+m yGg;iQg#37lT&Qp|;Ozo޽T4&Zr\GAc٦nSظF%~'f v{V Ojm| #-y7bb>6E$<7;Q͡!MaZ *t\F"t%PZ~5mQ 0FʨW}ٚ f ',bS]Ka쳠k*,e g\rؾ#AmҸu]W[ƽ\02fwӶ[tK{ne'y$ )İcT-H Yn-֦| 蚴0 R: )% z@m@9jLwS\_5l&r/y,a2f|mŒ/%I_V6}RyfB"\rmxt4x&L:h;9geϝVЋ{RN h͏.~+=YܶM_9}ʄce:.#. x h))<9 n1yqe+&Jv4C叒||f:Xp uLIJ} Йv?ΕNp>ڢzr+%ߣr(rwÞNrE!u +9v/԰3h}7E_U](_~o< .>54ϴ~Ţoj@6pp/jɠy II십:s}D + =4tXfVpN6la6v`M'ix"n4;^S$u||=0{E y9ZXSSk oI%Ҽ㬵k)_pò!&Ǡsk|TIN^XnGr֪/jԉ)y\:K84G{6tWr-=# oХg|T%.*ǂ}k%dBMI1C>ʖ7 jr:mJb#iQPh^?*f'RM L !*[9Wh+ ps &}ǵnH6/P9݆QE 連ii% `0 ` f>PrvLkS<!Q@^f|W:@7@ELz@h)N:hDWM~Ԣ@"]3 $+?6y&ij . SzYd2/$03Z 6Ʃ! O+G?@\t5L. cC9فՁD4p#܏'Bɔ43qŽa} rVAM91PHwjLSE4m._vR&,*;~rc Sڛ@d^v7}gVm[ni`jEs.*5x IZ`,뎞4IR9$am› LV(iا =PV}Vmcbs r. @1'i7g <3i՞^`NfҾF)bh2' E:JA)1Tz`dt om(FbݠgqdhUy|#B)!kFi|B|g8pl_r쇾\Jo7M&S h^uqIqL} ~c`WlSaISL<-vp4SHAξt~mzqx5Q]u&*8gYU$DI@\새|iBE:_#UELKkoG?BZ}M.q^IDaTeCҜBfR{AǧM&Y2 LT'o]] 9Y|N=J Waf'7ӡ<)}}˥*DRiN WDxl %`4yj.w`,=XnJX_Gs' C#P ᥖF8+/NF}UńVC?74./ovdK}a(^j`x=E G`In\+bge&)I҆m83ы7͕զF vˠOԠzQ(Ms浧܂WL \:ܝEC/=)ܕKLKp~/Yt퍉NiRN %{d$W;4ߣFL7nO!d$rE]+l.i_}ϺY_u2R%pܩ9CK3b[܋8Å"0h6\f[}]X`0k7 Ě͞G2NRX)gma[@k4@6vlR&j'0/=;w1LT{\G=ձ93ql2|Xuԇ#1kz4c@>:t]{:ȷo^[rPL u݁[\*/^9ݙpMo- WUц|mt|k@?a,8O>:P=7.ƃ^z"u~n3"lYnWdkϴʄxsB=,za0CXg-=4\|/;{MZqBna$mc P\Z62g9хQܚ.EYL3f!Hĺ$$h@NMągĸBij饅hE)o azO2H$P& dl.F#螵mU*ytZ F-Nf`I}Yœ9=ƽ_NCq}:%Ґ60<-H`fĘt5PӅE:'U<#Ш{?T1e ZbU*XŚ16E3n~]_|jcfw-*u wMxZpKDT567 ӓ}v9N!En f#K!1LE%_B,TC,=c6|+c3J ܟÜys73  KQt)drT 6D D6+p\.av'aӧ/XDtR%)DGwҧ/sǍ>J_Z\hwpvAc¦HՆ7(B"9ɱ+#@(J~] +=UbK8- Gze24U`?W>KB젠5I)@]v]cКoGaw펗RBO=Tq(Zde޿D{]|k[SI %1noׇjfjr0=_cLy+'1FO1Ooߑ z+(t=>XnCtQoZ+Ӻ͢i-d;JI8I*ҶS- Oig+n1Kg$0eܧmP7tCX%+|ާ ¿ c>ZiKD(^0bJVQ5&ƥDCq5, ypdHd2-C}!NoCSnE6+ C.Vm5#Nj;'#Dl/١v:icYٿT&8Q_IqOܳaJñR:`nP'AW&Oaۓ[|S٧B0tU44JMz+i%M)h5Gu_y8ս&sxEPo7nAڵyr+ɬ>cO˶\ĦH1mti&'Y :SUxw``AsĮ# ^h8/S?  mDCq9#Xz$m,GsDzI'9_v D [fs:_' Hy Ir# .ǘ3\FخC%(zODh) gO^eHgxWL~n ]XaO^NMLpnWRm' DbWܤP[#O[Sf̡:I*~$Ƌ-}bJ`U!\-諾VGt yCKlD,B4hԱ]&;T{-s$ȷL!5?<ʽ&$ڝiҶO[Q1/@NZ v0+ TW8? |ꈀ :>/8:TvRrNE_‰:h3}5|~ڵ%Aө*Yް>xpp{Ƈװk2^gލj& qvtza4ϐv$3'j6 Ah!/oTKm2~}UT &NAhɁ(Ғ_*ś5b_8΢_z*&70 NUoӟ[3<)(yb1s_C޿OQ,%?{itˊmnUFn3*ZUDi])(B{@T׀bfM+ U)E‚jZTCnO^ ϳ2vӒ2 E,D#/תQ;j`1ZH+p2KXs·J- C7iYeO~56!CJDH@{3.nBC&75a2`EY,p+!o[:8; 1kteA(o0U(R1ٛx;M5i#=NQ&}q3m(i~dA0kNHW'BVzƌJ}N]* .TtkⲱWgS1E:q Tj pd&n) 'P'`kVb ~ hxs$ o%Tw6WNͨ7rji=Q&aFY;Ӡ|Dk[}כ7oiWMê2pYlC[%6GJIDrA*6`` PĆ"4Fc>}T[dm(O9aFlra:yw7A%%ƓclFvネ5͔t,qOZ!8b8V3 5㷄ɂ`ka1|!2@x# ֹ`FRϬ7\I3_Nrہ(pu˨3hR&$ m <]uSy_ 𵱏׺M6GS$[}qR [nSf!>t,qH0ҏ?\gtvD[ღ&POOu/Js/|uњVaTQFZ}iQ`O-LH+51 Q bv>SteH;H|)61%ݷ<%){vm 9#pW_3~xN;cV]0۳S/#}hK'x'~{dAl$9du2(]CՐqY(j ģ)AI{LțȬ!YUroQ)a .0>|C@CƋȪۓ8ndǭ#ِEݬwXBSpwGny]ҹi0kG=`@~|BlBLÈp)GUetvzo#Y=!&Bq$Zݪ>*G~] bxD+3PЅ{߇-F0j_t/`J` [^AYX yOk/Փ|?۲?/,7gu%=DaeޯUr`hDD=5]Yk:&{0!=Jgr\K#׋:we'`s\s O{؂,K.,ؒ" ̅)bZ.'}}9$䆑䕉%7#f̎`/?L])Y2V':\s%[uRPd[a,Eg6m;Put--#̈51˪L-8> 00ҘKR^&Q^=U1x1B!Ѡp$6Ҫ}d~Y!8f)0zkl#Qk{r^kTc9lF@UNO{&qݵ^:ʿL2zS *,m؉+K\j.BI28C]oBE; zf}D?>9ZBQOsnD/-:T~oZ%$ i;ngk >-#IhB1 &AV0lr.#\.7w{׫;z4-P=ˋ05p+9k"[v&C~]%KW0!w֫_@JT ]d1L\ޙT4e4tL6chgFj xoj,&o0\x-lKwhYd0yM֍WВ2(Y>Kز?CjScuRK?e2_OaKY(4]'So1²7Q#l[:); B>؆u?=!<~mp z-T|` C\WJԒ%Q=)8֡b/ /'}xE4t\. (3R؝ AQBզEA=-ƻd¹5Twp4:FŵfT5u/dEƛ%nOisqT'\2`+n~bl}lwMwQn-]^G R8tA([g4U!KŮ/vӳ+S?idٔz S.zk2Yq̑2 I*@(Z-3_:yV?~5Iě!5 -ÂP R Nk̹N{.)? PܞQ-1Ľ%9o#3A_A^@K Ǯb7WdH'-eq`zWgZ+R&EM/|*")Z@P=S[O 6v8WWb&I_$yNϧ)9 .W\ p@33odVKxUY:mO  a@!}jCW/Jp)A#ƺՈvh䧄wkyLMst g@E e8~5`INY;#pxhcƟUʪn]nYɉl 5Ec-)ww}ǁSk ^l-:*#=3z7n.`@&0 J!aa2ʃ3%bmy@'יV~ ;ƂtL9řI]c|~:9 ؏Eջ%ak 2*oǖ0k2ë:m?KX~aT}۠Ewr]h%-|Gvg)Ĵ^BК..#oO Tn|o0/1CCVPRh 71čޕ$:8ra7H3XbeJ(<¯U@)cq5gJ^Ҝٹc)byU.Xɇ@l1 WP2k|I{gw] 3&UM*|8 с<˞μ+u&1bB%a)8TCu`_܀X%iqa^ hWI"rX,N9kȭl`T8fHyA 'yJPj-S^sXq9rI>l =TGIyf- My\G͜ an0+Q&Kӳ XsZq @uskZB@F=8|*GThYUj~H Ճ@DPfbGGe労r? ']ٌ FZ>K_1"%MOʟMo4Dp6N-ߺ2qVq<,`iH d$`>:Ŷs))>\X(|)\%JMe+`IGڬ.f̑ LOa76L,t<_ĉIК΀UD&26+aU2l e >[ lGQc7_n3Lm$ݛ y j;6}tQ"a֯as)eb)Bٝk~AR zg? 10D[@jz "i$l&ᇬfJmH$rr4QOhyPIG$vߡ`jb@>QqbKjw!ʗ q"J5dC" W)bSAYkmKKhe/C! ?N<5+,$C䟊i,^sFlR>?Igv0?&8DgbAb >)b\|Yfl4)$cn^Sei>B^gQ+AR(~dwQ.J|s@ցM!u]7(Hy ˛y l5㦰\VnɂY;,r̋w yQ^ {^!X{B*N'6()X. p4yoV lLcx({w9[ΟE0}/u;2. I|ƹ-^w}#uuE'iOEs.Nk|paDD.R;"  B1J8ICpaH1E7L'(fo=v`c6X`#UGT[됾t5^^" އ4OiŘ <9,qeNO ɑ޾UhƋRf6X$?7ă'Qh[^y>l㯛6MFT^NPUo+w>ǔ |%|1ɄD.>9݂V{m?9Γ*I}*N5s?'fz$il}6`Jl&1 TOsre+c*xNHdw*έx#s):K@<^GUW*UBۿ]{EBԵ* )c\zbJANdQӮhVP5p'F]?⑂q"%߀*]OXJYY6 yɃ#ϻ?߮Xԇb'.Il4*6LZG tWpz&x^PŴZYcPo(+j+DYc,IsVD~ 4bzvyMqίX2.4$Ic2D[lxL飠7G!b.a7WP;e2j - 343:!B-+|DYOZ+CAn邥EebMjDDdaW(=&!φ6Wƃ/ϸ\+ XRͮKf=ܠ`lDtHiԺö><:'\e[%)"%|cGGי>hE>cw7lPvAoxb'nwHLજC׍ҿ+~ׅv€҈y 59TpnԢ:c1ZCwv,Ru|$lSAD#: ?a=ݎfJ[T5,&lX;3ל5; V17dbd^X&EJ%o5.,̢w8]ZͳF :^Oͼyv6 P.+CjZÞ(1ES5Gr*CSHF)~Oѕ[ ,/q:5kjnu7j֪(24|nMmA;O. ;xTAyMX :4|Isxv jլE@es0Ҧ>>2TFO Z14pNYGJ#)fK~@Oyb}ncߌ=,,5K`4؟V6Fl| L *mlб<T.>Лトl؃IJsdtv81DJ֒e30⮺>|z #!),K.IfXЍ^zvQG*geV?ͮg}POX͐>,EG&=ެ%\?4fhrL4cӬ س[d+(Y%/|D,E=k4!Zm¥1ԁ,cUa(y$(.2/PI?wk*.L8QV#\ǁCNdb!c"wFZŗiM[2鹫!Wh껢OV߱x&BuDzEf4t# CwB=I{hX"5-۰'Ӕw >*"L‰SK=G÷"ӣxPJk8l*NMKe@"u'ouQ FP@OGao?*vjt)%p$&Xn;D(H|cˢ%_l5E#3}?Uj/77+zfޚN2<׉!qR|qj"b⽰e$>ު1-1qjmPnB .GOZȋ&mq=O`?ɖ|HIz"o8 `߸R5$$u< mb 2nU1?Zěqb~Y%8Քn^vXpb1P/wGXI'KT*3{ !c.$ % 9Tf=lH▮ȦU}Ϋn<oyDHRd9Ih.͢AEl.(cJ \GɺIiS=iM#3f}j\tGhye ߟP{ ެAU#"%~`[Iu{<"Nɛg~C=)g~~~[);HB\nh5].X]U0d Q.supǔ|PXῖثf1y-҆j(؂!ywi"].Q t6"D]/$fkοhqYYnx T 7u4Rj_y"8; DW47/k"Д ( Ƅ@뾠UumsϛGh%Im&ZۙwZxr~zs`LOH9< Dqi crȻqHEڨ]fO.liؼCXRQ3qg;TY퓞.bU eu7 Ӡs"S#}.Qǥcw>{-Vb|YnriljC' * wyw.}( UE*'0bnXʶws-KlVkVk)$YKHQ$LDM?İڣxmۧnjj Bq˼]<wܣm:T``( i@:pn ')1K,f9(5ͧݤT0/I Q:Კ󯵡N+>Xn TKi}$w5TwLD^'Џ;\D!R!gJ{t0|Sdj$rd1. wa-WцBxm"C"rMI>Ok1|A5(k^Y:d7eJ+󳇠#}/Y#l[AgҎfEc1%p2y>m &ӹc/}@ĸ~t ?k /^l2wkU.ɔ[%?h.R=o=CWj;BइCӞ^MC|ot&]~9b11,$%7 Q>pRPSSZKUR&.ghC],V@/oE4S]G@ 8+t3#d~]A3pwBˤIJ롿 |[LF HM^#ӳ~cJ/-gR0tmszxQ^]$mY](h}t=_زE;!L7&F3+ME=|dE;?֘9q1̅@˶晈5v,j'J@xm)r OEN 0kbk˸=nxCQ;Hp>8ѝykNhU~RZPFnҖc,UdNkj)ʻb];.7D@~x7O#<դk7vn?Veb丯Yaj)>'É-) [=}|-![:`UsuyOIFob mFxѣ|0-Cer3/৓e σvv(Y۰(KlP-6XN*DM(Fw~񔣒 ~51<ԧ)! k(K=1' j  mOw(7\,?xr=Ufo^FZqL&˛kA+L!+Š$",Uڡ\`2tq c Ri^=8}U \;>#(`W;"HSz\hqj'ǫ-o],!٪ubIH١~Q.Ȳ((nΛ}aR1`W}8'X8z-EBbi`vuo?. v{2b71V`A Ļ M<_4A ' 4@W `0+֕#_T l܌ e\uz.գ]fdiskƠkJR6zTo{~{N]ol"!MDqqF㔰_-={F#X&^6PYw'n6wp\QߟT)D{lpe~[-_ଖQnDZO= X3_NJ2FkF?cV۷-۴pIH/m+|,<:"U8,m+$C_<J}9j۷׍C-^>FfGȩK=|x~U9\~#BMQ ZkL P\^iW\nN}Ă)GHVGVtq;2s!35 hSTGMuٍ0Hfzpzf|8E0ã2UaFeF1'cؽC80vϰ|zޞ]4!Txbꭌn].Bem3(n.ņ|ܥoNH/y h%K*0hpA/\V~%^a*m&mM; =ۦx8~KMBoDOxkLϹ9,勗;:}3gC>&\}@&3BFݝRض\jdYqku0U0t٣jɲ<?>V; |GYc?n7/x8TͫD#QK5;~+~$fi@_`YNz5'܊J%<x֧bV9!9 ezT2"WN"}wQi2J Ekے4HVq{U5O,_r8MI7py]x.p/[o.L%ۻO>-YDU^2 LVՇ(Q*5HeRj=?i4gXn.'zdAC t|DͩMD|YTDuMbAI0r8i[ |&^ MkK|ë"b#AXc޵7dmæx%h9= rګWl)I$ݹLХ/(%<|^ǿց.)wg\ ΗF:t9@zέ8ـy_j\nf^oB8i zc34Lv 0A21p$´>85){CdR#׍cqr&rcJj':5+lx=bO䞿.2ohHn;|St$G/"` m҅Ϫ6i7iW>dӗؖ2UBEF9 Zf2DXeϪ/e W!R/$:xmmPHYj̼/ M*B{jqMd8O"*,c8\%xJ8/Q@[D<z9R=I|^k VSȒ aآ+7Z@rH=ӳG|Od1*rO^dla{Sp~0G {ƧQ'ձ&VA~h_Gfs)|i|9g[FA~?O# .Li鮒$!qƜehzߎg1+x&.x|/ynYe v$r^WB(e] `3 YtB6RXvSS+Na?,@4X#*3 hU{99p9{0! Sm.,-I2EJM.gu?${-ǍT=ÄX%PcE޺UeB%-_[PS;ȂP8GcF58 x$50g:{蛵%g#y\I4z-{p7zKt:(uzʏ&n4dt~5Zrv,^N#g-t-dc_>c,)dQJFw$o%y;EK (@L \;FOѺZ_%d0@+=gsHCiїMT$ma)6=k|IyDLv^|--&K13tT$4b9;t?EȎ̐A4 wu$(' 0֟P.qm,El+pMo t f-5py:97tŠ  ͓sD_w5Zێ|Sbu_)YkE'ײ&qA5)ᒿn|^&gi2;֠g8`\$ҞNn^MٚH 1H(L}Tʪ*E Z@A2`malD,%pss?lQ#ɖe6e]+b^hB}{C=!AA#OvT/!@hs\‘QCl1ʨB|`< r#O:uZLJ H#} u:w6pJ@rҦM<ҩحeFX7ؼѰAXɅj.%~Lp3RIJI%pt85.@ fBNAw@-n;w c$EV$?W-ly쐞$DesYl"4&[7<;}>Vf!H.l ر8I)V\t&8$g,At? #8rug7FEc4xքXpg0#DvRr ^j1s$+'YOX@cj+3vPIQ-AC?@g/[:G]$'xw3K {F֧v3U4 8Gqb;nJs STſN/5Z܆ޕҩ"YҰR}y޼bB*Ɋ1QKhtm}=%.v2Bp !ck%sM^p:'2| fZ(i{;]kHe/r2q@hxjƦ KSu %t/ba2'bl'P8b='G1MJ( ^!֙bZ؂lrD^2: XT#jG6Z OGEU,:Z n2%CK[[3k+ϒdSQ񣩥AoƒOA_в ob hr◯L?ZqR k&eS~"ZMEipѮt˧rf'A?!BAwY-2*nРO؎@&V+)?NuILWJ"e`,n%n$N(H^[9Of7t<] ,m(E/.̘ÀvǤ<#Fj4Ma=wQvċ#лEk޻iEE6pnf 8 F.kOB "T/[i 1ydÀW5pSW#!f9 {fWI*Lh 5䩼uj紓~Jh8-*"ybLZ!G&P)պ_Q,r^iu_#k[pY ˜FĞ( o|<V1 AS<8nC gc? 7/0}GxT]sD=?!{Ebhm^nou81>tonDz'ki7㷕=93vQ8q? t&ѓL izBnNg t]Űu÷M49 t@.LX~{]984"ԣk.}1/ h8%_E&n;+ ^BP"VʙJd4?mQQ4䴾MZIJ,>WJÐOTO:c,ĿQo/ ]N{-nտr<EwQRxmH t0g'HSMA 3r:kVaU59BfR`|,0ͧU&((R||ʟEj6lg+@{7PZ_@IH,eix~,u1 7S'yUJTTR2?mhV' `{w)ޔ`dhӅ#Yxؓ—yσ;~.jfN`cvǨpJݖ&|έ|w4k \zj%CXmΥBeb+^kM>&OۢtyeqN{p=I4O!YðOq'vK.a_g[RxӮ?9{<%f k9@S/=V,H򥛣@Bϰ-άW QOI^w yRd`\¨J\[!#O8ޘodžB0K>Rf[~m}+`+;k˓" I'V:xBt{p06q Y\n%f U-8D<,(;%^ONt}ޏP K*k}3`9[YfNtО#,;-Xn\"D]6!yb4'^ B<4Do ~n)]0:Fu Gp&_՚6LWGE@ CuŨ͙^xd/1/Q-=u lL:i=t4 U&U*a {j">;hTэlvUz3AXC<aNs&!I@Q.Rk{Mq6'B$L$*n,|{=?v2WK'Xf6O^pDc]z,#7& 7>,&׫s ]L*uA=UVFޯ_N\c0'A/]k\e~PA]#%Y˲{3韈p)t]`E|rbpc}c4`8+q:o+Q/~,6;˂MAd R(},O QN槡}@4g MV?kWB箰N$Bv9ګd [Wj>[*t/ʢ m ,`q Jd߹9/ ěd0ufyܿ^ e7 tqC4Iha>J+{%;EH*,]zBuʻp-gaI^-t]xS<+G vNtS|l{xu=D!h9;{K&vIWp Of[05[W,O$E+ 6))9K`'/j(95t]JMzchQ hp㬊R?k"@U .'6 `j;򶃱QYDl¿laYk#Rf_HO:m=7eKGcz\& 9#NH' &)|PiAGK'-ŔCd>VpC@Q=^9 )& J}J-R&+Szǵw5Z`P)JkN05NuO$YHbԀ: ,l.#c|>fW^!d$*yEؙ1n=f['>+yR`.|{r LT)Wpt/j=#D @iE:6)G'~cCE-gY^$RF*|X,2yuy(dcvw0G m=@-x(d/ka&|ҝOu4}D}pXq2yWO 6lA (aPxᏆ!}jhMjʻѡĘ1FUwʒvtgEcD 2Jx]Hgªc0K1N#.&BS.V|)CAv뻎nEAQ33XHrhFw +VtY-䚳"P+o_,gֶe#/WMOCY V`ʵЧ"k` {H[x a"\ Ǿ}Gr,tQ/VEj|zh 6qm.J%G\_%?]p,u3MP[pKil%pzb@U̓8c,oNnP# l/YLb͛'k*%MLLⱥ>5ػ6ԤC}'uPܸ3!݅Yȁ|P誎6`/6x͒m}Uӏ$#^S[R"fi3LPFk^y/!,6,U}CiNrA䳴I׆\.8VG tF^rߩ-_pmUlKaT/,萍*e")u$"鈟~Z|&=:Hlu LhvV WUX-W`#`FJY}/*%"}eyTŜϘ6q t=m]Ǟ6[ >շf`-#gH::XrOO4" [}^9daX .Wf CtȔAt/.Yj EbjUcK F6Cjf L%T bg;C3HՋ'|* XqAfIAۗf-:I"ءp ?x*,z~(Ar0HnjAQqk/ZC_geMGj%C(Ab^I)'i = %ߺ\j*j9"վa-&P:ukԔ쎯۹)#`t+dFὋ^d8Nag{YEf(^̒<vL:<Ir/75kSpheP6O`w=$<”" Ifk1#l'WKWfN\y!cvmq}r;` TLOFE=x#(nZ\dT̜KЇx"}rx jvDO$@}\ԥL}" "jeA &BBIG\!ddT4YhWzSX9{7b>R0]#RvlQ4Z R L3P%cE^W^ٛ&X %U(ޯhΫ/8G +{ la',Zߩ [,5=+_/:,"ƃ6nes5Sj^M(nODY5H) ܊iY@x~AwB.rtpM27},V"7pnTvPYk7lP ?m}b5>awJ%7R7@݌ kU!p4>lhd5?S|ۈ\6ݳTى/?&{b K}*&^ԀOv&k]V0\J%\|:k=e>p⨂Y?y6ZRM_EJ24_x_b^4~LlKt:S4>y[i[%Ss)&{z'l`ʁp{,vOŦm!? ozWEm`ڳq 3p`L+N%̐ #E!-Eu8Hf^u}/ZT]+W>BǮ#YOEO:ۋIz_DQN`wJ&H*u5ooH_@E%g=a c4^tILdID *rD`*Zc_. kwH3>M7&>dW@{n1δ'G"k?/R[0lڕ>V6 E0rm6Ǝ+[^.Ykj`6I&+hDTJG>ھ{ ZqpԂ]x~ z,p\'tj,tZ1W4A^`t>(,dNʽ },gOoJ MZIVr* l}(qdn]qVcIap !ٴz)@jߚ-X?2:/o7{g:513qa2Z`Ц= N([~Lۿ{1|M#rܨDV2Vr:oi i-4C1o&n֩9M qi(6{P␌j!6jH5Dah&άa?B>y8 !>47 y`a8j"T#'_oSQ}i/4?f43n]Ӆ! ãI`Q0הM̈́.g]][2sY7%-Xx^'[Y͎ Z7D&Y[o D,mmDSW\8#c4/siNLC`Zy 0_Q_V -72edl |WĴ^}?˕,o|"?t)fZبgoCV ST%y4Qſ!!Ų#F#3OlewYP[ܚB@7HBQ!b~e+Q.콾CIUܟntK)1=d D Hh5 W"'l=KcjOCBۻm6SI/[{V0 \I%fX\Hn,o,ݵah~KI7E?@فd&k='g)hS^=0Kzy`挞ځa5D*ⲗ/δ,?3"۰Gԑ:ɡɺ)cG>$Q|ʻĆ"rE_F&IS \7hfN%vaCH4zyu9Õ#ȔZ[=k;A8g/-fVlfH5Y_:3cAǼ=?{9ڇ'dS Y;]c0[)#C8* a0]5pS&Wz 7]9̼]fAzߌ`B^ huΊAT%\< K;7}Zé8iͯ.*6q Job9a '6OEڈv9䠺px"KC&Pڤ3l n"f ,3f;r3wTs<+xX|!z⿻%vylUr`RMpNGΦ&E)WJz 7 g!3WZ}Eٯe ǣLS?0b2wj#3Jk RpoiCJA8q)V.tnw2aby? "VeO`/ΰr@Ţ#>_q;jB\Yʆn\l>*9MNiG+>)ǘٿEv97Yhɺ\#K~=z\= _qip]ҳ݉zn{^}>H;Y":&x4m>~fMj/:qb*Ovn69D?dr&%l,y:CoF>S,o_93laaG*A<Jm1`7W00X[$?klzU>y&35Q%*Wy/56%γϭL; +E63kE2P|v5K.MD%Oa]n2NHBo "/)\X]Ɖ!^0^ JgVzzY oJեSkg piV?Zb~Cr~Q i)\D ԏ 9 Ro3071l«Oc4_jJwIYjjc`,햩T_%r~m@' tzA&Y(s,DZ *YoiKPѥPCuiU%a@SXEV}rvi hmX9}Cn@q|Tu:l M;j>΃wʵH[s6k[hAwiB<ҵ!Vy\Jb|w)++$t}aQ10=ocGڋض TLfAX!MFtY_\hkq;+ $s,ִ7k嶭xr1/nRsÿZC=B 霬ͫ9TJEN%InA7. cxq+9 TQE<}UOZ5 &>t?Ɯper;W_>q?3|pEXCӶy丶1m29(Ik_P>^8^Q?lZf/tn#zunt1TiP k^3OEoa# NFG? 5%9DieBª6P> $65k~"PEHoNC9+4mՍz{l emGr0Ǡ.\3X 耟4 IY͔eo֓)/<.oKUϺӋZ"N ;Yk ^lyᖮ* ,`NqQvT〮#R[EB1[bLt:vL0f'Bw l+X ծ9dMT=![:-x? 3g?P|:q;WPǎZOx(1 զ*=` 4lz_s I0!o(]Xd ZYRg"T0|̴"'任 <ҺTw`? LQ܀{*2edS.H} `ڜ9|5hEx֨ItωԔYyڜ ^xF1bڙ}+g86c5 `y l,} qN"dYQ97M@l՛uw6ҫ~yPp;Lr)@kYn*B;I}լ6xJ_+T}\gaeIibQ-q 1۴} (+G,o ԯxzd{ևJsuKv孵e+y(PRǚ}⏎QHko̔E_VIt.*j#zm=up͞#ӆ4JWwkSj u0IN.v?'%; ΗXA7zj#"B0ڏYm&P Ti3y9~ $p*۹~h3oqs*f-io<OT@Y}?EIw] ŭ[Y}UbM[vS5קB 50Z:F/K9tr:"n"7RE͟Mf򅑎F塥lc74J>i5dlUHxy@;X=sMI/t5ғWQnI UÁ{N +X*WA١ n,$JpNӎ^[ `Ik&2jqAYݻ˴$|;$NX-F%+92ENOX~!ȗUdA'hDNt;RuWL>!@Uii䗵ﺵO׬(mteHl;cyGƧse:&I{*KtAy?M6Wœ /5Ng/jj2 78pDE~ڧ=MgGʈsYq~I# ܫ;mkƇl6nJg $I$8 Bxfpd(4?U .OE z崄jIL ]Lys#7jX+C'M Z1I"vNX¹&Jz(vXq{B12.ƍ B[b g/ ^9$sJ}唕^fLe:Lu|D: ,v8%/RXÉg(KF-' P߻>n*˹IW2 (Bۥ$i[tCIɝUJm{x^=J _1}4.;o*d5]cJzz7>;iiu{Y6$6ck@wF&4Tw8`_EQDJ&JnZ|wﹿ_Z #flU$:Co@a)ElC pH{Ɂ14( #\6 )褋m9GWBD- xW # g7'd4z2AUZEr 'ayrJTKS ":3/ pF_|ӈ}7 $ )bFu^-b { }dLWԊ9m<]~@!d<e~6DޟBY1q[[]Pc矂 ̳ibo`:C;ܻq.i 7tJ✅Ք`"P'4#?g\C~PYf5:v,!?~ޕeX(n\k!tBg٥cȍyŴk\ʼnݏ2]oΖPnR9e m1Hȟȓ۫1FfHs8Ow{N5v9vMjGS*bAYBG=ڟ8r=RY2m?aO.ݎN1x^]sLõ +}Q1'd%mh Xqlm OnLd8)! 08";+NFH}(A#-@u=ʠ\AL,=|Ɋǯ fz_B[_QGs(kS [IB["[8Eapԋ=`1g[yh^<z\UtA*5jWoAȶ^Dj;j*AWKfeB|⃴$G D,Q8 WpI2Dz+]NnIrj0ھl< #)MlBd0|n*ˍʜT,)"t1"k/sEb\G5d+ɜSw6L=)Ty^QiC''+n=n;83/ۖɐaP@A09Fѽ.eޔQ.^(VZM<,hXEsz@L3K*Gՠ,׳9'*veVtSbͫe3`N$\ w_,Ģ״}LfPKIn5+MPViA,CІgt0s㩩sS9ڞi^h9 ZesGy}shQ>^tq&fsmB6PLFɿ]' Pb4ؑ|=MGyp7#W /`HKZhVc^T+YpJ\%yU~nÓRNdq{VSSPB٩ܟ[cf "%Do$lA`2}7K'C=iJFVܼm <mUNd]B=Dsbh+>oN|G2|h1;c+9BҖUUs>G:{5tfRiG6ֽ:]OBSyzJyry珫%s,)I$B u'$5wpaA C()aw~9'P$$MQ^/`t'^$uWdV c7{R*LtF*85kl:f ŝT{7:b7'NTyyCsa3ci!r`^'f3ճ?ji_F4W7T.Q4(W!9'AO1M@EШ@t1>t?[~ulI沣vhѯN~<}7w G*ۗHd̴+M$KLvHVF;G )JI__@=Өa} J Ŏq;_X&ή)nBjڹ++tuS·1#sZ'N g]R3[Fd/_$ނ51hl^T( )Z+fhF*I|uDrVzչrAKҠL+U.B,$Ӈ,v!%<)ʌY",:FjmO喇۶Qf$K VJғf'fx)S8[&Ti~˿_색`ṟk9ZIuoj/ži:`? d=X(ۗvo+e9")c(tmA1EŁ=ttpjzeA2rdo? ~>22WeZ%5j0kPF͓e-')Hw{kg?S}>Q\(ESfH!f4a\vľ`fT2qXC햤Ĩ}g ƔGZ*AE)GP2" Okwᇈ- mOON/ Mq@%+hcs&UQ9&E1^2TOɫU?Zycng3ApPzX_hEee.L:eq$.a55B}];l┞UΛ9A%: D"r - g2lg@h*<_ܢ ˈ&RS{-p$I"~ ?ewZb_@.le*#:ѺߝԜ@` X]- 'x; P}cd_Q 6$F_4nQa;IPd9WG ,X^./UJ;vl!Ag,nXz9ZP,0@vz# $DO?#$MLQr"+۵մi n A&1XO`N19)6Bq''& \ [23i|8tv0̊" =*8ǗD$^nbwtHmi%/)>Z_3՗~-.ZJ|z]4' 1`=UڂD tq9ښzSKnn7OZ$oFoc 8:j @ܔڬ|ndv6HXPr])7F́_\ܢ֠DMZ`z^thaѮySJCF_WɲcS Q4(bgןm7|s.}]P `[7,!˯6is #;K#9BS ja]A,nҽ;O~O.r|GbyWڗBX-]h;RHX"[M^s-hU_R,V~]ylC$W\fؗ`y$9 ˰XP˜󼛅?X!Gc3ֲ9޴#0SFmVi{ՃP,5!|HI$|s2%4ėf)s\_g5,c$/QWܫ  y ?8*iВ5]4Uh$?L`,^!%-q JiT)TcNI=},/T*(e5ԯWSzܧǭҹ/O-6ۤXP;ƔV } OVP i>R-.|GqDZpj/0! ڊG$8ۆ?ETP) Ye|vO?N;"5Xvآ ̈́Op"칭 e+mBc>@o(=ŝo+ڶeZ054Srfz-Ld۬du!,;EK{(R3pA+zyw (5UaͭAQߑW%_TEIs&ޯ4BGG\u0] UM]QS\{(oknͰ~;R?O~_fCȭv)4JXp['\]jvsd߹$Zͼ$R Hr#ux $C8yYvg谦!Vգ (rɇB Pw"èxWr;4xq [kpCew.d)~7SY2 zIa'q /C!m|DH},|D]3~AjM)H YB, `0n(Ɇ @B)G-U:coq?+U*58;4syS'ȉܭjMXl\->K\=NwSȌishg=Yryġj"v^[)) |3NæwRūdRՄwzDiE~ygÑU4ˬ[B_# mZqqaba.V$@'ߗM^(#z%,nﳷGlW^;=hWY'51 )˥I[JK&9ǵ5 ǣACB&# s}UFr,/~G}갊 hӱ 5 +o{5᳌LԆ VI6M2B*_@jd( o={3j:bv^=P6r&cFc4ƎyT=**΁G!M?YޱlޙJ9KOn܃w~;CN,1rssT{D4\jk2Z:aa W;Y { SZ\3۸AS3 oI:ϲ"=0 b`BZ=AefO0Q 3$2?Ro(zKsƆz;"4eJm8GaYǘç)1 9)љq! iM ν-F&/`Ge6$_qݯD-nU~y/g Ҿ , T~hhfMAbTwPjpK*}/u)"{":'kS6\B40 .~maeКq\ɝ }[( %"dD4&V4VV4d e3Dx N -m(Pi)+^9 N@Lmkh#[??GbeҚly|ӆ5v]*+15$y5R{S5sd*-37M# [񺁡\Fr;:歡 (A>k>m|E̅}ES5d4|AYvW"gs40Z&nxҰEr~"T6 gN%55Sg~M#H5,Dxi-#66W֝Δ}զ8+5Sm26O})ġeQ{~Ko7ZkpHYM!Ac)`^ Mү,C4Vb2;~+9ᎡBㄧ$,рa5Te :i( r*_ٸWx pѱU):|(8Wy\T-/Wʘ\Qv`51Ewœ+QN4Ж5K χvY 'gJeOB]V5y\/b*+TE-V-Cs7-7)eE'p1@ 1U9ǔ'%ۚJ1=ad2+-}OUg8<w]x)x&Hٞ+!4הoI(7jx#\> P*HpluI_ ֯„~a鐴babL3tv nRߺϕK29W13aq kic٩gwXDyX_F S+m)㛷TvQzIu|~^О̵1maDn:3񘧝%x@J%7hCeTK!Meo ގ8}n ȵ E} -1Ϧ)*"|?H DVF:s12tRcpM#ZjB-گqd:sW"47e! TۓG1D' ț?˝SD_U1tcy4;xAԏ7QJcYEq+wMp/M705РX) H FAwt/8@ ­ݬ//H0nKzyJ; GNO ,m8|m Zu| ۘ4e0$:DCM0 ^ cPNz beRo)L\j@u~*ϘU[ɯfA>O^11G6gН53UVYxѡ֦fpI~S:^.?9u1Pt*(0 ) 3Q/01 \Ɠ'Dȕ̬בa.o4Q8cMH8_ ,qNJ};c5JICJ8?'f~-޻p>UYbU&)EFpQbѵ4ɋF%LO,]RL3[{-AW-Rgv*ŠfxO '\ q1`VU+k%f6fs7tF AW3(MпEZx(ЬȘ^?H&$ ;BY.4L9Ъ;IC77ƪQ3O?I<R O3 `Ae;ɠ25r^%8̻"n]SsҌ!m(E.[q0ဈբuB/ _OPZ*gf=j;Js][g-zm;52Lͯ5<.7eлcZW]]Dzǯ;N"`wbmJT!PV"jn&rlQ|f|Xiaל/vd/o.q}`y'EgRzZ/-+#I. ~U$wk>e{8IE>"[ᒅVf"3zˠ ;^m$m;+=4ѯ 4ҰީGG=74vw~Eν2 3e>p,Πw# [2#9RzIUa O5yWUMvr4E̓/"<ݘ"uMb^b`Ӳ{BZogg,, @wl-wgyLӮ3zkR#Џ*1 UlόΫRo!YME"T1$is@Vuw =09ESA,q tFgJ{J*D5 gtn Tzt4ԩ- 1<1N8p?˨\#HP.åGy'$TtPBօ/YO)]%2gRJgO[=:VNW'(%nV\@`2Ay ]Ts }a*]Y8mN Jv3+ECkT!;}? wzK﬏ hPxK*x+zGN_ӢIK9P26QCd%~s&b,Gь>+YkzP0U>^'[V|@SP}Ӗw;jzE-8t@i d"` ,&ꏯ+ˠ\"w8O5eШSI׳@WXs zh>MO2@UidpW>HWƇTt O<vΨ× տWrǰ0c]UqtƈZԖwFgRsLœ`zJdk!ybo'u'K"DfFΏGYopJ7s&d6'*Dp' %AB ѳ<= -gXxh’m#\QRJkh msp99=jezQx`FgD&t)u|xVz%~?0~fZ+O!޾3@ebŌ8na薝ճLl p{7~Pm!IiYB5ϓ0YC_'^\Jd,1R bBX#7NZ ,<ɝor|i,7obbWcd%ZKCJZǤ8!|yYCUX>m O^1Tz~ke ,1ʎ2>ap^x@9,7kӤ%χ0D`2 ;W46HӋW7fyetţ}]K&SP i~L6` .j&Э606_jS幥lu/q*Z?({wN`$72dl/B`!L(g?1ng. _{f! ЛP.!ކ&a@!P AD >ެϜfj$susf@ a{e V' 9V"n6߶֍ ͠@5o,G6,9Wj4X'v'=YCs%^Gr4cX! y'>>v6sJҵC {i HP`hފ+x7/P^sJ zTo|5j. q$YԌ.g2& _oϢN.[i1f[ϻ麨=x0ب{Ksm6 2)gOrFV+cZ1h>i #"t4E{![7ycʜ+aqw`9۲~ORjun-xv0jq~Q4,ol"׺_:;X3tz@NZ.E>_}s{xQYߦo'DoDٸQOf:!Cg9tM[AÚҫhJ V~ <u3FuAH%_]BZbSK/A5|W+a_\]Ϊu5c+b?IGo5ہu.UȐt۫"+׷MΫҊ}Wz8^CY5YG-CP@ZB'w>^.mdqE1,;I3n!qW;<ᾒpυ]p##ﲘ鞽,Ó`6>=cւġ@G߈*jA: e?z<.44}fJ OR:IQ."'޺W SP,s4@0PzG|Fy*R*^;b57!&)6* _0sNf=ʝ{Om5dO2_H`(Qñu)eag_cMy ZH2W%G..#6p EKM)VSu#eGšD+0siE|T#OSU,^u |ۥH^dUDW1 uO{RL<␷S%s{Y@96vkʇyf{I T#yn跐t9>vVNsz,hàhŞ`6̹,`t{ Fic} aŇB[ &Jd[6{1fev%* JU^ Q8~69)*/Tf7'8q݂f=\_ahFl^|ad_&^^Yk=vEѵMҶlBAi1Uեw!x*ht璻n~fcdZ1'yOlmeX>~"B׶V$ׂϗvt/pKն4lexT@<>ÉjRZ _(),COƯ8D&VZOb;E7].ԲI=hK{*Iz,ߩqLxS+2@9l*{p9ltP^0Y-Cn rH\ Bn*su`%9#g;U*fܩk:GYsS8 Ki^v-PAe e#V5oR6^qA& H}p,@o]9.In׸Y䯅#xO3αL=u[R%&w$牤 AבA/{izbH$Y3'h}fl]2t$bоe~y% _R9}[|7 ݨ`ZQy'_Q."Av&_/_Qp/jBN_#;FJįE'Jes"ce'Ѧ_gj o黍އ |GRD[$%$-*ay sF-n/2%m_*TdcVWP[4 ]Rٕa;Є|gJ:tD¡n::3"ü2j#[$bLLX|UgBeƘ'&y#G({Ug #()iGk;tЖ!y!k&Ru7ʡO<Qz̋g KlP[0 (aU 2 u+jkTX {FT?8bVJoN(ڳ})whry;FL]BWS :ݕM?ˍOuv[ v175?*q;vg3}jmDDݯk 뢳saAoݜ(0&ˍ:pƪ KŀQtwg7,/ !*C E}.jM=wȷNqL 0vB!974H~g[Z-щu+kJNXeW^ظOZZX b"~ܘP{uħ*K}ƆVEW|[W'PzOO/;s+l\6cAz5GK4TEQ'8K8]4ͭW*<+c \QCOKR:zrO{ {aMtqzfknw_Pj>f;a;"P[Qa( yXv8P&(ϑ-`4IR.yQ- :ݟ-aaxvUH-=5T߶JZ5ݠd)yS F\U"߉ !Bl_2}~r2e ɷ0CiQ9, eռ,<`#c˷dvlh(k%.nΣy rK!u%Slcv,!bC}1Y&aE}c3h/Zϳz6o҇A+v­ %aK{ڕUd!ctjWUA_}yº<6fxèA6s*lXv_)%^QxVdܾ 1Xd}AK*f>a2N53ب8?W+x}ƑǏaY~C {9P.kJ .ebaFo?TS=$=)>m*$ELS^>_y خF|5Mj]<qO4P56@<#󧢋&CCMbPu `Q ۺӲ3 2¢g`NF]Ζ˴{[S_4v|Z.6bLtJ{$] =x6:$33gMK0i;,rTR?Ba#'oHOnW]TIg񖡼7zP +/•9[v_6yoX0Ұ}ni6(%6X~2yK}HAa`jvbVr(Lx-]MS [!I)];z aӀ,5P:Z_͏y$}g^_-!~ ȗy2$Jv.hSEZ:gP׮X+$1T"}\ݰ8ʽ/>0)G5Πv.I7~Oq4ofEo ,qU6d=Ovڀnxz  b(U|HXDR6r;-cs鈓 {Q@_ :7y j͙ufC#;jQ|[1&s5 Oy[$^ޜȻMu'JBSrS|;/w8I[w-]6h)񤚗4&<^գ`b(]Ӄ /݃iJͅbIgvg \iMvC֕~/^̫$ZMRe#w/qJw0KP}SQX},[~/5ɧ9HR?d2-r8Y[h0"6d u%M чO*d@s_ԢG'Wd?Re^4 sr@Wefd VnܳeP)wl&A!멼 `uۼQ&j|~VpLiD~!*ZpO^o}`W@1p.nrw8_ڕa  S"ZX/Lc耹Wv0""F,勇I_4<I<~;D'sx~0:۝ZJ\yɈݹRܚ4(ME/(YSS4~9/zЅlӰvD>yWfM5W cK'cJvs c@NP#Sʊ'F8˓ȿ4t$g{)?Hf:VϠAjc{+DlUQƔ8oA"G(xG5QѯVP1} taMKiv,zXM?}̈́pdf]HCG@p'%m(Ȩ/̿6یt$-ob#;|#]<u{& zn$`j'0n&--d'4y!3EpZUFIil~DhqIDcO7> 5 XmV9nQĺ;t|&sˑo{MQZ*0_߶%ݖ31u,짯K^UNƻ"L)%Y!!,'jI~ 5=GHHRYBWt3y>yހOrj}:Q)+4骪CX z\C3*0d1׾~tX2IP~,>3`˃.~u #]R L ?$ TtPjc^7u;~`PI#T5(8M\WXS3&Gb3Ded[rk]N6-!슝c#,b/~mS|q L0'as 4pO4*` @Gw>)x>%4iQ Αk"&? o$_ɯ> /fU3:atU`^<<+'L=ާro!CV^vb81]]$ 2Σ~Rp,.b8T/NNJ rM7v{E "{,Z$J$Ѝlq~m>` yd0*}< VʟLЪ=<x?Y{Kҟ! tYzUPMScAow\-#bd[޽jV5IH~`{<0]%شb -yv j5fNFl#V5>lY[1:fʵ0T2713l+3RHa8jB8WfV>t>%ylbYv%D"Jo@J_`Whv9@[`d҆_-P8_[-2qCjh8ꚳc•[Fn@ogl΃mp`^>UuPg/ q&+qρcL hQ b?}>/(4y t#G=JurI ȼK'?yyG9FQn6'܅ПijL˚b/ZV\+(2EFu2%b.܅BƼ!$ODyzB:GuB>*[I汅%5XF~3h9;ט~`%k뙙'# *{$_9[d0EG8r`10٠I{҈tycN^^y龶Ɓ@E%|гw:\X3Yi7 p3% ;UGUg?Ąl l qN3m-Pz$EzVo6WuMI1߅(} aKgB_H7XhLD;Z~ZAq&ᝦ|Gt_ƈ_V ɹ>d؞A_p|ψrmHil@?U\.I`oY[(_#T%m"emLb;R9ypv@OW ֋-yUݟA-󧊦$);}笽[A0R*dqX~͟ {z S[RS̜ד21EM+]ms]>q+)!s{8P%F4*_qX^\-?̎Khd9P&֐Z F`9;O 5Cr]ډ(p:AkՊ>]H,9b@(pa]WBX0 "_:wcSbcd*4mZk/ʉ^c*(ć>y'Kí;eJv?ǚIf8~EI$2I0RK$mhddTEu!se*2AԐhp(Scf uY:Øsz]zn/1BLØ Yу[dkǒ1N̔_;W /tʍĹrFJ6"h8W/ODȺIOΩv,,zS(1,<\Z]hȎRVW$!zE u",؅? .1%T`%Xla 3I% E9sFem>kQK\c ]ƨJVv3uk@$׼\A #Z I!+Mx?[Y(=TЙ["jo$U |'_86[j0e"[Ջ Ӌ!R֙<]Zn 8!6$F"YMf:k=ҩ!!l6Mrs)6{Ms@.i5(8 vZ{\Kر]!F'ٲPeQq"w=} kտb5I1P#u@}kztG c@qQuRʼ5kq |R8k#f"@W i_LJsw^`j&y)S[tw n-=R^ͮ Vxqa< c͍O}+(89|$oyP7D* =Em|WF)5RJ־rt -"5>Z4N89]ȋWW=~HqN Gop%,((>g6We6mN8caiLY,(e}Z4E"NJĀ̊.Pxq%H*!|^-PR!("$2|E_5//,kZ&<ɔF73?ncqvkܟ.wjޅŶ>>=0Y $/߆g=̓R{.,f욚"X;3 -igxɧ[e-_Bwc[CQWC2X$jk*j^8IA6\Eb/rhuj#+eetl <[rl#Em3{9Adp(e\A~djQ=~h)qWIj[,lVʤ\AkJ!h>e8B~tЬO̴Ι _B>yHF_'7R:D,V,p1lǶc>;,cF3/ R[Fp? JqL s#Lba|#LxMGJj{ͼ1v<@;>x։ĸ p@ګ#r]aOAaގ-F)Ȇ~5X6 ߉*F;V@>hŢ} P܍SKǜЬ<si ۢϜ3BaN&(nn}9^W)!JL:P?, Ʒ|_=s4c.80]7ß[I[K/3MޭC`MOZ:Ϟ޵CM$C}d0DFKݓ6bVWg5rų\XqacsBOd+##l\|/Y$z4ȏ*ت9+`na&|XlCplMޏ{MCfvFHƌIrC( f6^Hmy\W|h{;{M"i)ڗ3V tVL9CI)b Nt0U!gj  jd;`OIa}ҏyDkh}WlW0.hX*kcVCuI˿?Qy|YB\Cvbz^lOLJ -;U"]5nL|qqvK44,E+r Qj29yn0'k:y oxoRvஔZ%} cGzBx"n"(s>Qin-eׅ#%PC Uݝ!㉪8WmSK&$'1gZ],dݲiq2,vm= u.$0o?vi6/h hJA4֯bL7pL{d8/9˞o $3 ax 9R)/8FdX {`4/c? Te0ZE,E` UdDJ* l\9tgB{TeQ0s{4o[YFB"A[KΓ1{nך$zF'tٽ5G!mJlQ*"S7:HI, ?OLUla:Ŷ_٠$h[#d=S#hBsjz!1kv~:4n\4r;=2e+0:#.y8m,Kj\zDMC9h x;:%ɖ!>kvV_[k-A.ʰ) 2Pa4/ B΂E0~e)\$~yt]'.,oY Q}}Zqo>6p~(= R~>C otXҦPP!TaZT`.q?Yal(vA~nܿ]g;X3 eǵʁu5 z޻ڈ>A`7sND@zňvy2(xQ$N eUW.~T5=;{CÓL)gI1(E7寲ii0nx{^ӧ-fE7ɍ7CaS-7(fxg;xo@R}y +&P-wEh{g<:]m\)\ ۣ$ZթdC;vVYpচten4B/vL/W,VJSJv0AZihÂZsԻ=-JR.y2X鲑*ůVa*^>Ь1; CY9Ť:SqI)JI;}* h_is]JMs Dd4JX QLb5lTk6`?ҵr xyE |1DEz^II_q?+4s~% "J|2vwSsw,[!0Gnk<r#EXMh$֧"+ˍyIU'yh %}M\Nm|0⿔Z)YUS]0α@R$L,CA\=-j!™(P H$:қnջKήE sD)x< r4z<:D9 +~bnci&> eD&G{l4nLt,>BAaa>I$`R+!61FcUS@ڽI i :Ri70z>pk te :c`8Oq-W[I 8B"YIƊ(*v **6Nw[g(*(^[7$ͽxp bN]j2eHdu̍xQ֟kރ-c<柂7a:ѯcN: \+xG*:7PbF9mpѯSU֧ >y+h?a@bw6,#H=4[_ɺ@y6,RhI&ثqrIV-.yt (ZLuu f(Kt Щu؁Vf ]ҊJhCQdIr$DR*e`.%HGXwDuc~ ?:Q^ Ԟ?HI`nTEt{JFcFE}Ӫv.gᅳF́iM{v7PW(_G ;T.rSۯ,ZW?qī)UME$:J8T[ h| m}(. ,qo=ǪXh!iXO\TӰc@G !X ިtJÔO+87 egTDERYůQlVP$ Fuia鬃A&U8 )z3TgRo>x -/ ?֤&$-x,dkxdGjB3Zz qJlJk*V~M E]M^E/L"uoEK%˞")G_KBI%ܱw[ Pw‡!VtbsLtp/>13RfܙC{QE,j(ӘRSAy!9: kO E*4h39?2[9ơ (?7=>>':': >*CZ|L`%gTPYɌ ֳ[~y@t_5#µ}QjCzIGS)xwNÃ/~&8'-bDO:MIǹ]&hp>Z0i'oeb]D*ܨ+H4G1~*~KNwfP!Ē(]aA2}ȱHU( 7;Tn@AY]JxbځM"!ɐ= K;YUdע "vB c`[us4薅c?NX:(ن"UZi0tOڠýB2yBZlb9~^48\m@.n~c"Qh1ǡdW˶Om[v )ˌ@)cFZBD+ 6ࣉ#G"盯jNBq˝H,oG4q\% Ov̡33fMvwfLAT w|e%K\ @+RxO^)g-  b)~W0mRcaѩ)^KN&^*g(IzARq]qȋeyυoVs@%K}xfL_82^r:,4kfg7\8 7:7cq03J߿K皌VԹ7 Ȩr.-Jƽ[+IOsL'U>SFJ]xAI/ 0?+s_*=Ⱦ?/uIX#1 'hGޓݭO6>8!Q.;uq0j*eP$.#=~/"ȶb9vM-sDOo ]$dq2)V+@yc#R0}=dC-S'F11":%&\}ILS)̸yMPLU'W~T`e֤:}T"Ф&`H =vzF)%f.2R0sպx/df`CRs' * k+)3,׋{K]i9pޖApuxxZ _`7[k)Nv)J㩃2a+eWge%t[kJHc`τeM2h"v/p *,QԋcӢfo}گq\:o; oL6D)RC*ͤJPMǤ)w`Jvbt[hT/-r w둸O- 뭳FZhU"QvYm1cD?]}}+spz,}&jhȦm_UBa^%00TzV15j> Q6f9}uп?5yi0ُqtG}*ϻ|)QT IXi!.H;Zh0߅ٖ5]L< xah͟RG 3,CP5ثZ\^gOSlaW?r4O@g2G$ab\9J\6}Dog}ee2:$.LB_F@MIs ^+O}9}F|,bnj2fXsN}D[GmSnד[-;19I,1P^\"Cg0ayax^pMJ\1l8 Gf%d=2_0D82"/dI VqFzF Hbz4MWz#l9"d7>")UZ[8&W{ .R1yY%PtR6/\Vnn\LP~2gO]DAq7IOxǽ|Oi S:tdu3i#`E#ٶ⎩jnRPmODރmjg>axG_Yv>޴1'IJU(ohA5M=@i!ϓ6&q ؞zFȏ7X=/j΀>GC23qEޞ,cfvp+v }ÃFsw-l ߒB0YubS6:pTEa*]xBl%~Ąw&*fih6}.?Vh3xU/VO$i'` &FG<>-l9 *rKdאdb6\r̾(baJa>~Vj8{Atn6X:2]moZqyR z/" pi331;2%wûʯfMBC "|`BƳd^ a1V=NNaG#4q &p-L=Ƀ/%&s(bSF 9|5̦wffVi=@(@w2EZ-l=°^~}eGPCWCAfGM`@-! P= Ŷqw%Kj|iSB{.w8@~i ,3* ҟH<9دkQ^mw:6VIP] P3Jw0KVAɥSKkꧏgs-c={i %~y70!M~s˭2J"QLu] 1]GNDst{Y@Fk t'qa6p\SVٟE}@O5Spa22[OK`{2UYmQ&E;v1xK'cud"f>T}⪸{̯zL%J XR7d\Bׇ"ISDMlQ.2ok2/ /Y_T -1!$]sLeA*`'Fh Յr xrp5Qb̌sZ]#Jr6dW )pyM ؜jev+.OZ߫ݪ RNBr]J̓xq;;VM>T~#޷jKխP??k(3(K2 uV(ŚC>uZ""obꑢnBBB`^H9Uh-9l`i0h!agreu!݊t54gEL97 xT=> Vraj(߻ NB:Qxߪ͘˙6Ye Ӿy  $XSdk`݄.mR]dq"2 >t0zW2{[hֵOUÞʞ}]B^_Uf uP~iƷwн HlSL ;EY3Jch#ڄq"\*Du_*Ye>2;%0(cQFюM$^鴄*)j<,шa3e]e9%U!켫Aꝟ k銰kW}U68c0 1씇҈< 2 QRzekbĴ?{*e3!ϋvrwzG6Q]NPo.<%E=b_j, ls^qq7:8?0`>9TO&g#qLY]]gV*S};>h//El|SLП`#1J3ff Y>~-ӑ71W1"'Ef]Κӧ3D[9!.63hHaLrқ>~Z ^p^hIѕ3, YlQHvkiFA*;,گ (T4>@]q\@3P3h>#>e> 0Y*L!T9~\ edKΛ؏I,@i8ڐZ1U!PD0@xVVL ElC0xb/NS&NWp=!^{;# UYS?Ȉ^#Wu ySv[ K#vƻc'? zr쩴:dE/Tꋁj>B BHpxO l;?"9VZo 2").z`xҰuYUf faJ{a"`d>&v]FtFiYáS eXmqdP_ѳ1/4~0Ʉ`pf{? qF'@3Ӻyeǎ#M{)-deg^"uF:]'ghT9-[-ɱ܍\W7L#C%(jf+kHܡ'ZNS ~F   Qi G?eG$|wRADaudN^vꘂd_ O?:asBomС8&:k01ƹ)B rR6pyLRw@m+ ޶!(91x#7u}!ohb7`Ɛŏm5)o\ K| /ktp$\7Иˁ#czIC4u5WXZCQ( |*g!dnW _\HǦ+yWp#U}J?I(OVWұF8Ї 3zWjE՞Edfb1Ll1$Pa|^D/5V-"GE$P\ y(츇Ӑ3]N$+5im?t͍_RK' cWNy˨ŨCDb H{ jEG1 zG'B$~2TՖZߠ0uT\(*x qU CfgEgwI"BP6Wd$/~J4g>&tqa63ܕϭ( ~<Э !xe i 4;{2 v3 !)tMU~3oͼ<arLwL'.T'e"'ח e6\B XX;`q(AyG*Z$Rŗ?Y{:@b)nr3 7cjҐV]@6bz!נA>uI6gLؠ(ȤľZHưMkJNN >CJ&. ?2osInûK^rcx'ϪdםxNNVwma*%KV*GϪudO-FJOed68Fp7ҿᔲd374T݌'B16`A߀J YrxePsթ:Xb/VDιpi'}i*IY# |X2 =eQc;I:Bb"OB & Dҗ:+z(KNC68x%_9Vw3fTkN[7l ,j? G9I۰Bf祡#C9wJfhң) t֙d$% t!Ԛs\=F6(d6֌/֟&/Xn0S!T :5=/KAC̓h@3l 9o(n.T4:%6\P4k<-}YcS-{x`  yd 6 ǝq_#c. ,k*a2L%͘1+@ z zt|z 35yAq@v@? ̩ƏZ@w 0R!i@qawzx"g7j+_ek?ThOdWEῊP=6"%<.y)d Mi t?-m;Pqa( I_Bfy:*B:~ ޑ I9 K]g9G<7dp+{7)dwbUPSjДh||`:<"z$*sķ2 o,)M^@dm&?p_NfRfSy+G+2Fٵ+HgoW%3_{8:vbK`rS9\06X(Qx̆HwfkagVK]^M_ @]J7Aě2HYf&ƤF2N9;I6Xj_5"&/"ıѪ{X2[=j.ģ}So =CJoA/-޹khsi{_X `h<W߷P-?J|%%M`p!DW$:td$d[^݋5gx r;73Wݫὼ~StLva䭐I-(Wõ̠.ZOpakfF\h*uHa,MןupӀ8BC"R)?Ţ+dY#-vmP4kfFQ4BzbŤx;Qy*bc ֲU_S|rN"'k($n4{n2Wƒfx]b Ak T|0/s[:m(\UEWpkȝ7Fpvp^jfjl-:O]I$qp9J4x&nV_⻖^*jrVuCd-\¨=/LbQ :UT/`LI˸ aVᖮkM-H`.Z8X1#>M_N5M..|Iu J41~ңvŘ5u9cJ[}ܗo2ܕ3gj|eV+@|YOf1|4}p:VblPf,jQ hvOD)c0v_*j)̎uuD8~j3ҢRJ=ٷҎMcE<L4ADlҪWʢMik͖)GcE͎.)h?Ze54#X(u.<\6oY#2$ Gࡒ2>tċ,YI11*&z'7d&~Kq+82<&|=}Ε)52k F# ˯(cA~B1~<م6 vrc&xx1Yea8-8An6&y;,UiqvF'|b+ޗTϓArܡ3#[zc&%lEhT*k,%O̾Y++<-?Q|N3YWIRr2嚂o  2wd*t׍D:#$LeVY_#,nw{R* ι>F6Fwj#cS?~74e20L{tITj Cd/0P-LQ>GNW ]ΛI(Kj4ۡ>'pֲ{?l O On^vƲh2oÓUxsh5YlƟ߇Èոp s^3*U\~ osnJFl`;ǧXs( l} DU+r#X3̲8+ NAۄ3yP?zưE# rHÛF½Ru{8.('h+ T$*fuӂCxﺇb]2rq_qrSɵ`lsX9ި2l#Ɏl)&UE^1Le~.XCtUXVgXG(=2- U8~eڶ3m~,ex@Q>W<w_"Ƅkt5 G̋aN\^ NZn8 j>lz;]QI"vWiE+Dx~1lLƈ߫;; C瞣drg/IEizVۙu䮶֎!Q&&| }LF+pmnvA]ds͚֍48Pr7>V'KTs- )CRw{TtL6#=K}9pV;SďTUa<Wm[$4]IPO!__2z7L\)N i ʊP"<,p!`:%}GmPzAiZ_A(/}ZO7 K(YhDݛb߬։IGO}& ,J+_Ux1L"K]h ¡˥c{Nĝf|a`@^yML#V/k+ay3T~B~mK=x771!@AQל(̌j,Ve^TIm<8Fee.Ā(Rd=|MF>S6Ut iM;KEnRE\S,yЀqFSr n|%5|c)V~w#Lb' D&MSXbKDžrg݂[/b N?oܞ ey? bHsr pն\Laې^$Cӽi_d_/1UXjoEi`/D@]++lcðA?P godF,A)Z=BRGA#Bx wx>}(Yg,Q縛\̾ s]xDQS|b9.q!L3nU29ʜHMyQ{_!dt[6lGhD k RDE #IDFk)y >ҀPZTgy[ʇq@fCGuZPPOenk{cg KFG9giEs+uͥjeZMʥb!~-(}WO;_Ζ. |+ߢ%~Ye)7:Uy7zt/?{Uʿ}/o51;c뒃-^z UCDR.{ ߪ4R#p̽HR+H+=[x "/Lr^!sp"n U#A԰Hmo#KLe3}3THkH*f51%ܥ`rr8aviylm6-NAGkE/EU^-WuEuz2BCm<r8 ?fen z0;KknG=>lcߢ<&ߵtWLɴf杴ߙ6P񉸢/Q^{0I+zؼ}n0zh4'<Tȃ[;?e"Q3 $fIWޮ]=ةe@|8f%{F:9>ɱLNxVVgޫGn^Mˬo164 x^ I-r(t?&t0vR+ɸ%Uϴs$@9NW'] +c%,צ@yV=LRRc×nk02K>|xr#Xc`HUS>~+Wn |l$P.{a}1xM/o7o<K]یDϼ#6b؋A^t%uW7'yWzHb`#5IV IqekhXy_6K{vn'ygDi0aЈP(:\/dׅ;ߠo>P #kel)WD{.7 i:Ngx{?&fB2A(h+ԳD4%J%$аʲOiBX7GT\"IDcF@jě8]û!.4@sL|U (mJ}ЈSXzk+\1@A$s~oj.w 6 A皘e͙jVobi}S}cRC;#Gqb|dd)"IAL_[ ▔D69"֫Th4 p rDj/R- oبEjW:ku v&|X -cm~Hτf|5i U'ٔrLr/Cck22 "خrNSX?:|b4ߧtNR\t*gMʡsD$D$|f9n5*Q{۬RDkq6hHumyw%Bd-#޳1;8FgۿA)Fb14ؘ ,d*CaP !o)dּ)Bqdt#@ rLB'8כ΂xN!Jz%|y @JG+}"oQP?q$ambMob.gNދd*7լl׾eeaWJkO#Vrl4po'\ I^@d˯\/ *N*q]Ŵ%rk 9VkspӥS)[Ij~vu o3E)Z,m옣75`}Q%+PH!0w̏m}+{BQСhֱM" +qaa>r8 e@4X81֑1t+Wg`게*^z˼aҐ+0#t12 v=W4r;FS{if&XSU1:mnF,O67vn&!I9]ǑOz,:k:7sf /Mz:NWPi|,~] 0IݵɌv\`y 0[!*>9ZӦ w0nO%C#r{aB!S|TY$S69_ȤKmz3634·4r`5gx9dg>uHcӦ#t0!~m]Ba1$lgxIy|$;| qجLeKO)?F)&,ٲr`d詜VWv9ƒsrT(:00~,%AYX\ 6cO:!=/bD7 <]Ƽ81BVw=lG|I;@\ Oaݤ(StqffO۪`-WZKŖnr]Lmr$RtM 7㯥]d5g,TPza=Kn/ w5.^؏ܣ0\/,`Կ7&9|y2+ v}7.uYtẍΏ3? tä Y1R\BWt@$shTp%7[4h)r iW*"  T) ڢ,{D檥Θe^]y=  &fؖg#E+}ҴmMoYЧoC7K^ #Y,;$pZ|.l=}osʋ#݀Z|0>DJ:SymRSa5`7Q)46h/\\2dwuرiy{0cKPܽr\Sy$ϋW/6 ˀ<8їݡOxBqqal}BITT \x e Йo?Fuf5=qmC=6Vn`C%uSAz`nD7ʹ_bm3} d+/J ͺlYC+3Ik%2墕+uDl_ƬZ@^ 3;1U PbYGH0j+vj/NA5$IWhR4mçtN;o0įIG'rSuJ]uqQY Ǎ12Ũ'$.MA.%[m i26sh'y)̐bO+ڨnoHA|~Rmޥ(,I&>tF<_4NG(ln}_n h>KfhSZe37]A7X1ųXHJaQn 7߆\-V=ڜw8[ev&*SRWQݏ9z8+zyO_Eᦔj%n*FN0ΖMpe0_}ez؜(Ki6ߢd o<Cf7C&lGvM~?Ϋ+\oK ~2$`RFdE^slEM+^O9(z0*l)hկ^XJ/#QϐtDku)rqا2\ڵmW$GDU&XVdM/!qf|yJNhq,o+Bظ;EvAk)ec stzmۡly>!5U^Ĩ H;eri$U\Vĺmfݾd uƒv=+cy/Im KNI(\vwТ,^]d? xD9K/3(9Z-_Wgb3 f}D9j@$xB CTczjŖswt0?A%vu"]ŋb5y&cY^Za3'GlV23ƀdMyL"pn%ɴI* i^@UghMiz)}6tA9u",Vhh\D Sēw&$[Ec[`OKaI F5q}\F K B*UM~ru̫6QC} 5pa&⋵Rnpe O;uկ:m z!}<8[ATO@?#[tJG=ܮŒd$p:1c)Z?ϪwO]YJ-s^S(ə -"zFUջ o+V9ie @-(qQEdu[a|FbB_CκOCAbH ZkUL}#ZG߶9:y x pׁYx'eVS.+=^=J = [W۲hnSZ:pX9:d1n\e"V̊3m Ag&er+y k:38DNH I1CFzZ^?j\$e_2n8O_:{ te׺Oҥ̲5gH T>YS"R7IV}+ir <wkF/ag)W|0u=3P0 Z/*^s3oe@cOƏ^N=t^Ԩh[/8u'C#,UQ?w6 .dV95qF:TɃޢ[`鵑b jQ&|Y@Hlu}CҰw Yxq](;0lAà*Av }zIzKcr ɘ鑛X_qJ@g]}-U&9(N3G"R$0e_%OpݚC(@B\k/wb?cM#YN&(?Ig $P[Դ{ez"һ]oUތ Q,/6L88k%Gխe47.J3l}8IG2_ZlHwU\LU !\;J"Uy BR!D;&{ϟ"|r/}pЂSsߙ;E7;?v'VWq +B2Vn r>-H5&A!S R]%biŚQ ԡ閅Vތ^./EY~YnQw)k`\qem}{|4XIr+" gr* !W%Š<ӎ[2i⿵s>2Q)4Q$MŁB% M>^Z& 9Ÿk652XU)409iYt8txXul[tʼ&o45PtW'uv Y] i $A/M +-EH*ȺOѽf]@{>:So9|&r6)ʒ:FpwUX8 <,q)>6zw~^wl28NKGn%KNs>36&* S`Ӿs㽖)釢R-->)U| |ФD_#Fj:jS(RL5|U,$1̴Q_a3mq i$uXf0edM[*ښQ'u"  S|fdl/n9](1 ̬-W jdN-3ji~PRShOF(tLRgfNEGtwo2p%H`лI"P=RjN%5:2啥8n \yBT /ޟ.Xƪω2 _iۣ\!Ե@sfjp(1;9"Pd+_*/z@!gz#/="̖EJ51O,ch@g-39?nkd΅%!t2O99)K8$jV4 k9!nv֔O8#i6} 3x9u]_Fvtd >tT e>Cz젋 +=ϝj̞k{ oeEa)s}(;0kǺ!ZƝ85Bf[*W Ȝ{ݺTZl,e.%b,b#v|;2sS$&P (;YB#NqITΔUXdf?ڪ5:?`leDn™ߡj[&fuu? UT4A[! /C1wޓ$^ 1 ) #A L' ⢄A(:Jf`Aaq{|vt1$%.@"X{Zh WW j%#+gt<_l7oOx&_[t.υۍKҿGRAxILqR=iTOP6\(vBgn@T9 2{y,GJ#V~œ;XvȦu_{!s'{| ]5ӥvE:~s1 2/+[!3Tgꨐۣ<݆P4}3;t 8SZUy?,%tkLͅeΕ:qqjmL T $A"͍1xT$&7gGl8T)9^UyM}}^u^A:ɓJe{+obYSU~w.Qls(ZzAj%?#p[lsS7Jq2830H LloI%V>^t?1IIJ3&eM=E)vIm+bU5Kb5+0sp(.2^b> @ͧL!%Tqӳ'%RBIɼե>H`UFqkߩvee: @_տnr6zk$%jKS1=r x&'RbA#ԜA\ǵ)6t"[}=^80)t! ȷ|0s{dTj7dcDr(a`)#+gQ>KEЏUQkpn\"q9 -ӿJ,,gTW fޙ$Bo>kę ៥Yv`ѳ+ $RD4h+;iVفvzwZгZ`:;A8<׽x`/;LwTFq%dKZ"O<+^0ݐhl޺EXa :G\{`kR :hۋG5g$J7Ze xuv/ѡU%<Q#9f ȘD2 }D01@k k#ZRK2~ -JC!g<)bT>Tͷzo,W2Y ַD*U7.]lWykJX e4_.O.-togRbKgѡo0Mx?>KT(Bs06㐊@vM< ,Խc~B?\ `kPOcUz+f铯/Y,oOfSl'oUb[xaHs2vKCȸ"#ney*6&8Tiyog; anI}Gg-(& kwXt( 7/JFFGY9NUE)gx;+LpETi١]|DU-g=%hEUA9YF\%C}Ξ7> ,d7| d]4]̸謏*$ݤ{ &'ns@޼030ڛ"G`0d_/;&K#o/HZR7v~5ߌdB\@:3s[*I׻ OA,l쑻_g&n;{@GȶRG<9/F!UV|.B ?SРGc{rF7#09G+>=&p_ Bvc(.*F`y$|l BBiTPewٺ!Q|QGqn)o0:-snpFC^adIXXk(swM; #ܖfxޛ|l!`!v.Zq[ j5*F5(`_DB`|㙭zlsNUD[bN6mO0C;+ 3zyұ8O'7i,U+Fdfrok[1LZ*-uUO:`I̞Ug9[jũ*ӥk| W&IPr T|XE!$|i#D$y)ӷv J́d*w -jt#r8UHC>6H KbQ.wSi]D'ы a 7!ݮw"⺘@XC⌹[hU'C&/k^ *fZd:  Y;߆"B 7*I"CdĢ;03"+gz%((ʏ:e|aXSKlD)"pQ zca"/"J08rNIP=1gTf SDmhLfF tđnH6<\2)5ژ@5ȚcX]}92ꌂU&F/PiꞵsQq2(L1ufDaTm@iAVma:jbg[f|exZƤPlɭcc쭤!1IYe6[WٵL奲wU,x!nSbmaw Þ IVNyGѽ`ͷ!*|ҹ =ț3p;~wiSaƵ8^7É!ҷImD \llIٷ4fyZ}ۻd ݷ(p @r4mKLӓ9#;;qi^utRzSX._P2v֠#H"O/^~4W)iZ\@ x޾e.`(t(^qm5z[`"( `51i_iNîT1*EtT,\sa Br>ՌWyb2R~("& 9]ne^he& THnH)%3mQq.pOH,Krb1Ik!LmXO7/Kf KY (ebTRzE]s4R0y>Tl_f !s;b1TfԙE͙#HeΫU%[/1Nq`j\#$;U<NJ\%u-oLa&pÜu`oYC;VSy+,z0ZOpR xsH3ZQ; 9J:}ln2z9aZX_`}XHWTBaHK Q};HGqc7`DPrdnSO.˱u˂/gw8ɐǘV'EOIpdD_uKGAGFIdϑ6Ar3gr?K1Ew53uٟ5k)T4zcvr+@,VPZ=hWրARCRPNV1ڷ~0ml2R` Oz+?_p[ (BoDK9oezz|U>C2Pϧj >(ƷQ}1ͨDn7XF0hMw"wvBUf?7͒F31Ch9An%4F=T>C3~pb}'}0cߋZvѩki~cvU*G.)8<Y@t#x,gz5f ))@dkSӲ$0=cqq Aˈ?.<g!Vԁn܁ |O ErA/W9jUq)׿b[_8^5@U"#X1sk.qCWBګ|0ىaJ;|˵>*HM49Yɩ>D ٤-dkUTڣWwʥgڦP;Duk[.nt!=oRAhϥ,j6>0Sɭ!7(m_EGB%93ih71P1| xɆFT; M=I|v|u2 h~N+7P@MfrN bV\wXt;,;&T F@umŚژO!+T~lLjWLp [Qu)NZ6TW?w , i'  5ʍO9R{}qA/b[N1#?iBk(2s?k=Fޱ2g# cwx> pk85 WgISN8x֕!m&ߜq\&vͤXsݕW͗1JѨGk4DŽgg>a0nnQdu5D3_xlY^Sfݩ?Tfyc)c._H3k&:8_}*Y:PX2jss2E \{[W]猗{|3W=š8+d3GH s{X!2ҁ^DʉlU>VY-;sd%f)?^5`.4U l峍&q$̂|Ϣh@mzQ3MyןǴU @^<< WҽƤ'Wg݊H}JcK͕eɡ"-m_ wYNBr^TU~ƝP5n0%`g\4R8=v$S 4ͧ9,AlD2CИ2|&| $S}xJ92 g&+5ɡcmҨX} &PIZz~c]qḱ"wV끔nʚ]lo$NPj_o_Ƹzef׈@]_g\wN r%R\eM䍷_Ty_ă\9CV~cX|u;M۵tgd-lZf]u}^SGJ"O?2# KUdr;G[%}fz o(b]ΰ+Np9+h+92՘SV-A\PwjR/ʞ3RD#eG`mu9xiw6tW(e\Bo7mTȈ7tKNhc 0?l{WJ $η$ 6roB∇14t6mʩv8k`l ̴+s{:l<3YR6D|[GE+[7u 6mGFd!(23׫R%|T^4InчOT/YIkvrZeIBܤ(f4e \`l> jPL䱨eR.+d ^ 0H x}] Cfʫr"gv*V,;IK(V VDeE}&<3@騑UtwEJs v58zbJQ41yJ: 둚^X.RHP`1ZײpTMpل ֩Od x{g&M 6{D%Tl#[ 1"7P0i&#YeqĐgJH4s5^0*"%6LBcBhnӡBW2$1nbX [[O({lǎfeS*XUhw`xOН %ǮKgBe՜B.Ч%.P/EnXJzY4//k༳_($CVqdvGLcQ0O%!J0W韬g5#nș VJIuwlkea>IRj cz7ZZޭg-: d3࣡{;Ge_5L)n~w))oQ oHЎY㻛- dV J4 P7} *+|;;̝`k_>sb\ zeVE4 ɡX8lg/:+9Jk݈\-r\WR,ڧH)PFQjP ~W`xR p[~3!id(C2'A 2Lȯ¼0|]o| 'Ϥ,v2NoEhByElar;8 WW_r1 h141-ohsLK;/QnVROG[cccN50;a CtFBܴxcS'È+g12&/8"fվ `u+O6W5g'^a@3|*'څDI>md={v};׀:4{uHn@"[(9~v|=O~|,,&B/c#x;䓺( X崕.R:$Z %FABpLm0c³0̿1mGoB;ߡ@23Cם B6hG\Z"9#PIL_5QrDVѳƣr'Ms, X KK Ztdhڽ{,P#+匚腡W^aWѝ:ePڝPO{:/w:rST *l!eA7k%=65Cvݽ6j) wkB{cT n)LДnru';IBrM(ۨZ?>ThT al'HNUș̘f!-;!(;]]|xAhV;Eeؕrts8x'w eY\A]q^gH`,##HEs^M`wyx a #2_ qCYm ( r+R䦬ȣ:D;:3U}uO۹$JCx{^G12ͼmQdk 3D Ir6#/`0pyWjQX:?m9HTcF-匪t߸ڗnj+?rN<]^cjї .o783KPB.w Hra uVm֨ZڶA_7qiW&7:td3C"8syv_]ϴ>jmޛ#w%LG h:sR;[ٍE!adx~1ov@p>vh[wta4^[k\ ɺ!̻?"=ӓpt:HDK7aܡg6&CV|-eMCnPÃ. 4p*N֣Q`х}w'"LXSWv Hk] /'Ԯ1(4PKX{nM43Au}+%*S>eNJgn \-P ~+vSiզ1F<0a|SӽF֖ZM#ޜw).oX s}ȷ72ReSE-7uB#n;I9!TljLr%%X/]ͪ sM&ǷG S8 Mn/սhmb]_r du뭲\iꋴ[7>~Ms'JD ɱܸW\N+hդNeG:G{,/Ik6]mvcu8S;%+vS@L&rrL,u2.#(ZO7?,[!ֈߏjW?v@WsM"B(F2d]= c,C-to`(@){.O.X )l*rӊ~[^qWꓮg:;9.<=|ՀҸt,4:/&H ۡ$ko#gX^Y),F-~B#syp4bw`*# .f.isyylnIiBц |BB=dh %=ؙ>2RUjF^:0kR"ӵp1깱rV'F<f Cv16$dn`gOX M )bMPMEۖ*ښIn+1*,@o .7%k)ĕe$+9Ahة.x$3>OP]3-!GϦ@.4 |5YG\)t˜;^6~hҰ$b')>R 3  % [vPXx_G+ia~;%PnJs.٠( f\1:R+$*hA$屵*k![3jvrteArƔg7~7V$+ԆyKǯ~|A,FǃBCǯ YInTp5'6jzG@mX!焱YbuԖ7+eX1K]ˁ1r%î .Gɑ*n|Yi=bcj^.'Rkw{ *$#v!P0w|5Y#cƾ{btPIp-UXDQa~5a֌;o,XOKp.5 ?~6AS؊a߁:@3ː!>峏w}Is0kDG|<@P &@r 2_ڏeW-xh_9Avhw~aN` Sd4PKաx*15x0bSAcSO.B\F[c,ƒ 1gVqgpzR&+A%1=4Dv㵺ݮ~4 p쨫Gp?5#݃[{:i>C܅/bC!Xc> #8g 9Mo^~1BCB%,XZv5XavcZNz&:9H-":)o-6oOFcdG/!\|{f!.T}#`^I*X3aϰǟFHRJn˩!dG98Z JY+^~﬇S]<0 ps=(RIc(|(. ?i lI,ZR4 L%HUAq4$x9꠹f֓J/j+`)#?%.y\z]8݌"7U>yZBDZ8!=M@g-t0UwӬqjgBlg< /RN;^u6HCڶSmʚ٣`- =tZbf z LTe| Cx+ɀQx'-.AwL%'.~Ӻy}R 58mZoᠦi0F+AY%J6L3g{uۢ:O R|ؽk_w$58#d!]M-5,\v#īo-yaH ¿Pl'v!+l_D2'wIXLҥn˶Ev 0whmZ|AS1A8:$Elg‘ťC [ y0"8xHb1Tro+?}!#1QNm Ĩg3ߋ!aڣ߁''^3p*E6xB)U6Za1P@kS$68{+ʫݍ+lnvN7,x*!Zxi1N1-[3[>w6U7 Df!4;lvJ@4/ʂ=&)sϽGq&.\YZG/M+Ja)A}M$n:-Q0QH'ZSFW兵VR9PCf쥏p{^ {tp zy%gbVrRƍ+|0X' &U)- ;Yͤc 9GQ#MfR f^~0=ZDϋK$c%!~'O6.\UBF=ݫ!'vov kSha_ P;??sdq_]tHѲs׈-uskG&{1:"P䎫U-_LF\o3W=ENٴ!3oQwGV@o\r>Zj+ߪͤCN"<+Zra=+@G9S='Ǣ콣_Z*lkGNdOy4 m4l6Zr&$. |>H/񢕼,X(06޵.Dp_=R]D+A$5[qXxpMLUlGZîx\}KO- r4IfV(eo !l/^) n^s319*;$Bfp/s r9ߕ( #LfrhEb\FXV7&?X%me;tW 1BMt|Wm2iIzf%h C18KcJ`>@t(SZv44FIM_Wd1Ī,S] B4< .P5ofz:]pu20d !,0NώUu+Cp ZVWD5!`H{y7dv[2Gcy*8{'=Uۍz?B{\Y[)3鉠D`m/\)NUp*2"h|Bn{`Lȑhw@uPV" \{4܆$Hׇm%2jk+*29?\Gpn#sdwaDdh;l8SxdhIҵ `гܟ_1G &aucB#p@TĤkn1ٱs+ɕ~?dCfx#Em=2] Fv ]< GI|AۉJRLT S٪Aͤ4Kbez7Δ ^_lX T!-`uϙ5 n)v<Vd\=A,=Hjg3Āv?y R=eM? niemU4|P~:N0D;hpHxK<ɨ)|N;k񐳢-CPdH )3T{ǚ79..2%nu-d+G-fIqؾp{Qm7݂> 8o/% `}: d"`@epQ1g٠Y-}PԼ7[g Ŭ7r`?lKvI>nCQ#\={!S>FX MPC%=+4m짘%)|7ӹxj3'HL}l,92Uk=\W/rjy95, ^nm 02"#ٲNTU-8ʱ9lE!ux:SI]Zk0ܡRVF$M 7ބ? a@)vIt)d)S^:>Z-/' G⮯cX-; eA\JY7` d˛7D[ݝoTyxY5t&;+v_Lc6U8IP,'Ӏ*WI_p3T#hpܘtt+. [6{݇A5GdA n` }3xeG+E*T 9ĿUTpxP@h؄z%szÐGLR ߝޛ`ۯ r/yjkCl b*t-c<iÚD?.UUdtNv}C6YWTW 8N5Q!3 ֯z$eudq"19w|Ci>)]-a5dr_N$īruS\xJKTg'+k* เ*@ʼ@, OЏ[̱AK'_qW>2gwr?mJ(×s$HWK<1];p0mjp9u&zFj(W r+G^HB@R{fn# *4ȺڔlߠRWxXr#M=(6۵F,w ^VcM/Y80 0'A9:qi%aUN3ޙQZl>k dzLMs gx(37.[0eæ4$PlAqҪC$_ʈz8Xm;短cC=cłB8?ΥҒ2~! hKxPykvmI d0SzYvv5$j9m,2yke/+8y-ܲ[ hARj[4a8 Z,$c(&74%= (oWu*CK/q r]㕅_m :"0yL"!cKhdQN1#X8iN #Zd6cC FnOad훹01,G|dSsRPќ1%NtbٍZwR\ ]Dɱ3!G _c]˃PgA m9CGB.c>ɽdOCeÒt JcXCI4qUDM4Q)% Uhnjq-IEDL>5,7W^s6*cJ(\^wHLƨs: u3TtJ \ā|-4p7zAq6$v2 \ROM# 2? U|n'5ů ҌI/ '0D"Rd&`n㸺SZP\z%`~J͍VG(]TX8U1@x}=wkV{zwy'vC#>\fjP:XߢJY%',&mF;n􇴣ܮ+&PX'&ˣjF(k98ZoT05lJQ>IBq}ؿc^ =7+Iw꽣ۛS,s% 8÷Z-_(<]՘.걭OO (Of$l4ۭ|/і~4an CI -<e|lS$ur7:x:qxe`q9.MISEb0 J|7Xl-ᵵ67ۙ 17[,`\ h@:NH2- ;z_ɮ-DYBng;ϣaMKR XELkcwX)NS<" 5dB]?6oFՔ{Eé) j`M.{Vޚ?"5#+67) KF,|7ւ򔥭$^pHdȮgnEAi,09ԋ F<K?C"u6"`rgbOIe"Ds@R GTKGWg0$x &ϗ.;2 #rAcBdK-4x3߷͏y4ńnu IPKJhZQCl"J6ٸqveύ#@+Ւ]HGi0y9u$ݻ=$@'ZӷdIL\POm C"_`'/@߮ nuf2ЏLֵZ{NǟcqU\ Z *]\l٤J= ]3:5o",}:,P^^'@j#$22 EBԎAt׺:T'9/rȝY-+8Z2@F1|Щ~YƖmGC>MS]8SO喝Y"Gs>J+`kHIQf}.cJכtzcQ0,;NVVB"{IDYN9y+^vE(YyT7AfLxHb#ydtS =%+{p,]8lE;a$]^HxBYB(mG6x(R~q@/%2z'l'pA#ON gYyKhC0ΕY8ґqTPFgj6a7do4iNi+ D.YV:9„hs5Fh2/b+Q* {C/ȃv-(z geK_$~ny씠oM?f:%@|) 4Е~'aV0. u݅J쮋;*: <#H%onCNM'Z&#C$._rfm*W5t9\T?dן{ң뚬 j Q~W|) ߹-jI^Cؚ˛ rJNz9 \O1GJin<w\DFptҠ.㮩٤#Pe$^#'iWm1<͡U}m7}L=_ʌU P](~kh 0`ֱ?-$ -Cޙ48@Rx1HEcNJギ ͖EK -TűlYiR L 0L[k %xX'&?涕a!w=RBFoNҭjUV/n0ʟ1ډsӚ[J0"FXY ])fup׿ʰ2xi7.Y|2q"y!;#X焅OD}9_he.f֙JI^8ExlCL%Ʀ#JdX/Psv2sV`YYb5miՁ;:fhbX >J Tn,̊ xE#Γ5Je]phB;CoSbv_Ϋ ۾ZEU`EOw 8@anqnx@Y}HZ a8;rp19ڰp%+_A*Z"ҁbF!8?:%OsOl%r jy?ݡs: u2OTsRJIK"GJH͚a&|r6*F[] qܺHk0ql&%$A D O| = 1= |+`)#);}}|OHfbd\ě6`*r`V (Җ1_{/}*{OvX (|ffg $xO(~)[ڗ c!h |=E?:^E +6Q(DMI%z-1OW2Wѝ/ڠ]::3r4VjP 2ЦP]$ ~x * BZթpׂѓ`~"-AqHM4e"[oLSt=p2=g9DE#,v_zX5R-A2{V0"iUZj}W4sI =zԴJ .ˎ+U4汪G^H{ZO)ƍ _X= suW} aFYvuo6glI@ tg?=uJf2RlNۦL4,wnB:Po*O#9dԏY%OK={YCvIxܮ1:\Z(` u&@~yUe*Hg, RarEŷlBNXۑ-ַ_l 4oHmyK-]]^$SX1-:q(d04_Ee3/k֟sc$9&.ZRAϿ sр񡭂ǵiOClJ@2*+⮻{tPهO.SIߔ?v Z &+UU lnD+mR\xvi!<5{}hԧo)vWX"k882hL+]~>2tYZ'|jm\nhZ|=cz^9dz,#} AP0}(!$b0N2'0Vy{6.fozPP쌄=g+]/"*qH3]ᾎ|[b6 |MfWV]V*,NyHb&,t4gאέ!s$`k^/}ޒXG=n)!AP 2==N(M(sI{K7W>Ȭ-ZRjH:js\t8D'TɤoՅ숾@a XG2rP@)$P5nS) $"u}k,Cd|snt*@ٳ[7i9dK7S4(i{7$ç$ ./HL{ _%D%gGlrC-HH\ e}JY{GkYn}A;M",}LAhU,)rKxA}z:- HI iɶFG}FH;ۯ um/ >Fje圵R^$0<3q/5GwjyhJtXGh(8_dǯ,_O(}ZJGG%Hۊg͈.yRLj2?.O=ߖvA0XtG-aw`?gq2% B NQ0 Ƕ9c ~7 ꓛ>k|QxJ;c:((Q7zXNT,w_xP fSŖuSJݙ|@`1=cFs.?8p8ruؕA;IjcMB*lKu t]Ѭe5Q"$4(pAɇ$J &O~jTVG yM6\t!l"X?D{|Sdimd]<0jK)'8އR&"+K'~lf{?$7c,㦄V7`8*;'`Hծ?j 1t_4sruRK$ݕb0"n84 @֚(\boy4R0=gq|]b!0+ه'JJMuΩLcNO(Y{i̺CEk5WXQKdӄ뽻2{(}*Vs.Nm .];2xB_U./Kg%^ FC1{z8a) !W:O=ܠfK9,R|8se@ͶgP…DK\d X&o#5.31$}xi9cf/{P8etFϾ=5#$GB9͓"^>>9'b 3PJX~>{SLNɵh_ VHݬw|S\A>bDyˬB0N2zEE69}"vŬ? SeӞG~iD IO RJg?jVC[NR# qCFؒV\O妗iGR縉e.>-[ [R'XL.∽56OTjT.%x~Wd? ԝ(J{7K%+y ;?=pVTbݦ]"i̬ F?UHR<{+pӘKD]^?^a vE`doNeޛǓ{zh\={kb̘ˋk =Yon.0_2i._^G%'kQb۬ FgB]יBo42,45Cē*$~"[ӴPegApʇ%~d&} FHjh^*7]( (JV5,"}A'H 5_ }oπ4)--U9%b*g]ݛoxW͊xGXUN{yCs>u>i@ fGRB"H?AX #&d Ҕrѕz[-MQ}Uo-NEtبmJkcLYQiFM6&u]qZr067L%zv" h*(hNtsc7yB]؈ml]Չ.)P9*k`StBFݴMHT)~R(.AGb/𪦥OfMb]xNVA0D"6 P|-X(=ʝC|U-!u4531b9Y2Eq!ӻy lt5⣔YlĖlC@A6usZM^HyeRXLGZ W, sz ?!>GdhƸs-! ,ٓ&Di+{iRUh4B;u êưv"j"GPw[|V1mB,{ sqOhR|/MgU-5%?"bEuGkW*&lVnd,WLYg4<$uQUfE܅aOٛxvέoc@\:apYOퟫ:Z}fz"52Q-1U0c >K.)]|Ͻ_1~z*9*D+;{|z&t\frs8&8Sb{cƟqDNONRF @ws0ѱt-J,kgeRevqg\gMr v+9PϢ# Ӈhb[e9 /sa-ZIFZ,K|wll4R \.S{7g] 1d4ZXEUso˘kKWm/mBGQ[<ǮpN  žY_m(2lg ] Zp K1BFHWS+Yz>O\ Z^Q%0|7QeenP{O"S&QJ :=IdMc'mL 9St8ac1Y͛p- ;aO̷L\C 7՝ɵV! K&(+\#$hL.T].*P" Ȱ/~tiZ@qat|c<:vxu ~>%9 ՇV6ͥ :ܤ*jn.Fv:XCl&(+1]}b{}uzQhH?1hkti`f6 LAq:L?lT( -;[+N=#n ŊU_Y6фg֫/U17 ⦸~PǬwtWBɉ&3utpr87>̟{O^Q^@z_!*}"dPҁ:OgT6Aj4WD, كqWLzI޵ h5$ZKxokJ̠c8XJd]=~3n4K= Ԇ ;dn@fq%Cyv5@w!_B<hKOSwqN=W{rYX++W|M0Eւʅ<l;}(8FoylA w!%)󎱋.jtyCxvk>S(uERk ݣ!GpEDWciٴ Z ,F-&tQc2!>蟗ˊϚG> w!Tx;RU8: hE"jn UE>溋IjMr [2W{1ȷxsܝЪXN @Q7J_pN<wyjv-UnʁnCE?='> 3(C ds4z!S;Ml2gS$"r*\6v>h&-EK>D>'%IrfKMl" ֒즨+Jj|;9hQٕ; ]6|Xwɍ@jfаg)Ia `D@QB7I?;2=I+‘ =h=W^ջFZ~nLAz+U7ǜ(׹EvXvk>!*x?X۪@]+Ow%d⋷+(0PzrtE!"eQy H5|C,no+j.6Ks)E767N7X}& i1L ƑCA& |$gtXyЧBH.>('Yq)5vIKӋSC*JKhٔJ~U]0BY$u.{QM}"%%f"cnO41]v+qwpwuFGQWojb݈TF,U^JM1 $m0=UZHpoDi) Z{Mߺkd@_LDhZ+H⍛ǎV(0Fk|8r-̈́=*a?ARBaAP&KIgKw( .w-xZʴc–!f\"SjH':-8 R{# ~h[t^A8 Wo>]Wpv%W_T> ?wY蟆wJQݩ]-/=᷻}ݧL׶Kx@b:x4p) &\fR՜`Ao~u <(&q*T4cp_F r`O`[ή+$bD $AUGEAˁd:3ҳ&)ga8]5ݞIնLBrϞ. ;elەc ]`\|X6R-c˚+~6|k!FweڔAecZcz~Q6_QIÿyri z Y.>Ii9ݢ)S%aĻd(Tk,Pjj}b4bۮbզA60#ʤ팚\~38F KCy8N$x.W Mm!L+%I,}C`/L}$*/F%f sVSGQJR䲕[+#"WzrUP )f!^9Fz\bOs8؞U(~NG@by491#擟%ŋ0YX<(/z#/,/cO"RQ9 WG>8KBX~%]l$'kd_MY_!hŠYe0<Qp4D7j݂NCw?#LL:k0=&ɚq(ÆB[̬j]fw\"q$̯9JjMAږ-~%%kuwj:t.Bf`ce>y'd281\Qu_t/E*=z-tM)@sPBJz+`vpwqG+u*n r2)P5=#nNgQ>"BtZarbN06 cTERZݣ)k ʂbG'g4-˃@J{Y5ym C(1[b?&Kj uÉ#-%BNM,! +{6dbϏi< i=mylFxM{&A.GXB-$0?ӿVzF@ljTV"as%V” YD)?0v Cɳ>5*4q(!P1X$3шg[]6&~\Rp{Rd \ u8tEs%\VzM EqIkq` 8zɓj-WS,-=m#8 zSzk!qBj@,m( 㚽742y)\m^?u Ԝ5RsO?QưԳ˳Y+O*UͩmQMo9GcWg\NV\.i||e,_ _!{a1d7'LDB;&>nD=ψ x~ަ]0PL5t$hDg_VMuk4hbbbnm ã9Sa݅=Y!yE+z,jsH A'5:1R!yz 4sxV <޴:T"3DyD]AuW -0rʱ`m*KQNYc$0 ?u Hڎ4M$K2Ǽr컄zP`Dpǀn&  ! 8+D_qw?L ;a]֖Ʉ<Lhc#Cc ;!glRxuPgI !+ w©e G_ V6Qg䨮p ߺߦ0#t鿣$O/)zy {az gX YFv$@M}GѻX.Jk8u>MW1_{@q85849Azd7H'2.^}AmeAKseiiuQ//1`:?/7X!#ᘊH+{6ϗ"'ؼg8S+OƇpgT+ gܼVz)Hh& sQ]pzU%}DIX'B} E+Aܨ@t6U0Z{TFwDi 9XZOf7iyc >aN"RK,#/ cwٯC(8³R wuJ}R?85庻huUa.a?e;-BE^C:؂脰Gδ 6uu v/{ׄFD2Yz" fb@1%0']V¿D x:_4Ԧ^vK.SfC=:i"\oKyJοqkdl <][jAyK/'}}-mԕ1}JAX;H[zm~ajeU4lV>3L,CmPp ML D:+ҏY Cu 'l 9r\2F(ݭ~8r;6"v+?q$)eU-D>r)0u c-FbCZN]- 0 }t_Pp߆i v)?Pi2iJw#?PnuHRKYî8)P I'үESFwE5TD/i*iKF2aE7.Uxr?Pt/eRrj_CI%f͏A 'Vk 4la|de&;IV4)0JF#ҥ2di"]Cia*s"v;NN:@)dݳd#C7}nXTU lTlݼ9Fx,w9B= LR+KAc:V旳*\Mo,`v*JqBuc/%,t^f/&8J` n۽C-Io{~iqG1)p "utJmvzwL vi{ o]-hn.h7Q6] tЖj |tHH]w|Ͳ[nt?tOM.z՗4tۤ@O))2+v=X5WJ>kGlo@[j]%;˵GV*ذcr;5A>΍C z %+d6E~$W ̧z4cjj78z8e~[:7E ߉o~ytθofolHzr"jX,ޱg$g3>HMY{NbV=+[soOdzs7ڂn4&]hIZUS2~.a*VUp>L}k|@rT <O!866ZDkR=Zfm2½h-QғF^Pt!\-3ʦ%- 89Vs=!xQ,J+v뚀̈JdP42'$e-Ii<'ݻX"* 6#;ݑrÊ@6 GyGiįs]5͛y%S}c9kJq~8mEïDipL-L{_C,RT{tԜ싯f>HZ٦"Ac +Y~R7DC@$>J- 3p\gZe5mR%FB,lgL:̰qb3^\ö0FQoȌ^S2d4"CKQ߬*Gdr<j\]?joeSPw%lsOA3-.BѬ۰>Lt3JX|2]GavhlSfVySNa0;!8ܖÇ_$-dJ|c઺M (А3aFKI< Qӿ<ࠔQM \@aO!nR҈9EtO8[K\dHX9.?YEi*<ӂ7 XVAO &D'Fe/-`4s3{@:ϭQ0d&Zh?OejWBh"a4*N^^Z^h}9\o8˨"h4EFȩiY;!2x6G! 3a$S8avqPZ#( H?Sحn{ qUmfW>"x rώ]Om`$s3T7:E"NE*V-{Hf,a>:~.+Q {GGp8 >h(0L2AscaA!S=0MqV†eȯ^"+nl*f:K`nrOO 1}5a)΄s?!٩uJPUkKI;?3XQ0l~2%VE-µ 5oW0*̐r$Ȝ񱗳A%SaR@ ׉~'EUgV. 8D D!EހϖKQGwN+X0Xs\ Z0i)5PZ- i#F rd*AkЮI/x#CQ[F8S5ZW`C Njhj"fr.9cF(x_ᷭLʳywZb-C2wIFLjls0Rؚ5R[ '=66⫑+^ž#VKDf3hXv؍`򬲪5 XV4WRͱ75G/H&eţlQ͔v˽5'bzMBGz}ıDpbi%8b*.m7"|r l@7P?5?Q&Z]HHrݟvIJzu?FA9Oy~оzrbAdJ1#RK~b;790n=֢3:dk-hiGrI[IrL4;% P^\ Zp;SXB*;Vsس, 4șAZorrfm id'[!ZiYtgbNͱY9{H+T\П0ޓ\$ +]P Bkf5Qp $Ŋ@oAtNi2b]n I(c[z&t?[2_+.*t?Ã3 #ݚjE>u1 #lf'5e[h'HZԠمSꋖԮ | ,PiaY5Vbk3=_=m?ҦqLV ŜW*7>(*6%q5;rP 6m]KAIO[4 wqN m$M3JƪxyVa6{3%i%tYܶx(ӻQ"nd~xs{ َu d@'2uL4{qUj8]!"Yai4ه`!/ω<1'=ԣލ .wT% =uT.woAoR;FnZcւb62.yiYt{Q}1HJa)E+-r Ely LFw=Ij2:\uy+' 0(Ϥ,-R Ë0:3I>}1y0E xcΙj ^B@Szc)p, pdBЂT=2M+^0~O#RmWLhqc??&v[x9!vJ7 /SVo6nێsb#–7R& (K*kx`}fJ|W#e8U.pt]c}0K\щrA,t1;\ԗekLQ118*I<vU[]c9R Ajr{hUq\ ؑdp:*iW3$ikN3<~S=J'$Y)~fJs~hh2hT um}ʅif0Kb=@\`ҘC :ɺ10 VP6:#~"ThhfmY߬4iKE'BRqDQ56 꽏-i Qt5TG|@+tY"i9FV.6].`P:9Sɣ=Keq0ܹU$S;Z7Q/4E|ֻ-##ʁg#|ISX }2jjMVEM Įߔp-jH55N 4%"V,5VBP}04OH6Xw \NF:/.`+{Ab f@9atb6@hfӽ 2%^ҝ#ބy4:-4[1 s JKmWw}h Mkq#<,-2#\vÿZWQDD6(}=f&fm. ?4Z,vcnx::f^O\ zrz{}*JBtF69ChlOZ &岰lRL3M2ofibOtqwM^3@`\{݋v֡BKiz>si7^^HQhcmQF0*yZ))xGXZxA?E/d-74BeW t_[vzb7(M>F𯋌iO!󻢑 D7O1"NShSYA8X(eƦzUrwϝYT)5HOJ>ezMtRGt/9 jThfWom9)zw,vza]Й?n>c֚iVx`%Až:Ż$(^*\OC"*^3Q¸ DtPH7s QI[X`K=XI°y#x)8vZ%f:?K^գ|_bI匤5x maLkGu;[Ėq| wL)"@2LZ,CM. Gcʉ\T4;ɻO%.Є|C9PDخҟn/=UDXz},ڈ#53ķ}!>*me*uQ*Yh騃8G GAcEC,m娰 ndɹaqn I 78HpU"J+ YtzΝgy eEJ#"QNIKRoc[uƑta]/yZb{kbKиhuB\ulPhLHJbe_+Px$퐦h< ): Ѽ|f#S/o|gx= *@LJAa փ'7!ۄAwt{Ҟ5Am18bfЎkGkO\*/Vgؔ maKhej}k.o<a3 -{M`5X.ɻ<}*\_  m3!Ɔ?Tmj'g̱|d꾆,Jxߦ|Iݙc)qԠHwrc<<=]NM`Qaγ1:TLzSӅ_ u? m$>=~xt7~~ CѲ9WqK1:scMNZɒ A|=~?BR k<* ]@BJOUciϜm: Οr{Cq7lxvM78xD{.<Ʉ:gb%M{߶us"phofmW-0g9};մze"{`)m]H /ohwhh=mO*jOoM B#dͤbKP̔XmowakڻY=Hs0mSݔ3Z c/HH+$r$Fۂ<)ȿ ,c~w+([V"L[Hcw~Ó0{U$mE#oU[kŔPuQ\x gɮpf/01AiK,t!TY} 카:[&i%&xخt</(.b?W>f\1`adBO?1zk(ey鼏)ώ8v2l_P RHZ~wؓ@]|=-~_2g쌈K4i-ΐFc|`6#cjC߷ehJ3AH&Jh-tȷS.tT!YTQ)h/iT^0NtHj +|& #dg.=%[tؿOVa]p rl$8S|!0_x"fR$R>_.ViI"SBЎxFH|#ӷ s<"_ ILuhս)gRN0 ȓBUKs0iZHpȉk᫜]OoIVgs+HXK~.`=M馅 ͣ/ P+z@ఘDQ 1!֒ "NIJ2euvށ9BBx ? F.cJ uGݟ+&6I1M:/zVQ 0N8"fiG6j6T LOH8 t(#"`؅~ϹKztOpzEM?_GLlfR/ӷh쥅V>[ItE=@~%VF_rPYtf͗fl˰9_t7a0Oc!7NbC ;QqH`8\,X}'2RJy9Օx8˕b}Z2EA wIXe#,[p&HA`oR7Y/tNnH٨a6bDper|DH`ں\Ի}@a2OĆΎ{`WKM2YX {5CeQqqkaYV92zgݩJpOC;D"cl3Sg!zvth9:[3Vy ^quU4rNA.>׳5LAoeK ̆}Ӱp ^B^hI1}i-0`s=pjE)4ŰV]HaM˂*.X~0\J}bO!ͲtePW[@5#0w43gJ`zH[H}?;{i}rΕZ2k_p|ގ!%4*ŗsǶgiUCy&;LDi?@}O !Cd;Re(!k-iTPnwFz+v~ԓ ! %}c ŊtmR9ۚ~9[9 jW*vЛN!3b;VS3h2EuDF:EwuHx_YDB2͈!y` n ?lЕgNp=Ib-sx{*mն}~%1 i [jY8SRdZIab>Nko1w2(=[L@pjAVg?3cd3pwFdG*hX]"^l/;q`sG^7O@ ;^|gi9OKܱjd-.%F+?2 X @/f-cĄA V[(/:UT:|Po^IibV a =&&ߩvXpuOf G/fX,(! Ef{',ߖL;ʗ0N7Y-U?G}IyX\]AzUs?5JFQ'n~a1.gi_lN?NK Mx>U%ٴѵ};Ymko/P=4Cͽ/iԭGp^-:082P{j*{! Sְ p| gsydU9U<>w'rsdyaF9^8|>V3qMmb(/lk:=ꏃ.Rc`B\Ep=gsts):':GnE9Q[Ly5?s\(n;1KA%##Zsor`cŇ:%FN+q ǹGx^zCñ\{`خӎQܨy|qE`rGz-RLoyR_8a<1tO|W{~{/w_z{Ӹi] Cd"S|zv.QsT Jc^cل1kU0 'bykilGis M&> 5w|?"ΝPVZ~ "B2MC&cQSwMM$:N 9!=ձd׵NGHmPCnP1x]<>Nl$ht.ɓ4Zdb2$$ 燄i+l[8B8Ů6dڃ[ ^#1u?#<6_p3 #T{Su%4V)A@oGg{-cA3Xtt;|:k\Xz6~W\xa~zI ZsreX=<}U&t* \>}{'x]fդX{lDv ?g` ME5X`ٯmi/P~O$1o!qC͊׵ }u"^:w`n?*OŏCȯ9Q-eC;oc x)?TYx_)01lP#pJ[c )Lu@rI CJK?;T4}pe^ab QVDƋ $Û_|4g?";{\ W#qʡv7Wx9Tbu3rӆ-Ivn`\ty '&+'K%Xs$p2Xٔdw 2Ev^  L^w$7%[:6MYpuO;Wm_*w!Q22ɛO}RyT{Lc4K8py$(S K $T ,Y_;~<%@1LEWޯ >عW8.x%,D- hENEm grd$ -!էRlKθ٬oy,iS> tS`! БAMnͰk()pTZRQ;]OwշJn4C}zeu/FCtX10K1兩Q$mYV,~yroRZ}QM٬{"-l1dEݺH#f^12 `rS5,`# &J9鹑\|AH@lC#iԁgч0dsбG`#цSuY;69TBȁoak7q J?*xɰRC&LUrLCr bhp@'I^V=z{{3BL*+puHUF1hg }ǘa>oxXSJt_fA4+`z{P:H4#){ Fu:(%m&ѦA`K,c w#vįpm1'L0cY `UIδ{Aor/&:UX@lgpd>V !i˥@Tn=b'Q+`0w-`v 3@g->'yi}7ꬴR#ؒw? DF7H},!Uj,#WAlRf.#?z5L:^\HL]oPhɅɔGc zu4a_E4)h)~zA}&LM,>X4Ka:4-%{<[fUc"+RFk_^%Ŧ~Գ-jqwuwwkC1ȧ8C]UR^x'NT@`8 ^~gEFtݱs-,)}bkN:I+V^hv?MJF@M<jA Xa$g.%}_EHmxYH5[)%V!}vիdI'oYNY31>~i\u%\aB3w"@S%޼S|(Q3H &Xq&#"7Vk6_?Ԩw^ߋ'%5,CVeΔ{&ĥOtP cT ͬxHJ䖭ğ}Y2Vc`gaNL&ƙU'>)ғw\RWgu8g&5s: &ՈE]d,ߝX4ZPc w|wV~#=%T|T %^ K=Bȓzt[h7 55-x6ormhVg>6J.8-KF-g uR_uvOnA~^&3ȧ:Ι!k:Aym=C?A޽ud$}'!*hkOlH`R!53c]dב&;Zԑǝ67:n!w&VXXA5]= ʸ:6P+hc)WQE)sp{7g#*A7JiyNBb慻KT$6U_SQapq`bq\`R細Q Zu-rUadTʹgeCyQ{;4mgl@=ogEo =%MERיTd98% =^jG-mK.6ha~(7^oPno 6g?KF{` ypXR J6t>z Vԗl6eRߐ GOA}p skdk-oXFӜ7Y~ph@V.!XbTLeIcB۟[~)*"e;@U `lAXvcݬ_󽻧L*1%{Zr"[,,E ьN_ Wbއ #*3KU̼}DŽL1)0dnK;]yt!Awx,=9B}D uH1CI5v6Jc Jm+@ 6qLRG grmq;iJnp،^g8+aggIq#PX99HR씿E#uEα@ʶC|v*#%=E^y,9X3 ԉTGB\'FqcGhtm b2)Y #asZ ">܏!8:sXV7׋kxe';~ض¿M؍Jl. y:i&L,TVC8Rv(%7cy~lIå]fO+FB>  8 2ӄB`rcIWfm/KU`@#jl\N*C⾺kp&#U:ZN??]}ԴSքL@ rui,Z[Zӧv({G DgKSPVblHF6r []jc <;sQ7-lht3K8JUɅ!9VͯNIkrHnE  qӀ ^+Q@ K &VNgSQWχ$o31uo xx5pt=qi Q~2Z:jezSSA}]#5awMA8+ΑyFMt3[/ѳkh/1v^E1rs6LlևOO0>^zs_B؟[! NHA=5a:**ntX0` GoXDB&-)XU2x, NX'^Ez+$D*XR G&: |ς;bap]5,|n+d:qvCqT?4MحZ$yh#P0;Bjt(j !@Ab)8*І Gjj- K7aMZPxRRs9R2—YXtD箸w\ʔO7> vJ!w{E^+O.| ^Canm1`>W ܆/X( K~w4~х Z'Nwq %̭-PvTN}ycdM=,鲨אu ZXni򞚗ޟ"D!'"Dg9isRvS{k[Dv>7QEk_R0a6  :l4v$m%Yٮc O<ޅks3>fsO+z> ϕj`pX=$,_E,MjGqOW4/QW,T3؈U| 1Y+HYA \E/v4qTuds:M*yiP3>@l%ZvOGq\nr -,e6zzOnʰ=bTS<,6WSWDSlkc6$dx}A+]qAtI^#u5JTh<F+`#uMꬲaU|f3t'׭Nsb3?rΫ :*.t%L1֗>/OYGUV8(A6jѽ=)[Sj&1#sHa[l1:q{@IZ~rUB() )4P]cO׫Vѕ}KɡR€; gQtbAQ`^2[lj' , hᾌERhϱvvDw}SdAd6]2&(6t_bcUHD = OfUK53l֡$֚ *'bLgs?|2:9~.%tU܄M.ZMcxTLc#$[3)cà^~f49 ! u݄zmsS< |7q@u`2x +Me; .qZ>'sAfM dVHm}{n,b-2YQ$Ii bﴴ @ x^@= RE?(V ssd]d\FRL6aiIןcGZ.81C9kPKF_ !ٚ#e̱ܫuR7“E:`cBj*:|<r|^HB̊{`ѵ]k>|ke)A=fnw"hq5/ہMuq^جɽ#Ap2kGFM\HoR>^8^l2כf~dǠWHՋE9s,02p]>D(DvS[ m=.nԬ> SՌopg&"ibu bo#=+ 6i $_U^lJCoEpAH(e܇D|VV n`z a_G| c͵ݮrݓrY4 ޾,~c*c<\)O :=Ȝ΅ RɪI_}~f Lnad-]Uy8^@:QivKǕ$H A< XHVOC!ʋAi3u 9mPO1-0v,pp;{e#û،20@bbPTLE)N_#8UHN.g]1Y E_$@[ X];1Uy=Rgrdu(1Hӏ-e&כs{u&d?0&'X/%u~JzUaZ4;6Ÿ &+Q[@@ Y03Vi2$aA\RtFv,W;dxl?[\^ @kd<4d$Q" }ꍅm*0Xec]2v J654Uڰ LJ=sozbW 6M,GE >xc.eY)neq}D9ȷ.tW_j<#<'p(HwCt)$ 5USݗT!0(RiejydBN9I| nG6KϻBU GE5\Cn_$Wm^ . MF(|fpOZ!md.LL|*b%ЂW^S#-|`^J.rbKCqњ!*NwM7S^%#%NsUǍ5Qz'rW{Hxqd\~؏0r:ԱLIIf퉍K{Mp`?4JgL⮍5L|hRFhui3/<3qCP~c0wOF#jk *11)tuΕ*Z2DT ˘%NA(я (ڏ=qipJ(+ aq79ACJkWCS䢳go|Ǣ] 7ڎl\kqLʹ4A 9:[\x1o:=/<#kZw?ݽ>3euп^p':mՂ$^cyBLu~?aHZu$ zײ43UVgBEXf) XIQ 'Apҥ D}V…fvǕ;.TMG \V( E׫L2߱?It}z%7F-Bi|NܱZ ]gy/(₧T ."}=h(Ӓb%UJ?O4r/c$1~ΣR8VCVxkM[h<)8ҳסֲe xp0AJ ?lCNGgeh\E dZ9H|\9"]*4+d.#ZlK`NΪ,sثt #npHh?Ku еeTL.+ʖ%<" dS)ݣY/Ntiu.:w|eďZYv2Q.>@vj8=[ca ~d<g,RɦԠ DěhcP 9Vb$R#N m l_4v" n$Ę<_K0v Iy~2k փ)}R4g!q8.ۨޤU/1U_@Q*$VV2&!" _4`ߖ"k2-Ar{"S1cj9&fjB.)euNe#7k=Fv`ܢxwD`4/6akP٠$S@ U[ԮNRa|/nؤ2$:ba. =mE0(QbČE$}@:ӊ,F̛6 @~Ş!t($rClYLe%#:W$J:N}=:& ӶBThЧ`-OUdžȈDȱ%,訲5F]&0YK0#{R9hh ؂豷R, n1yaP1VdY,pQm'0% T!i HuJx_fUoYl9W~fA?yPc+ik [FWÉ=,53"c*7D ?o#alc?+A.ys86MvvW駥PͰ2Ӊ5 ^:Dkc=ׄmHTz4"齂V}o\6hC't"]yҝQWݥ2iaN3жbaZ\KPȡ3Z0)brV#VuECIHcf2&x@z@yiPE8w& 'gg ʮn"i;BߗkGu:SS;ƎpݚHT_ H=42y|7iho!&`8SD(e,%{[ GBGtJB3nʞȏZZ̏KGG?0ϑ@bqyR5RAX *R}V`X  >f3+3WdGW2 مh LNvE4A{·MrS5(3Rj8C)$/vy@P?gIzgqkůqs yF+-q=)ECe/ (Ն|(|jG$ /`C`֞r{~4| *rp>$J^g }ox K$h17bga>+Q^X5}Qc7_\}UIJxfW5bnZy(LEMP-V4 \tIpD<.h+o[dv3-o4/[*,Itbּ$]ޝAj&6TFp{iӥ2G`iBL:?Kyb:^4Yc@S3RM`7\~lsAv]]<PzORR,ޭbk3G !N)B7 #KUnΈ :Bl+NE9HXZ8bpפCHcΜleV`x-AQ^ jTH"HD7Ym߹k|i=řowg):K䘄;qF-xyPO <ʕhغuו+]c#Q{Rꉻ䢛G*\e8(BbK(k[?4 ;X&Hj ;Ѫ` A9NKҭҏ{{¯'|Tt72dߧd 9)B`Wy pqZ.qޯp 0Enz~TzLỳNʫJ\ֲٖVN"~%/UgovR6H4ټG糅'Ш72,Y^Bɱ]O nZHY%qa7M9c>0?3tx^X8#o^;$d1#48GNf*8Bj2bT]]EMamPRI~ծS::WǟnuY_76u{*$&DgORޖ!?j5V/KLb!𱈄/qRf+5FIn j#v[PV`h;2|~;UYx¿֠SMlިX[}AˌMɯ'e"WkM8 Vzi2^^@5zVX&hbg:E\醎{)N@I3+bodd u]lBRg%/EZ#S F'@tPǿ@&e'< Y4?"Q {P%|~6T1, RN/&uTf sW6Yy4q٬!~E=8~\hp#NiB~l X&ѥq4>Jؕ&| rl"BoT{F^ `i3[xybBU!VޘYźv{vؾ,X<< 7Vw<]:WW7EU&*RdENG* 2˟P(S75"%Ѝ >:yj@|.tf@fY<ߏP> -:2ϖ$q=i!/$a+9g79˟x<]FRV/84fZ$P>7htU{(!kPds$e s3sHx^wOScP =gX#ƿȘ雳jܻ: IGE uմjw2g̗sq?'ČH >Fb|~L, 䃏ub{-2/ǺWU !Gڃ;4/b juD @̅ W\-g|"{8a ƙ 6T">d_wY,2:P1u Ld D[T/L(kamIN2g%m6cb.qr4tIzb);KjǬ^;-Pp5,i'ڡS/ JI8Jsav%uA%[9N1O2{ĵR!ȷA~ Mf yk~>^+(U29У )KS+.KqgTW}! F&",؆ ϵVK1ZuQ~U)Z$w2s4LBnqN%Wnn $eVM}SuLA&Wާd~k4eO l ͺr"M$ot a @eDTR[? 1 展 9ڸ2-Y_ahI138Q= S%j+a{a>g|,B&b8\^%Cbl[~hѪ/i\c5g…Zp6:emMMYd@x/5 !Ԗ@۸@k:[K 4bع5M!&t-lLգo_NQ*tZR7(B"p E܀4O7А;H*Yفk9+G7FR@XhReŕH\M{5 doC Q@F%v@us[?r1 Ӗ$RkWo'0Yr5lWuC_085dbbwTv107F4"3>jwCQdwǨ! ϡ"dI@8X~Y,aE9*UᲪ7lBtpAs#e%Vo_^.Alw;MyܜHGjCڽ8j߾I!W8߮Sîm_7DcFP|>Jd6%Zm"H)(c9__\tMQ\ ض0*06',{Q@7)v(]!7),G4%`m'qmҳk7"_)΁Nͧ-nyՄPΝuTd5mk%/E1 DcJÚr 3V :YϹ~ MX:4_ l"'dHm$֒Kq)kԔg3e$LVk+OI~P xĜe7E&Y5bѽ%43, gK~06Q2B=Vy4~8uxc̈́w }__íx$;#\2N@mMn)B8:O2ѩ'Bxi{khyݦ3Ȓ!FvLkumb! Z+qы/Ml*)VPCC85NHr :Ngg\EIͤƈ,ˌ _n&yS a~%bxWjl1 Xy;e;>PWlC?ͯJ Bmlz}sˇLsd i[Fh*xq&,q+NSS 6^ k/1:}#}bĥM>Qf߄/p%n,3KK4jۿ넖 [} +E٠UU~)EфT&LN uEx=9BK}NCםZ=0ƒ/ApiPB ̇p^ʠiaMm\ K#_ Vߤ8L1i(k걁ݼm+-p$f񈺐]0z\LYuPn7Jb3] Ƃg tb(xU YL%8M{?;4 >HFHȖʎI/ZڤQ:4k8 EզN.]8ѻgFx?埘Z3 Rѭ>kWJyQC+ze/g>P2 M{_òmIU}75`,_g8c=TtL P4$߻MC:>Wwg"ǐpׁ~lIAȜ܆jS!H) D«O2Wi٘X bpb ]79]jѳwX癣Vgh|5H`W~WԐgf U)?5H)桥ʭo͌e^Nlr4ϤӦ ODf!o,Q0I"oP?Sb0/"MY >A|k}mc, TJ 6Y(.9{@Q UFpLf*r'SHVHF>ڎeBңR_օC2Mv0=هmlH% Za7w[?Ϊ^%JHTd>EPkve?0%)`+CKpɨEBqS,8X <[4R::Au*wRV@Pr@`? RŁ  O`nTڣYVRUu-("N~GEn]dž +⟜IҦag&_glZBos{ }y/ 31.=VCNB',nTXWb3Nvk뤹 Wx _,0G5lfZai\c_\;=F'#^oFbTMm }? .P+zl3ʳ,h)̨XӜP50x~9lqfn5l+^.+EbxVb/!;loxDj ۯ ԅXdTخyw*_u/+:s *սNaa#78QE/ 5_CܠqB^ W!`+DP ǰR z*'õ֦'LcZMϘIگIW:b3چ$6,bͣquڿ(.niB 7HhY(v6(lD|T }B?(fv.'a<4ĆH$h Q|pxdjI)˰q-:? >m1\2ogӀBS tQZH}B QC4JpCp~,m@·W*_N㰲yL gKڲ]*C$x^P0b8T'6E;c_Ɔn<'GoC,qŕp)Zz2*;/y[-ϓe*RB$6 _)N.\QOJ$5lvgxLzf+BDܔδfFوss~"˩uc ܝX{D0$P:ߝͿFxD&N8 (&;`Ḡ{շ${~ Bc˻*tXE@\yo~u %+CaSRSC~ڱ{K@fGxw#f>p×'[7q.aed+_Ƣ3SE3ϻ4 .Ei\vΰ!`a#k1m!t=v0Nt}dS9-Ӭ/+b+OѩWAH̻k0?1˱EBwʨ);{.}Z iGj5f(h*#"-( B0ڼԖd-ٙX}@>@=bQiV)"$es G̅L?hjA)jQh)3d4N-yql3v{!k+IkDBI${r'3J[Xta3Uo-")x^J9=rҸ. t2t.4 ܈f&TBM2Oh 2I!^j Wr.ܽP%igdWrPF]iYz 6䀹|gpL. VYE p;U=ni{. h+ 5|`=Nq8U ,e"^u<-r{FJ~="kW_Ћ @اTIZh#4`^#%HKֈ a+ 5ܕ~B[Ťq+Ky@B=8ZBZd~xRJd&S'F wG&DSTdk=5|W/t*(ĭaw"Y_kwU87;\I>P΃\=>&SCsIGLp`o蘟Z.-$WZ@  TN4 _VsÌZ\(MTM^ dDMfub|5d'zKF& ]H] F|ߣ}m|H:;`KQ?Ft&Xȅnd nLVVjir[Nsqyu,yF,o,`Y]fOj;\\~?9BLiOѕ-IfXDzq'K"mi*3Ճ<ʣ sHziW޲|*(4/<&r z#aXR)V-m xgqċ. ɇJoލ$t9;?g sjͿߕm S'Bj׭"ouUxPYPIvSFB ^EƐ8(lP'g> Vh }| 臀NLo$DXK9-"2T0r n}|v85 r;Jhe ,cT50ƔFgrGMFgUqZ.-Gc)CbAQy4;T9^R'C%{.e8/M4> qEsU{Q)bIƶN:u D CP֯G>GGK=u%ôZPfW /na y^myӭ˿Y [Ool@|U O{L#f{{Z%5j |왆I'a-IkCQ 9#˛G@ 0rNidmh_3pG\@++ɲ#{Wؚ󽺄MB H|vp/v@AҠuaPsK؞7RE nݗD}{Y)@[IW .4_z͠*~MR4J)̷nNj^h^ytkr9!B%/g2R[kYB/oaQކW7EpO;l+| PޕD#51(T`i¾/v6R^ uձM^cpQ00^Gq.QU?E;6ƣ>2Ix{#C`qOrWFtSd 50.I|yo~(7/j+=w [b^eFAj_,^c|@fNEuBm`OZ/a,n5G]I} 9Tfi: w--"׮XisNHyy`-z%/)9bbȁ*F7Ȉ*b*}WU5F T5FcH$K`\6ٔcpAq69lkBVO#meS?அ` mֽW$t,$[{2pb,^↧^QpJ,?A]_0j%8Z~# e15`ƊVRB{E=Ni{ ïD(l1^^?Pܦ%uO'vxV=~aX}ueNqww/ ӨUƝc*8l>wpBU_G9DXCffV6+*+A ̑)kl2_.']b45̯%9eb<Ф>B|&|6Vٚ/lh7n?jpbx_#:cR\V\g=#tlF0[ BCqj1!bey^k{UxvS'UPMf K 2Z?xЅ&mP%9eF^y["ԍAxͤ3_XR.(IfYF-I bݽt+z 8RAb2R~aܳydD(qXU@yϿ~ɾPՍUk]^ET!:|CM'RYtP??!+{Ψ j^FM1sa#V$1@+֎{?[r }$1}쯏Ҋ^OY!ɨ-a-*jKن>?ܦ'^`_̅;Xìd/KVv& 8{Fi W?BQ AYMOOv;o,? >1GX7P]hg;Lߍm!I t쌘ZN) Lvw <i"MVG[h |UO𧩼[]h̾o$h/y;؆} /f#)m9+푓#Nu"C!y%D ѧcb=XtQ .f6Yx`SSʊ؃u>_H@qıAp! ګ׼ڕP6/N+4zR5zQ/ȗg%J0T?7[P-!mXV2􆾙_Wڒ:@g?Ax(%*72!<&K+ӸUg,LPFkW'-[V!/://-5|ͱ:wY~QZIv~FtnyoGƮwiB;&iG۳rh8FcR>du߻0$¢ej&HI0I ƣsOK*- O*9sK :*3]qvR3)f|ӕY+i8>aGF\i Zo6BB-?r^@XE1(cu]wfb &&cLP[J*HbUƁ MˠGK33q977i>T v}P'6+/T!< Ar%k(+vho]̍ ϰ'ƐH8} LnuJ}/8e|m)r/ܸO.$#NאW^ ԧuF@qG5a!>7)Ŋ>U@C^#b?; a<yԫ<<D#:UͼLU$bbMm.>9N;O"ny؂l4bW8'u>\` pĞBd*Sp{sK؋N $0g4 2儼;FCLP*4j`X&Dg7( `{DJG^-bHJAY`\t#[G 5q^6^^AZ*ŹJZT$ GN);JB8%B1>Ttè1W_ؚeP9DaY>+o@N' {T1.r2BFݯ6-aiI:L1 gdL;"HmBԙmW^&K:E <.n9ؐǖI"z9b y46iwo֐pe۸|6CMآ )X؊ I KE''NTAйFL6ze :ab)U:0~ߴ|&5@O|o4˗!rB<]uCUˎ)>T(4`o)Ny9GQO):׎ZNoo4IK=N$0 f|\.5$<~9H\P(qu3+(Շ(?R]j@Q( oY_h)#Li.PDusuG;,Fכ\yp-PW/w)+o(Ô#UǏ:j1s~ Fcˡq`%3J jGg%ZEh7{dڕл޳8ʙk !Qγ,Dx-wꔒvu`0?69 O,KuN]tn*<0썲GC[,ih \$8)?Rxc53J:vR^ ϊCvq\ӆC kXk?@7`FH㼲wRk˘t(~+E+ -ɠDFLf&Xd (7Qͨq*/g5OHz**̂Zg@~g:+C +^mB7t(?3hkspkҖn'rPG]7޼z-I4K[+>gŒWmVnurTSX̗wmx8y1@WiH>@%VQ1qVTl ( |D>Bp#ޤWȑhАƕ|i֪#ks(嘿;+&z9~%7CL3C渮ezh7 ]9>r4%Yt'=1zBmB) TJ# 7E:,poS@2_q~S 5}{我]z ﮲FTz^3Oi]|܉oj?,#/~6>,(!w= aٚwؙ2yy}~Mz۲h&,XXj. oՀ[}˳bcΥb{ hF ӆѿX[UDp?2푛V<({꩏_4VfN}BӉ5oxp]VtQkq5UY-uX1EX~Om $dQ2Qw[[*AsKR 0r)]4m z-ۜ4_k Kq*e}riTm 5i-b^Zs-%E\ heo9[OkeҚ&*QFni_XjHBy.d`r#W˛)6'{M&fFhu+U&A UH;{JTIrAݮS\LGXPBUp9`Dd jX~I֋APX Ejlj*I Q86J.(tk*1q\ J+N~y =pG,O M{ HѢ&u,ΉI[.]X:BdJ\ضH;E%[ٝa,Xَ]*0![ҫJI- lE;ٮF+ }܈jO/qA0iݛ.$WMI ,mޖݱw= o3 +JH"> ҝfp\Z.nBTXT܈?, ˧> vJ+pqI5W{GR+\.N,ݗ(/}K#Nz>N?›A]CO-ُСjA' U#95f \6su (}\,s(HЏD}T+>UF z\ \N1Ny1r.Q{Iz8]ej-y|嶦U +dر[/2"`~Wvu*tP;j,w:cbu*u.Nx7Ee-HܣcmoϰQ$uĒr~V+4KJ` Д{{YH6ƀ-f0mN[)Dz\--u|ǾO M=yxY ׬!w䮚Wœ ,Fm -A{?Awb871ps{Dռ݄-y+oF I GcbhyJ4%<!*ӃxTl"cnXSk ΤK/ "LP,hL<6lon} ȏ2> ̺4 fGAbHaI, @j@-;s⶜٣VhzB;'boFfJjhwVlĦb0R}" {JsFs*jVLC7@L˲? $~;E+QC6Tۗo/Í)TTz֢ 8:`ug0Mbfhh {+ M 8Ƹ]sT@TU,IAxaSTsW:57Y~+ QlQ4^;1Ca=:͕0̭kK@An̄'J/x m%=Ka?@ehxYH&A^>@xVRWzg)}f/EZ*oPJ-97f 5=(o0Q;WҴ`H+f5<)rb2;&FzTK=}1@xhygZ Z>\6=n~К+c??AiQZsU5x.ٶN+.}y˔ϜY7gLNVbtp,!B'vwqnaw4@#6,_/0V=AʊSF:91f|Q]~yжjyh=f%hgy约1msx6N߮Et:z$%6ne. u4r"&OΰgؘH WG߉Oqǯ>5 v(`}R"9pל{A4]Afr9]#Hݪ(RrU/ineew /Eo(Vݸ-Q.-ɛ!cD%D|٣9 nuy4Jv}\u.DhNj_n|-6e W'u\b{jSV׎!3 IEzڋ79[S3H}SWMd, JZÍSh/O I4Z'asu3 b~Aܰ⇙so b^-Z)m>Da\6W2[]FT z݄A 8zNU2b\Q/%.S|+9nko%ǎ ?7JQ^*HwX nL9n (ɂWY^<SDZbDgDl:Ve[wSZkU HtA%`!+ۮ؁ү~du#[6'RNp;36c? 9{um8a]+{VJ5FϯMmbU1 r"]HOI"AXg|5^S;X pO/|Rq!;okc{W4Fھ҂-F_lӈoϾ_q/pO8NA`$3nۅ(Q8.]%'&r5D7U,tѯ?%'U$ji]:'% 2C1g^N@N7[a5D-[F ou(9Фe }<9R:cv{x>Hz3q.J0w%}i~m0a'#6'C =@3xb̋5 3 0e9Rxf[G;'zm0gGwf]?Qc=Axg2JyQCgljR)칞$1eƼFge*L/IFlr!KKƟvarW)b-ҏL}JޖGt蒂|wi{`[N<~L@-TѠiFxB&^+;G Kr;ٞ(s LkwPaHkU/JoXGB®sji%(eK碣Kմ-!3 NiQRJbaæDNH09\>S3;jbp?]ʭҸԙ.z43=Iμ: ۭe` (ImLt ,|icg ^Y1صaPu+(~=?_Erg_FL5umT,%H:GDcB.) 6dIX{왳֡nM.'H;h_4Kp!8T%7`Ba7","@TxN#*5YGMF)&_^`͕+]XS 0hXD֎恆;71 s,R}~F k-SKns%(T-I(lE$wQkcYG $(k<[U1< ?D_B[⸥FXg (hOslQ'#OċKa@?;q{XgOF]f9dbmڦ"^N '71(ZڽU^FS^k/x9A)h/ |z)}g}^1;is 3GS$;T8WJ_`Ӕ*dJ Q9vFZhefުG> fANA㚲]A$ c]M8O˵o+.l!6Ūr>ŽUKyKޮDk@.DlyQ0:2 kCS&9 5/qsya:׊o U8: oPi"meȣtهVqɭ)4X}h><7g0&yq#'TaHn'~mjMwN4#5;0U,2xA{<.?pȇ6&CCRDENrt($X6SnKV\6W[ Axx/eFq|~'GTNJ Pߦe Zg.kjNK]s;"-d/Q)Jq'{kCDY愳2}0q˭Rc3Bf#Zgo,OQo'6/΄tՙMX$9HI4zLE Ib^Dm5%d=/LHccBBd9Z}1fڡ& o ^O0b|IhdžQՈ)M#^I/cV|dUρh ;_Wd={:*)s۴=-0{AqOK a@kAӾ>,=|bzBi&B>4aybө67ZpPL̡Vw4ʵGSB`9J@G4o6yő]pH'cqD#-}-LBuW .9\!TP0C(a]8mܗ6VLp»!U .fzJr/~&uҡkj #(J~9uUYzj`ɑ O2ʾTO6AIaR>q(I{ج.!rBatIS(JI u/>>cm0)޴}&2 G9PC1>HxވS©n.8^dvW/ց҂癢7A5˓SY:f ].)m2LR8דj ,؟|pOmRaeI :B3 :RYBj]@$Mλ%:vXm/Vr "K-L<ݹ.9 h=Z*A6y/pTFS+9)!BLMs77/%#Ѳtcx|}qz;:hRO 61 ‹dv\|OnւNL%<+/nG [RS ,pwwR@ yӑ@; uv̇~n$@}(zҀso=; =-] 9"x Wˍ8V8s\o~%|uEde.($!uo4!!C#˪Լ=۹iZXia۬J6qȖh*$nÄ-{B+d5ob3ƘE,6jQfHUHGLv.@/#><NyW=+TXg؀i7[Bٜ0[b5섅@2;ׇuK_Rgb%w1&ظKϲ: ҠLrQ_ &S1V]_z3s8!i!- VX~BmH;"KO^=nb]Z  scr7#q-; MuNHL;*C6[F'03|Rz#2_AYZt|Fe:Nz#6<oqʠԺPm{/: |&>`ÐRkhu0,f]̳4"L=+FR}gsBJ"ϦEɼYm<[v-N+g;HE; EQ+mf>M5-Z.H'1 B ^h^Mm5o7]N,rHR"8iGε?cH ciM޶L*yߗZJ`r4u=/Rt ٲH n _ ƻ7&>E)0u,k̿,--l{JN<玩MX#!m.^IX2;ozWrW,9$f BǴ|| n Ch'߾:% -'RkaskW{hyî -UODm𾩋D `AoHcE!x ⟬y\JYs`h;}YC9GJL\TthuKLm>GNΈEDU FLp, $=`L=DXȴNaEݾ!2YsopOOiDjʉJvU Hsr=^#0>k,;/%Ґ$%Hb),wG=jnK0*zC_-+ $DՓMwBS&]]#'*zNj^ID`F0H'0y.B;ߦ@L=cE, ]|~w -EuQǯ_-NT C#%'3v?쀠UΊDbt<yO7:ӬޣLoi>E5 f:2nskJ]rTU/#M|"BtM2q_Z2٠[ JTSg=aj6jGr EՌ `7#cg<4)2S4 YeI*o'~ئhM]nŰ51+~22zܜ.;iI'T=k?b5Reռiyt!r H.0_@?G ̦ z;ngΠqV%khEa*&Ôaq/5:Hd~F:c  Kޥ6;fJ{6 Y@bIXi"OmaKZmݯ5ۋH#Či̙J6%l\x(Ae~|oZi¿m0% MR-.nn) G<~?fّ!7,xP?_x 2Au`ӴЊveHwlo"ouv94N? 4qMmgZ*sfLjkJj l&%n ͵szT:,Ėoj, A}9fe'y^Ʌ^{hްd5w 2ryG{=iM'zS1*_\xe1M0BRr9(plAM6T{V3}.7T8|/CC0!YG(.3 nA"zRؘ?E0? eq.Ɯ<q(ᵷ,p⴨%ybԣZؠYVm]fd y8D}|ºL=͑tؖHyP!qe\2 Wd=բj427q@ 3Lٽ~F[] yuHX+sSvW`FzCf)!ك+`s@)nOiz9I˒LR9JxMYAݵH r'NSlzs0jBdva9 MJs$-TpaIXO SVqHʷ.fJRр+鸴:F5gbUfR) bg :Vi0 ֖>Q^$QR*y YȔvloճ+Y&_:x<}B F-sR̤9CVX!v4%1+p4q7:G/HĀ_L[w|Zf[KRDZ`n(nuz:Bt=4%8FYLÎ+QvZtYY Ak`p.!O,~`,4kZ5_3GoƖ8y#> rU@dWWhFM?^ 8F7BC5Aجf鏉tBo<.+[GZMT@f 04[bBܳnn.ϋrE9@ Kk#ݽ2/3ʳ[VoMeJ^ sfB8Ͻ*=VFUC+3iRx]&Xx0WT8\C)*³è[?j-Kj8֏ P~TU!(٦HBf#h " vo{OR^Kmr34g!p{w+-Ωn=;DoXxoo,m쐜=_pKmU ꗒ1 ]RˤQ[@uJs~EDNNwbR'& Țl%9QPEƪpHUJ- BQ;+8?|ku7&WE4YBSBa[ÉIhg=$?O~R~cp%&KȮ1R'm4^A#=w ET΄^  & !Y|"Z?pUJ?戓PRHuYa}= 6/=7rI1kdH]Рi1"0Fý4z1bSYqPTSjLv$ҭ o-m`854˗99 D? ߣ9T"5PƆUOReڅ#uXS{q^)&2Hg{RT3:ޯ?ǥZ &?U=Ntntv`f,=lϒCfw 6)I c7bc7\udTE;i>W82Q13V2E<<1#Xf&s{ n|ŔJeNYW:!@ӢlI/$h& tBQ GHu BOG ɂ-8U}3i҇JDʩ|f?mYhNt&"!弋{]D):iq?p8jά<< ^-|*>ph@znvH6ij|nQ(% Y`CL 6=SkBnr hPȊly4cwV4ùddz Z auƘW>KE0I2 ABpvBñsȚm񲸾FOL vouLO\> s0\CFf{ eOo3qxzQ6s/)$I3ls7z04fO sќ!슪O'^ڞ.Xb l'éBw$&/bg䭌EgQ&dsy\CPM.X/"o/cNXZPǻ'ciQsW0+F}M9u&p,zƟ*5⤘@j.ŹJrQd'b{fCЌ`H*˫W¨|X]28 !t[!HFS`g0_\wxk6`}`BꃔKaX3gzىiLh:*V')fVtVj&(BdCۤ:e]Ueg:m=f cloבRK8|#n{6n u{Q`¥3hܭсSdN׬ꁁr)]xzXn.(LK[tzIz(-`~VԲFp$ޕ~'w_;#Zei2 vgqB u1%H3s(*yм╉s5lqƶ9*z?Z,-6_n1юەq88A3-Bܵ g5q4|6;%œ1 0PdH%ߦrN|=(D. 戒{1pwnEd-^*M PZ:U6lS r?3rVu|Aȭ|s{Lpsg 6S&}.o4"kF +Ч%=bdwfijTRJ-Q Q]{)Mt]@;M S #4k[7[%{ Q\H`R֖_pXxB^k '丶eL_嗥<nAQ>Ae>T?vݤ- 5#cϢ ,.ٵ0IwkY%n ifSXXi EB<>Ni3ѓX- RI7'1zv'̜iVL Vkx=Ai/g_10 }mQIWnoq2* ))Cbs>(9"$oe,OnluU .]PNH^)6LnYk;]맀ij<3DvHΊe8:GYfӑ|2_wATSMdg{`5cO/iR?':bh|h<<=vRy#>Ub(n7ξ^IPP\Nۜl=9 O7GzH Dpr#ddUa*̱8L{18F UG%@ ­s4L)E_;m9u@,YPPju륷,vX_ĝVt7xV"ĨsT"0&?(l;O`ȆUH""y*].վom.{׳g0A Ψ}Omb@Ή.|]B0~9~9><HEcd51`byi6o5?a7HKמJ x)-+OʹcSho4<&2>>w#:T|_| ih<ߥU8[RD(f݌V]>)M,y'/rFg=ME{[1};FG|4K30J4sD أFH~ǿWhDp P}k+49+KNh(*~wOlVhj@k)u*reʕB^ɻ״xn3Fgz~`|mnd,UqUd9 khqH0"^;kSP%$qVGMG#v~f|EF0@8֞ZFK_)qLc2,4, TY#YaaB91 ['nW8f X1lyq'zoܾUޓM>oJ3VL^T$QF[6CRV7# }J<[S$3_#"5 ȩ<'g֡x5I(8#Xu+{ePe.Ƌifo8"aXu:);P*~;\vBO 5~`Aq (7IstT:P-vx/T`iT8%Q4T_*mbXnqKE̸Ya ۥ{IAwyy ob900^ Ce)؟}k֎Kd?\2Qd\h|DtB"EQ.%͋H^Q$)8<>Ac';J7x$t.>}+4_|9Uw3^lN& ^t1v“䅙G383m&mjp } Uiwi:^0U+fpƭ ,:.ن֔0% JVn7{ sj]UtNojir}vz[HR?85TQd7Js!^Yv3ŭļ/4Xח815˩#FM1\.kRGQmxyvl@G۫:ֶHg݂Htb YKt|έIP nv`V>.nasrHhT$|UI:Ɨ;t7W 0suآ4B@'g1eGgVI7Ēn9.3 ln‘f։&ɼNj$#˟/W ppݐY\AzYԸ(_5`>ִO-|l8h~JX_ 1ʼ`t ._Ӕ)~n\g6=Wf+e$y4Kծ(#iq0z@Vw爍/.U?7U7h$3ϊ+α&S> EWدA; 0IP_FH 4 Nߑl|+YsY%WJ.RqbcYZڗs'Cci@埑tv\ALǓh\djfx9=sGĎ$H"DLo&vL$ ~Ψ]6_,YTm 2%,I@5|e9vh=WJ1Q5T&6f6!7HV ;G||k V׽(N‡;6fMKaYIDI uō6qR3;7fY'n_{U!6'[&g^ ԩfBЙV Bʒz@w1q,9鋃s ~v_5)|i&":"C^XvbC4% Ĵ,{ƺ\; 7)tIڇ-Q4uvnu I{sGx~Lt\P3?Vӯ` r59@&^lԕ.`|SGBKpZP+90OA:~` TJ3TR`7?{#,ˊU?R5|lS:J҆wThe }:Bb~M܊+V: S4eU "+ْDzJRGvƂU3ujrHf5L jtV4I[E pMiTZ7]m})5%-R6ka#xb,oZZɗAQA,_ep&溦.c^CŁ&z8)\; jٍDnb{ꊀGL8ly׀^[m4󏵮pAݝ?>  XpcxP˻2ؤO!xZ]TjaMUklViٯ g';>מ]m[W8&$c(8 53QN)}ť\F6)g;3虫_WwWWY;-(~'zg$GZd(XOu=!p[wj)l^ެHܟ1v_ʸU&_B="z/~84MX7ͪvZ;Mqs<1։|I#ٽ? Z,LU,gym>?σ \ʲwP6`+N߷ڸFm1?r[қJ B;vaB2Fګ6_l[,"Ȇr?hMsMѐ}~ܧvq>1L>~`v}Iбg2:q rAnDZ~*M-! D8j U5X+6\Lύn HӲ9nz.脑JXHzjy9ol}C^nWUY΀>Y' #~at(]D@L\w̹ݡR>gJ"|i3.xrqx/6frSl]tgN(+: JGu-$lzg7X2WJm^m$XDYz{=.ڂtnGs/pշ*W5mn5L6[Jc:?BhԴNz=;5 ~tamkАbifv R/Ғ'?F7"8,}LΠK[V3aݩໄdSKEB?mo |*_ g8|9EyOw K?ڿi]+ǺH<'r}XeO(' @M P1QJZdkI2 )_i1i?ht9.D -SFcd1Vȩ|lK`qOo¶mfqXVfvNR;(baOXmrC'aؕ߿JBiPQvDc6-b*e/Tʚp5:yw;Z+]ҏqMyw|]p/nA1}\ jvm"WW ƔK(3G >Xuc)vQҒ/INXj7)=dYNqn]a1'1@3mP>wP9I;.$5H$Ik󍫂1n_8: ~ :V޴JcQf雳cn[OֽX`9Ġ"eג5FxU| $>73D ڴq1Q z%lD\jf<ugkZhYNm;*@-Wh:2$Y: ڞ8.E=\sn++ٹ IZ~1ckqӒ;%5ɸʤ`jxb'pϯ 5 1Yk4tJ$w` -pFȣ /|q[i#{z`}dL\ 0!|- MMȽ.QS 8Z3\d◟^cuInM:%};2M( ߄iN|=׶:fk4ˈc|*ř)d6C{oJI$ńشa gn_~H#%?g" Le bPemv|ŏ|(J93pus?H7Y{Eڿ]WԚ7c>z}H?2ORfq$|7,ͧD>hB>h#v6ql Q,lzB2`E*CݮnWvW &9w]hY,ANVX7}DƒnLLV xg9a.)HVΙmN" P)FH7q@< J4.KXzǛ/׋H!1\)C/JoȺ0T9I<v n Q}_8Z0/ӕVd)ɸzT(dlzdbN#;y=7?۶G7FT͔~KiW+l `'O|V \Q(|Kכe{7mB2&܌d#|`ZA@rJqg=c`: i[xZ$&#~p9sI}^fʬm Tk@;/LNHgkֈR.J2"pe0!D0㧃RE"E [(4KKT// @g`n*5&ܦv J!&*Ehi[UB[&#W8WzҦftbvCZABR}˷z?LJ".I&+7q#" .]6{S/8gJ_NײcƮ;>LM\0\ԨD@q94CDЁhuIw!J7fA r!c4_qA}G`m,#0xjLYos1hAQLUh3آVnnI)IH֗9q%<0`[B_q^* u\.>\D=S|y9/HyqJEw;Oh8\肟Y]xb^(ÿ5jBͶ9^{Ukbćt1ߏ7G@F̧\P}ot0qosKoB7z`.2Zktj@Ȣ"c˷nyDq9c):K 9b>ųbU&:H~2n迥vc?]JeOzxSkM〟 /nQIT/ sAe+i;ZR̥"Eo;LTh̲sIFo7^ ٴd2@C魻/@~k.ZeG\:)]BS^8Wc Ή/(`R#S|=YE$r0/SW3y:RNkFڃ-.qLJYBLJF3 GFlaZvV sj8ድ^џ;Π_JsYjҲݫvإ׫5̎zie?P.P[879VңnT!rwIZtF~5pdBY: "29;X==#+P.TM{*ɱUw -rМW<>ڬ%LvgRҶ˙iJvӃ,4b@>iZ23nܞA l|T)c2ke˭el/1ˉBc' 0:{7hjn|Q|YWң+?ߵuܡ_R>#m=xL|З T!NRT}ZҠ_F]\0/'qOuc[C=b PFϥ|\:^ܥ3o^YJYfQ#F$I­=L$Q.+ Ʌjf : $IUl r3DȬVUǕIXP6 *9l1ЂkLV~8>2u+BY$[]DÓ l,V  9#cBM)R .t$²jy;i!TYu63pK,ۅ ȭ(=#X T4/& ka g]УX~%rSO(u5!t0QH~do\#=xZ; #'6q84ӰX2;ĥVԘJ2#9Q8秬=i!PXpZ{ _ ]a#Jː÷:(Ϭ$N]4a..zeϻIy^3gCKG Ư5jcFԇ+eOctH&.ȟs[9?NWpm^+ /4[vԼ43ogo|% tn,?#8kIeo쎲ø/<,iazRA '0pTֿPH95_-I'GcrޭqvZ汃tQ!@Iݠ艔+峮3 _w݀"]n>VuzN}r`'sc/눶Bf^ m-YFq*⩭pQZzH0"" @%V3 2iSsBUO  o-fBhL_A*OV ^)(YfݏOzȃ}*+K8Z]LJ*s hzf ]iO"Y GR']Inn^9v=kr2g2ktby(e?Eu7òP]Ra86n6`2m]Х2dI4 *;):X 8q4Jo7ue N}ʖD09*0n#̉d%"& OXQN=`΁a|D4]: R5em.״|eQ,@VJRHgyHR_%Iɶ6A3Va TWtzFO'f:aAeYk@M'nM$K7æY+F^H\_ROmђkG'ͪw?l/ݘ7;N̫y-0L"+oB,aTYUIe@9tPfx\d`"W!Y<~P;o&§it8'ЋoW*t'rĴG0QYs+b$OD7xJ hAXB1Qex/m=_ۗSEk/rgټWDܨhYXtNTަg6lpp$ / Ep 9ߛt!"/هbq'IG}1% ,9ߵd= K.񑥽Ni^P" Bmϟ`5-V79/rKt\0_Ӧݷv KbR 07zNۡ =2|lہSljv:1jp1wJ;*G"Om1u(p"lOøiXׅHW=FmJj'?I6HFw@D l}ОVlY<QA5'ɳ Qy h,--Ag 4ḂvYNvp|GRof?. /2aqUe8@ e>1>(%VA;؇y7 :f@9x%qX.ybpNU05eҭ< )vov+Ǿ(A}{]EUoδlHa :5U/NV-U[a?CZ?-}3)q>]&1"qi 4 Tw:Gy֥'_P4oOOU]b>gtCc ٥o*X,̴"?zL%kcIp,#+/u4;jIvsGbeE";8mt#^ ̚kebslq@% Y8^Ήf̱nW#eּTqv7nkF|׍Azln#SNkـT8/hTL'@(˜G(!v:D4':Chn&DKbJ63<'_dH{ m+F eR5ܷpcLmN睤<nx^{e5lir3Ot8z~d:,@JmWF9_|- |T&Ð:$NF%g6ѫ8wv%F;*k$e6e5MrzYB#܌74N:w*e1 ːRX2J[Zo|K9dX}vG/uJɦje*)Wxz.I04ZkT/N N(Cg_ #?;.Jop?'v=}D. c)`DoID*pɡ2b^FoFXk+IPCo[Jsn2`==, Y:z;K(3-m'=iOOf\ V/#OVU%n(|NюG?2irdIBR[X3W4<ǿe8/p ^D֪re2҇]LB5Hc$Ezl\/.  e`:KJ.Ǎ?t$j/^pWf^A5w"ܿo4B4\$fb[eFiף.p$fBSVviT4or V"Pwˡ)KW_">ǞB+fb _a I΍?O;vCh&uӺ ׃l2`V-5r8"a}+s 9`S鬇6[CaΨ*0q2k7ʦ+w\:i/^moY4.xe5Ôv7"O1¥w96)i6T6ƐcEo-sܲkk'6ߤY!S3+eSQ&xw㡆qۆ8D[4i˃FyK44v_ͬ8mJ$by|iVAnҖVI#>Q‘LU)w\I2/rv/Htk!Ry*R;Mt6ըlP~}ѻ:I'U?ED7褑:x9z^/3 iWVX@pt',C4-ܸ%%höwuR Yg咽fg6nT#j؏I&S>X20*H'یHBF7BvV҇W3GlOZyw_k\XR\{etI_-'53*W[4L7ex+3`bi˜}|o4 #n X5G G&͔}On8U%_so5Õ^U=!. x5?]zF >Tҧf;FPMZe.$<,kH=sٶ{^ }t38nUPϋ˙-~ͧ,^ݭ|b_>GMy!K2ed`,_*юkbyc \gVUQdf8D E+r\zz)>Wg>J e$ p,ڴʔ䊑DZۛo['W5y"JTL#)j+L=X׊ժv6DrNGe-?S|8`*rNwI?24DtuGLn(lU`#G=zq)E xIw|$PkbHO DlP7UICْp_%$OԱ@ol欪[eF"? yˬ@ rnlS#e//i\L3#2d(X2:f@6B( `j:&Dg(PJ#N^Ɍl[!Ss4Rr807YOF5u#h6CQ 5 ND4SI2 Uj֌ [#\r7<63M]tk)e,Gg}ˆLOƀO35TƪF0[@׃kOLon)Q@ر[,Tv4oSt"[ެDpڀVグh̆HACQYst'8ic`';8ڀF= KA`e;v +j.=ήOs86uDec僕I;xag}<+ksRt5f ̮GCt%wq)'T20E YcjҺq$SpP`?uQ=Ѕ`ߓ@R*Zm;ƌu6gz{/29z)P3Njg$HDu,]z vSTv| &# 3#[# 948U nȧ  w(!cLy]s + $ FrQlG3~-*arn0srj`rvT=CC02Ye=jK LZ&he`[~ r*]Kb%L,)/GXuQΧj{`|*\@<,AR QLtx~mi5-1njsF$31VAJ=uvr#Q=LDdj'Fh#sZqڙh沊%6e$-7faSTyG>v2kˏcx}qRՓV7~Lag묻RmX1ݭԙYYvh% O~geDԟ͇oZ>'rFlӿt/` p\$5c {2uNkuߝ 04ym!e/LGh^TwvAU MtApZo#_p ~IOIK_ &}RB)2di~`~u)2 m8gYIYDH_ˣXkȘYT*>Ԛ#l'd)WVїyjTf̥UqN>ѬqZ#Iz@֞ )V(;Ȅ(r_rYCDݑuf3@W R|M}19ݯp)SJ(ڼvoz&dT mCP)R#8ɾ};iig޶v+a{OlIuU=|P?>O\rjǓHTՊg-|N)cXXnxTtp6eܬeORp.$CVivw^k:pul 9ˠ_]Yݹk$ޛo?΢;eoߐϓe69j]< nF]=EwEGIEBɾW(I.5X@Q)Uī$o|}6G0^N@vJ?fu1lQm/P'Zʎ70Ժl<$6iaW%q>Ɔ;SppoKmwK*Fq{5ܨUA1x[  P} V\N,S7eGNb.|$ϤzNɑSCY;}x^L%obqav=rڇ/g|Xӌ!U<9cxlhR?sc K &]g2>KtWb\xMAB'd{pE8#Uv;Q׾co6wflғIQp)2roB~ߏg gmx_ ML:nEUY Ӽܐ_vkMZ.tz=Q2l;5ܿf+d*XNE9+z>'1ű$D :Fd< *ߟJۓWC$fPh(oMYzN!8>3A7r[Z| fLdpk}RydZ0}gVXT(!S-_*:ބɸYysqA篟`^'tۦ77yBU|Z~`jH.gdj" =kť{/V%jk1w`kZ[U/P( a{ ُWŚK*Hj  `3t+h C-;,Jno$@{׋ιe4J%%V~ڊۏtޑ>9OIןq85.v]0(~)Rl?bb M( EK2ԄVk$+'=x}j#BBזlmãW.qkҿR.aɡ!I)=Ȥ$Cͅ >zW`\SmԘyc<~;ωPÆV-ZH ƀk* #&=y1s:y"G/2WgF9U>JmϊKw` .])(11ÐSUUF;x濾)ና 7y&o;huUzpZ7ZX3S;2g9'J{Rt'4Գ>S]'=.pH—)L;du8 ,sQgI ة=I@8]~!ZS vMy tH8t)UB횗 S>q.b~Qg*pc]PHv`^4"G)%'"@6}~~tĤM\KlSAW: &_3Nt%Llp;ٍƀkIbgF!tL8jˡmgU' + ]<1ADy2z\ оYX!6b9۵t7ry܈~ڍ%`;pl KEol"TwӵO9xZ5y3'Z<5W8k)ȱXylJyx'UGz0A<;LZHQ˛Y3;g[EerUZ[v҅q, vO-ɥrzmQ},>.Ӽбc>ZTPogE^QPiIVI475̜a$>VLXnfjl+o s\1Y茼Ti`rktdD_.wD8I1̔mz'RÓ`Cŵ(6 Dʂ;J޶K\u(5:dRx9׶-uJ5l4%QEWq~"0“H8L5XK? ɀ"~/W 54Ibp׬GʏSx!ѭr8:5rm!~Ndۧ(f}Tv)@du~msתDP sڔ-r^dIݭ*Y2@ p`k;)ߞ2pV* M5NKiG1YN2[كa>V/\4){U |n:8**>JVIɖ|}ۃ8Ȅ m &p}iQq %Ňnq괃?%-:JXli{ۤd_`VHu\0ثfkp*(aW ~/Lj[ >*N4>YlrPC&hHj4tY0 %3^Q,hM~%T+B c"?ÊɡJd/(&m!Gg?0 hc=,$ixİBdSq`AВ` Xœ DSfF\_T[c֮2Wh?Y塟86حVP xQP[+fu2[n6>f4~׎Z{vn!ozxo֑"'!T+h6ʆGڅn"4x=Sq"':t0*]z}Y‰nQa孆#Ay@rCO3 *9#n"R)^!"KXrK?j[A߲2@/a̺tƺe "FnJۊ A:l9O"Tpw W tD$98Aj~# $7b4lT DȸF4[=|яp4!iQFWrl;iн;7 oT\0d93{K6n~[V\D)5N/ o15油f(rfP%<?Gi[O*ZwW`w{dwE%9>Rh* JOy\(yNT1CaeuS1X! bӄԌA ;|aŇe& I+T;ғ6bEka?+kyliDżz.:)߉Q$Uc$|O!J[yفGyhTx|&.V$YE7B98j֡6.S=fyrhv7^E_݁6 ¬MevvG(No&ɪ;-͹nj ).Q4jqw^%iq~t-If{ZfB0~ry[ ʧD #){|fn?":~y2[<zYD؃бSH ^k튮qW  ڳAh5%^jO0ϯȏ~JO5h4R}- ~Яypz@t݈WQ[ՄOSKZ 44>QS|@xతdH.D$f;.Aԏͼ*Tlz[5(v)S k5 <^NiCԐ]+ .~$f`޶Uc߅RxOX#;d7y$,q8.lw ()AϨ| zdȁyjog H=}: = Gr:5K@5y U[h'qUc)[mw9 liU&ؐnd\%0n Dxx *z?g#[ j6$2cM(<50#JE<;t7|WτQ}n.-j p-\-@ȿlR #z0nvE:i+f w= as@ !9 LYngt>#*SZNpҘE1 YNF=ܑz-:n`3|5!vIvMxئ[z"$bPo-gZH8b_X DwU:?wQ9骨HoPnfΈ_ N"s39Ɍ[gŽ)hOM^gg h!buO `"zh;=Vz7PW&LS'ī-\@8BEy=Zἠe=[ҙgK=㵎ǂ5f+ iX 'poQLglcjY)kc$ W/ǎV*E'+jH1бwpN#汥MYxG\]gnvʲ0 nu%AM-CgyòL"S!~B[xS1 Kܘ~ .ɪ4uRĺ×XQ`|PCTni)Y8$f@2ED%bxd(28'grH}t3`v0I1e '@hL{ukG\Z),KuJosorL&sǬλP G[q0-ߡătQ5FCedwKL1q3`J:W۽Rα_KkGCt4D0u-V?a3I&;E B{DM@@kA0O\2|S z9MZ[W86ؼ2eb*s$rWs6mHP(ym Z͝9'|ʈŶU9k͔΍!U D9ё@:z$#h`Ǡn}R"SO 1~_|5ݗn|tQqREG}ly)O{t+C{dήW[;^fXBlkMfdbyݍ<,s6{8 Cv;ytlZX<="+Ä>}rN7IJ9@9=cW[_ Lq>&|wCpm Rns ( ]9~vcgr-`y@%t YI/F)ϵ 1G(3ǚK',rf!kI%qXցDL)3[D=C3d0ESG c"-^>)B)̨gnJ]M[T"akVf<钼]MBkLSO$ 3R6ohU?jJd=EYwVeIu} &G oNJ0J\-%, U|_pĘgQP:ܖVVu?H䜇%'z&Cyki1R8X ~3"/LV!ŪB!4ᶜ"ָ\jb ݸV8P)Ɣ" ^=h3VH:F]$.u؏νjգ'PQs(Ix'mf$p R6t|_e͙" wĖI -zRc6ZpYn"8ybzMsN*{!XzjޒORv5ǂJDifGǙ^Ily {c7%,Skp0Qc)t&quu)Pg0Q7iksJRLN$7nx ؇9P_EDu" $syns j/O7>l (ܶQZ+0H4'd n: 3wf5~6`fAҚĊ[WtSi@6Ju&KgYoo쉝ѫt:Lg)[VAV肓{$bKt{:厃hoW5c=`3|!,C޶); =)!6|GI}AD*jլ*2E/R= pL巘*܇Br)"6W/hE%-`s W+itX%κ!B p%=U +ƍ2)4,WΪ_~,}#rdSMQD!qS-|tg8f|Sϯ8iN&{ Gl!.# }NXoNxۺz1XU7&Jt f Su٢u`E\\{)`wޠRR_YI=ݥސu&!"Zk(n+򴫬}`(g@\NhL"?nJE KZQ ֋ooϦ::(${.o:8NF IZ0^&UB4wo]ץŇLDZnEA%*F 5r﹩Cz]$ay=s#&t:!;D(,Jl剑cno z[5ѕ5qA.hY.8gZ }1p=a^7]Pqٯ/=U!3)|(;Dƴ G=&G/_'s,r1P/{C 4v;7u*ٔF_鏄TuY2X1_ )VŊINfty$5%27=d|} w~\yalljYxÎ  o˦r9dFaiqag!49p%)J{eLKyU۶ǖ6*y#Ap~fiJ&|d |@8tvއ.(7+_5JZ|^oG6O(Ѫa3Pc19@k `Hv LCGu`JkIuJ۶8qf`ٮ"D;Oiؗk}1͡GбRτC=.8;,V:_OtaZ}drAQ!Vt./<\84pѦ:>[<iOW5T |Ri_cb4n.==(-|ckS͒Z(*z ѓM֕=tU6b)'o͚fqvގ pSyL+t0;3!~ )1uGД7e% 9>œF%eo%zŒb>Xٷ2,!Җ5昄IeBKjвt/Q%K(a1EOMbb/k6py.<kP=lGϖ %98!Lvwe,sZy]iETg<$Is7p>mgBAeSޙ8jŝza+L2v?~TPd $Mscq`#CyA ͞yRBcyƄX ;P}4:ݯ DwsMOFC/!#Jnv( 52ǐؒcMa4S2*4cm&q5v8FmIi˗D7#E(6P$e[Ԫ0is>p]+@q uճI'>#UޅkqbKtLqQ|*4Fդpz<2Ŀ| mw% y4|w'д:̚$C{i#qdp+4/d@~'t%P:Vob#Of,̌R|}Dnhpho }R AD'(lfP]Z7ȧB$b!@Uo ݀͜!/yLjh+1MTiƨ?/ʣ'Qn@iݤKrO~,F*]$Nna‹dBx*}#1i7߅ 0&Qݝ%M C! q̆ڀo5\wB4^.;V*WxEX.,sk5s6?P+rin *PB\fV/YZZέo-%z^ۥ^%%q5X;֟a;E YM%)?Os͉lDfdbkL,oVybr,ٱb:^[K*0Si$nM& ,wSw hn(M9mY\Zg};"5-ƃK]V!ß6,(hxxT5y Ys?+lkzJ Zcp g>%} lq' ղP ,urgb^& TEKmՌcn|DR }zFh۹'a: bc ~2j1W,,1& zw//8Pc8:_p72KfHS]s7?t언[V>\rPdxMBG s e *4vsǧބF)KrZPּ%JMH sVO>Gwǹ]gbůn2":w^`ƳT&,|\` jS1gElX/QN-B!gH2Q7<ZތwJD9SOϛWMoQ 63߾ܵG3@J0B,D_ Wrf*8rdMʜO#ǂ>?a +#?`Mr+(~LBH²,7r(' ֢5qF!yǝƃ@r)&aQ*?z7 RTi^suL;AqOa(kxEt9pf"լ[ҩ9HW`蔬w(ha铦 ׷p :Э3HnYJa?2;$:2\2)5DA"O;Jϋt;I|bMlȄ/]![Et ֠}E |08 OAA*M/^&(1PࣧߛY2E7~TYĔyl*`>тu4%4y{v*aE7QQBp%Dmi_iLvb+Mm!+L ]T/OnŦ hi$'մ$($uz7? 3< wIHx=Ȣz*MO7ŋ{ft.e cgOeOv8h_7(à<'ʕy)&5]39Oޢs6z:~-XmF8ðF?uT|떌67$t~N ?+p2'݅9 tH13{wBlodNҦoFT ] ":w$dH* " (ܷ|U?q87bxKT Nr]Z`NrQgAEIؽ)/& SCRF1bn F,*}DmL$fbxRU3>sChZ*ay`MtI}Ap6LO?)Vd,{"9P{oNe~Lus\ǣšSѝOv]& {9LOQZ4}w5= 1T[dcLDE h+KH!wdڴ94s0ûv: k(x5.b%aG JA# >ngu/W@Л*[锏?J3-{|8 ?f='ŤqǴQl9]4k_u1X~"!,yCp^հm0BYX*ޏ,|m̌(*!& vH|AR-yAjl/ro i¼7sM8/E"pܱD8Mv(qt$$THtinNM%c2$d3X dg^(|@@5>t- L=kaN)v!.XB /QH?η? >`~)Cb›#4Vkek)Jk(6-1'%JԣI,)`<;,}Q19Yd58fZH"NX m|&@=~灝*@Vkl ĜmؾD߂ҩBVYŴF -ʦϦ̊)$fge_MA;p&&j+rr_K q4 @\O\!Iv[`tx Xb'H!pξCdtU O3NAWFǼve~۱};ZCl}{VpAR(yp% =+cVisUVA>U/NB 8 tB`M=@S_,065zNUGjti=$4_,@ <11az n"Qq_x6M#!-oyaa[lHf `F`a}itA3yZ7Ĩ1TG&rx#MNCe=gUJSE[lk(L{11=r7=e3=+-O.Q,I$f z!JEͥ. G[-Kw D{f4*fLʵGsϰ7 4Z,^ w*Xz |Ҷy 10^RR_ֳXM d|͑uGV|)ڻy\ݓitu|`zzt b -%qcpUBMM($16 g%z0uS(g4W{™ yvf6ћYINm)Sq'Q` Goخ@^H=/ (; YFT{ `u/<  BU r1ڭN7sT,tkm-t@ g^Zö[vYujOd}F~y`^ZSNP\MuߧxKt|>YM,`H9}-3`jżȏ$O9@ !Mgkv5ҞJC߃)&Z ު{,- 4N%LP{ʹi);!~'lxbzeq$h3Z.<-SoCՄ୍TƵrnܴb + pB*(V025]iشy;@Vӵ{Xlt,:BYtta>vI,jixuUSu"9ׯgbXijUkc2Cu k9NY H[a*uOpp½'*'Jſ7ĮuN̏-fAr !@V(@~`p|T [@J|(WV^{ ]Xl jryl u=S߷c-9#:wudYrˉM;s^d~ƧW]4m/{UTႠzJ jYӗ@LhDwP7T5([}+H=^ ׼*ƪ'ŏ[ ,W Me~agnAM%Y}᜻֩8A-\O@p*K#Q>&|ISc]>S H]x ݘ=$g5Cz0n)As}vJ>ܧFڶAN(B|=ͮZTw}#Qk򋚈91uߕg} ơlN?2GCS@AFhG_>Q <.W|FUC*񨭊 %N_FBBR@P5Ţw5nNGjt"ދF|;UWxז8?5T3bE{S VeU3•N(|n[p^ )9oģıFuF#7]<y3#.˞K%('Rkg[ i]?-{gmB֛I!=U(9+mI+q† JjbG*y%;ej  XY 2`LufW ; @j 6*wF`(vW$x%R? "kߞ #+Kl&(OﵫJ,>Vʦ' :X|$)۩6X]?n&8/.YD:$Q6y̖};1)?.KwѾj|CM693yt1TsjiVj@jmZI?Z%˳LZ|鬠..QVd[`'bdivw[Zq3F8U&{3 ^<Q&ϩԉ1Nx1 yzzxHdsx|h~&2`^H>]]]yӽf5]<& BHlqj WDNXɅ6GQryk]Bι#e6 4iM6@g_@Qk27""jL^/.T6W)/՚'qn4$M v]rP0i[m=i?dlNv.J%-\Q{!yWD`TGߏ3x-‘V\ 2*WOS5wg Nb8dnjfP>-VSkg.i9g>*,_}2 6?S%seJf,3sXZ}%zo$Oowie 0 ]pf,u@+UKd-9=OМ⣖PlB^: 0@s2Gnmؼ`ܕ[͝ iH[3'0ji>YW3l%qƢF)Z %#zjԨZ[:hCnw]ym4ܮ!<4.εT-1:)-)^w6fY%rY i~򓐔?#RF%%/;`[D>,tkEzm}4M]$Y*~>=P^hAAx29^;*ݮ׏"'ϠuDY֙!/lշGMXѶ!ח#_l@xCSgXмh >*c> a#'n0$ت4&gYVud"'-+6v YՂ׻4^-5^V )jvjP6_ataYNVZ۷HoV?upܫԿUW&GSa&cx6SmY&!5(q2Ig^#,D;MNaxm8-\;^ 3WЬFW[ a;86?cZ (4eä$(JjO.wm5S%`w&o>+LI+.5x(jkz`+Z% t΃4?[ 0v 5fͶT:F뵯oy'{|Ȇ-\6'#.`̬Sjs>Clڔ3/Y M>|<57%3F~Fo*%15vL6XҒ9}BUD1is_ _\FAsM ';d2h9ГI[/jM8Q3]\Axѣ~~q6|G\kg<-֯_"tUsoOI X!TtHJ\ީU "Lf8qhx= ț "_`Fu/ƶ2NSOQ@"-}uܳ#^ Y8 rdJQU:$H rPn$%YYC2.ݳ˻A0:D d)LWPVkvhH>x úǪIL#^bfR,IHr_|= KCpmr2,^JT@(0 ybtEd DԯlQ(CjdCx I)B&Jk>cF9EdLM;G"},/ǔ>ؽqo/*WbN)yGIk61a-;=N<-v9$KǕd2̥k7"V@ 7ޓ~g(jqIRȥdYRC&.:N`7P,7.W}`KbN!{f<[U?i3p Y81 vh:֐Oz@RiSޣס9 ϠKoWciMӾuM5.iPR*,!4rޞӗl ȍ,ggxf*FlrdWra MGkt|#+2cZwؐb7P (͉/r4RRƏg'`c|A^/:nETʡڥDu Yq^ VDT1"\YkB)f=J!l_LbFPt!=K;24S+<f2S9u=NA"~ŰH/1qJ:Wj]tbhhQJvT98 4M.) G̃)xj EY71_ `+*\IP㏑`X`w6N Bդh_ .NQk{vK_/XQ9 晒N<#E`= /n#4ui׹ ao=Z kjދ%gr*$9y![諚i«{ !J.y45:ɢQ2"lU|?[lЧ0Ɵ۸)[CT-=UydC(WjU k ]qodo@YS^ r^8HǏnӈWZgz R!\u23bƚ :8THרFd=bY]KllQ6*d1aqSt4'9[;)oSpFn-5}496/e_A<,;wDkGX(/:kV6pOV0-J)e! n,^ɽAhPx[{00G˽_m  }xjQxZz8qdUwA/إWmAZ@%S+kOInEAp)xxȎ+@I"WՓ{Џ?~ʌ<]+hC!i|bͶIT*p'{_cI l=e1sܮʪTͭ0Eze*E7^P;QRꏰKSGL"p1beOhEZz] XDaaF!&6hsk˸BJ2v5!0ų醦a!dK 끧E3eO 3O\: /0dǗxg*Xf#+T $=2"oB//܀.n@EV|c}cP|x%@sP,AP+ oMm %OgGty$k?AlҤ~F*!LJa߽pK/a "8SJh <ߠUYK]$( 3wmNje7iy DqXo\( <{ֻdbdg>E{p9ӄVUns k4Df 7'vOdzW'<+IX5ga J!n*$ޣzޗ*>M"yhcѲF5"sL\V%VᖔԣZb6(dꞫ,|$핸Ah9f*]ߪu`'t<.N{!NU>٦F;LFew/TJh<7W}ѳmA]EʥL>,Vu\A/QM,tcmC0rqI,l r,zIwgq(k :> ![ً^j+]Wc^5a)Mn3C+nk\2׃3G626h4G JXZ6Q$8G+qXhWhƹHdzGLfm9&E~~M;Sh3~R$NLhxV'X"w{䶶l88ny>H%cڳbB6Ft/SѼoLE ڬݰ:':JZjhES!e6?V|LGsPG}oR`n = ۦVYmکz~HXT_OlD9|6x)ʱ+wocARY^?JZD[ko&KS̐l} Hi5CG)|s扖| eBPpk6e:u.jyT.jƒ'GI3t}ۀSٔ)`w e!(!*:{[bGg)= 9T\=C픈H(t4K?P9\Ph*VazkVpOҗݪ!h 3DZmk?b_ˀ=ot)1P J{orjqQc ++~yHJJO|HgKCŞ+*!p~J{/xV"ļs>;0K7hf ?jʡuouX_BJl1{V!nq"r"4~Q{l#e y<|ԗXd oO҈'+iVYםZ3=o9޸kYo \y jn4he:$fK=&ԈVcа>RI&8 **`ZXmRMZ%߿tGsi LvW CZꊕY Yɝ{@,}R D57FtDS]V+E;JñnU*`;̗I7ޛ-6aT*A3ꦏQr,U ccԂ₝+ Q˵{I9Hݠ\1|d˼ dJO 3[mPTAx|a `Tz'.gc9ވJw0WJ聤)D%[ץB\a@|~W\/UO8 ,CC]E UN:9MIhfF$u)=H4eoكPhWLC$uDw1%aekӣoE fk&߼51}^*2k,j76z~Z*VM"7⏼oP挌Il)D_vao)ʼnlZw7m61d_ U`: 5z[--@-,'-?bi~bnr_EJ9AvG!ѾXI0` Oz s^h)RDI&20F -qUCHhE+ //GkM@ #)U쐁RR, ΌmL/B$Y;4BίW° %ƥj76;$şl/eDL7cyD;.O-sqB&UWͤ C]< 冞 0V$E+4CIpfK&N( P[h'OeR$c5^ >^dܻG!c,G}CkdG>2IzV#0u=s{ ]t#*Hp!&VJu&'f-| 硿ֵX˓մpMCn8f{OyU#؏UD+~[5wy`Iͦ MYlM1^q1`{ѣ:U̚3t: dr5wVk=-* k;cǬp6<1 &JD@T Vs@2Xh Z86䱒ɡɠhJ" y2 ~aÛ)Q2Ã6MqvqqHe_tk+\9jN^>H0ȏ~liY4 'ċ `E(K @i4O`17(nK QEFA~;v D UhOc 牦#Gת<6䏷A 7|7?}y̴%XZGUvSaj TM+og.6 rS^Z,u3#p"z#Gha$(Q9=$?>2O})gpȨ#NEel!)T*@xDK5hK۸%zʼn]6%Dupt\||% >2DwK 5Ms}{nC0EAq#@{&!T߹YFm^!K7bT ,DUtؒqU?{+ :#.4Bٴ ]D>Uj?5-U'/r%6Iޑm)ĭ'5Y"Ox+?ink,0(ަJ.sOӀН^pRFRAap#" %R8Q]#|'tlw8yO^2MOGmOs۱gH49$A7^uxFH+H*D$AQ)?&lʰ\5k8%5`MllW}>yt]ww$'`!Ih/TL4-Ej^H/| uVg!PDL5SkE7Wͧ?)6t5/6Х([bYz']5yKyr)űuoì% Q|G{~EyIao0A ݴ8?:B]cqD?ؗJ'N\͖mgy2~W%)W6'.TL<[bR[1 x9]ͫg 4"bh|)Mŭn߂n'j|?)>a a51$à8+q=`KzkY pv ZzM\Pl09aZݘR|2g;凵$'$S^8qvxFvx("âJ^әR3CPS?Ew,r5%G˔,{p K|%`~Bm]Ga2 ض\;2foquT_l<զ(fӃNv5b <7 ua =ܵCiZt$L'TL9ʹ样};1aaj.?Fx$V._va19#oᕍUp4pП~dzgG3OSM+̞R"!SY0)LHM'TzC%1A@ vݏxB?NHCl0(2(bӮ 43s8d ^#kDV}(=$TBkoY~NO4h0AQ-ID]wxu E ZĚD Ur{~>$)|SZ$>1ႿKmp k;N.rwc(O#ZxB~3`P?`fw8ڈ bI ѝnuuʍ]#o{-'vG'̺Ï,.M$-d@;,t)u8u~oDͳ dY ~4DblʙԚ7mQbv-?rqSjP-˔g=W*{$PgKݧ9N] p0,#c6wqI\¯K,$%JBXQ/ |C+om][o&-~b+RϗY-jx+C$>LݓI$t["nh(`FzT#%Gы\%Y _}gصAK߱1xx܂FqW%A&v#Dkð@ iPM ^8脝o[>a oWI!+Ia5teL" ;pص#c33~*>^ KQ/ն̝#[e xGfȅYK]aS"+/d ٜ7Ħt4L_'žǑ^t`+ كO 73IR e3cËIR`*ar1Jً+DoiיRp?-H o@M#'84pE7^^ٹtm eSe(nKxp:|K3$$K[M=++ojǞaj 8>jV;Dd&۪(fq[G-el@O2#LR*W&hN]TeNZlh_QBZO"/^86y1;#Rڧc_. }?ֈh8uPmym}]S`L:AK2*2#5 3el:5Rc+ 19S9ˌd2ڿ`~uRIyN."r?= ١f0 >pLh/h>WdZ:  {Ԍ<}qzY밨yѫ蛰wOi5m/ROtߟ%+iA}!r/xO*G1H,DbqJ-5qIO;_Fw8vyz!ֳ#;G(!zT7Wzg q#:^lj%gea Ecf!qYSw6r@!Qp^beAI>L9@Q`ڨA{4g„ k~(_[Ll͒ep?hWBn2\|G~u)RfnA)A-ZȤ01Xyks%2)ا=V<3ֈqĨ#@[qy֛Rk'$޵g"\IFǹƬ$c;D,d%qZ/KwKIxfvx(F(f"'oJ^`V{ 1[#_T,Ң?{h(JZQ cq5P_3 n,Hpp3+͏O,w-$܌qʺ-g(h,99w*@NBٝd+B(/ N&* lDw%|[ӄ.>R1џkVy=IN`'U,C)}ڶ]A ]yf/b{D`<:B('xbU;|vy)!ֿaUd]h-ogl!^אH[rmKwO,.V39?c'1Q-xw\1!Pq;TqUEt$CoE4 JHՔҎ}Y#"A t\5*  2[M&_\\|gm~7؇ mwHQ%Z>=vب1+GZo*IUKe}j4^+4'BL`hiXiӝeHRJ_&'?5vlPN ~Z[J Jd۸oҞLrMTmY R+rekمAdž5JK;\} E3.nPDd,R8Fc H[KwN;_GS)-S"<Ϣe%(JP"bokJw|םw\_٢jѽKE=s!Y@[!9YFo 7 X1R-m`.lԛ? 9/(nF- 4n=tXAݧ)=n rb{no:)̔ߘ_pMj*dHkgwHf,2w%VErs7~K4nk7]Rݐ YoO< . h3A_J/ef9dߪ {^-l5,Gn./EW%Շ"9hMĖ83,Q:lĠwt1Af@Rb7𗊡t8e}:uePyLn=JyIt n4>^(;ܣGЁhJhؙ$i] tKΒrY~NIsI$0zdWk"i@@#)aR0;IZVT6R|L+t D\ҙ-?%CaM l͛V̻Gɸ;dDW,!B 8k/v:!5aOxxE(~ӑp b KO]=pH{Y y;}U~g+#S}YQ aFӸau %f0ґs/؏+Kp6+aj KyR&݌ZzpB.]#Ð(*֊!h"nsV_[)7`4v^gWH 2rݼXPÿ$_ёu"}0j mR♓HEA8j .LN0?J[/JKzmwŧi&JV.P)&.Is \Vl |+ƙƚQd!3#g(.M=R#hJ1ڬhe -s,B:8oJHx`3lRY.TE_~lL$@~ݼ;gA.T Z=`ZDVB&OW6 Ȅi*?bJW 6/>JO;# >3g0/jIT8 S1$1ZjKՅ{k*fxMTÝSZue*֜)\b+6u wvWBV .ɍ ܥPQFV6͒N4:oA޸o3h?1"G_B&ӸEU=y6pOXإ>9N/Dqx7Q^Tx(!~^^H%%wc4Km7퇟3T|P@vxƶtudi $q`=N8ktjZ-S{%c?vl~K;gn,*.[ owLV7\P^` /&8g>U9 lIת>Z/"u}08؎(+S,DNRg.Ӟ$#,)g꯫5uz rNHw;Ӥ.$疽}t殙,ld/^˗bsG`8g5Udd/ ^y޽K<"%a%ו=W>&s}ͩ3tWh̊MøBFx [sqTs3bec^HXf&þ-H{3Uƅd_Τ~X+3M*xXj77 `h]Ur_}l<;S.oI4ԁL"=Ujnmg&se4<)JSBbeV dl$P4BLJ׃&x7ѻ"3 \z0+HaWqa 8# nSb'8B`PlƵ].Rkcpe{|:XZU!|rC-)ef~%pV7# _DxW*i7ALeݵ\Zee^UR-DݤՌriNu=LDobMRe"\MNRy0 iڰ06cs{<[!W}$GmNS呻K/lm]g ӓL+ lIS үШW x0AUִܻaqyGY̧0甫ZH-^Dj 8/w4Z[ao%KH7N a~Cg^_"ʗ9\B4[\70z D[j`xB1_؍quSuPZؗGyD[ʴf}4bʌzU02##q|,}dTTG\$V<R5&wfQ >yzDiyeW͈-6]k}H$fy"J~ *D,(Ժ!*h*e|ow @9Gpdh&xvNŚ]uî1{MJaZ#\K}p.t17>:y E7+M#$AJ,b nm圬KotbZeLB}^n0OR{fNy6ď2}? } Aȯ-m͐j=IJJZ?Ql3lAW_D-R,+̂aWW ~FDx!>ꦟ )}Ҩ[#g\IҒ O2_l;擘4ώ*C9W.ʦ׆-8Jb /kK. ѩmY5ߝ?[EqXўR=[RTяDe{'SlSvOd:b9}x8zA* 5W!K?YtН-7`YQ/QbšdeSo~Gq_uO=۠n:t4*sgw=F[GڵUճ8ZM#匂8c!j:d(1H|]-Y8|u:ޫTr G/'✢mNֵc1xe7}_1pJ$Xz#QioU֫ p EL;R-&D|}Sɱ wo$+`ftx } D:E}꫁!̆aO;.5qsE֐7ƬV F(\k((4:pos+_86fsXPbE4 wGq"1ar{d]X"#%f͏?T"68>pE-*qH`/9"aOŲNg: &e4J הB0Pa$z[zݻ@ca~@+Aοz\֦磪kD)V4f3#Pk=~]IH{\ /CT(2n^",tu@AA:»b!RʎL'Z>',$Ӵ}X2Ƕ8~{ 4o=|3Ԧ&.9t1RLAMX@L$_ ¶\ &*VVѧnx ʴ7YIowjV >9NuMNEW5 "G84u/A WF5Z -!ʧ -]A:j+swlrp,u/gYK:倒Jl͑(&!_jKҁ7Hոm=y`0>ai\PuqD|=jlȚ*[u@8d^i.ь m~l%MDӜ\{)5Ԑa-вA7J4. .iĊ&:8/^_t=e9RX'p࿟B'ZQ21LtQ{C^ a mAzhM17 >”]1~1J2owQ:$C6PݯIYڨV);tً@uhxTmAKpQu}f= 'KWHV9=!Q S#6,,}?ZsCڣKV*"YsQMlabc9˷Hs}@@}`ѣģeNVAC؉5iR< E!q8fz4qŪ6>O9PUqw'ԗ%8Bym~9{zjDy7ک3>}:Ѝ vOIFބJd/x Q^pC+@D0nK's jWNJ?=3cq9vIssDg{>ATYlCrE#hǺcȔ0q)5wL!Q?%E/*([8f.k?e(<EĂXP9F~O쮶79gU1GG3;]S븉WT*+Y]2ޅkq# {N28PӅYVcsL0=3ɗ%]RV(YHʏ"YltySsHE ׅz mTs2kxV 3S|%񴏜JϛU9Sb|Bt4LLYX*m&^Yu aZ {VtV20頨p%"S謹Hm$;Ϲ)M|ԅ!^OD?ʯTҔ4aƩ;b R5y2]=$ ~DsWimA:i\>Lǚc&JmOs28ש"E~¤8{b,L`,MW<^hl 9(mcAqoSmjkkq;(wswn6ya{;A,s%-<ڶU)W[#0ZKEmTA{]7m/ՋTdermq5&V4!s}_b/N N d,vhB< h<:b[jՄ ޻XRi +rb0T;2azej$b$:fQHژ7;WS8fo*[^.!Jm4wVm>Q2B=_J\N9?A*k/ОwU)~ 7GEi 1ka"Q&n<| 'Q[jtzј-{y%k5E.s%1ذez8pl ` Ɗ805[DSX-ΐV6Vo? =s)ģPH. W݊.RF6Q:6>8,3D K|p'oK: {k!Gu $2]^6 [Q "?3ZXqVZ6`ǿ:1fD$2ug8_J$#2b,1^ٲO.A<+ J[%ug۽tYX '3(1M;~/8G+9m;+KbHhR9-8L=IqU'tq 2Y5XgJ5oݬ7M6F}N>W@_."HQv887M;E%-G88vIB#ECwCDm :.*$͘vI]~]iB p +HGLZ\RnXxM/&m\zkO*y$6RP6%idΆ7g$||0h7{^tVD|00x,RN )&NGY-M~?uH6T{@EI\VL=BkC횧1ڽ[4A֡݉`.puHZ͆{ žhglRk{,Qp3s硡K 'LUn7!i#]Xj"XlȁKU(KɜڋxΔlZܣ@UGƃSEd7O }тu(7 s_Yc,I( rg3Z#Qi;5C8-3"E1qQeABI"^=m ̀AOHwȆLTȧX~:\<$;Ś18=fzWr0^WƝX }lxPtP3Zi >@*K]a> Q9=~vگMPqk^pC$_ ݂E0Z8NJŮf#ΞS9@)ܭFɔJ1fVSFif8묒]|+(v Xb4%hqbS Rޤ͌qS*_T }?3Z.na%6ֻYs|;v# ~1Xvq҆4E; wwpT12knbqA†\ HӹV3O c#?lJ zpH0lmQmoέ|(?\֩`М&(S>7m ^ F$Zl\\^;䡶ֹ/;-}֪y2䔬̠#^8h|=yr;,P]jq!1d 0M=F.[0zxk&-*hU8@L\vdL]k4fs*9yKv"Ga/L蛋3JYk eD rķݰ] Oђ 49q"W0Lg@_/<# SCDܛ8-5/VMn? F}_d|חy#'r!\ݫ2$&%w6͋LTt| "nMনɄJՋzC>ۓO詵iNRJ۾\J68A:~\Pe7O5%E{Y|dh5{W:8{wWC7R/g- X @'䆬`'` m>% rH޴_bD T3א-fnl; (x~}jgݏ5%GG`E?xNpGAuۇ"r@V>D]#5"h ua2M$,=ٹGe7a#y)xl2G$a) F`ެe5c'b qd䫑p zh[ j@j޾qX*]v+)  l'O!2ӈtBjt>1M~{s87z, '䉹-|s06G2xa-kP/;M݉rYQ䟀=46"?JD0#:3<#(ǃX@Zq&_ A[,$@gj#tS"z@~awrf$)TYFW}i7ժ^M,`/oOѢ<]&DM<,[tMM}k:r'80^P^n~}l+ 4t‘M]"Nf% Syin{Q'4s_( 5|Px&`y-m]eoT*8&lx"ds[r߶@Pܞo ڇ@j'VBEZ P{r>=A9z@V̝I5/AH!.̩N˪b yt^LAN$t4|qڙȱz]G.W4bh?7nUm-}>[eDІ{4K-O뭨1NfQƌ#&T.VEd()<#غ-EWlbsq(,i/L-Z޴.M{)Ʌ&j vuEL /7468A#fu!p'.JdEÒܢiLKSn_T }]gBq(|VTsw?Rc8|і/F%7ظ<\i)TKxʦ!HxAMK69~sEpL_wY|=q/(dȢTKh 9 H?O\/E%Lg}Ull qoQ,D%X7o7jҾY! 8#y\\K>^*x"cbDvZRH=H/9dZ_2߷4]3\K*fz? Ԇ󯷓}"Nw3h[(3}Ҳ"K dV5g"^_,3G_G\Ps_yuqoȋ%_EĨf5H'?#M3cBvHC^2X6@XxfjO09c+sN\%!\,%rETV۟YKea cVj"~]f/6ESzF/%sr 0  &2r~?ǹ;^eJM.:V%-Ȋёr] 4k]F7€K,D>CJDx G`MWQN P1Iş#x z)}_(_dn*BF*JNCgGn3UshQDz,g( H&ՃDq,K:,@g$MÿPΙ<ZE*뷅 Z{cd{*5^i [|$$;e0Q*b/mWAHa Akze^<($u="#V/LA @^o\ E!ʊM,Sf_$][tu_RG+dsA={;T 붤$l˒8繅*#л. Vi-%D?Bu` K n3"2m2&W 8=Vffoxp`H%fYk^S6\@eʹybqR]5Pl\U#خLLI߷F(̃p;u}(kw+A/b6P:(Xmތ]9jFAJC]=~*k=Z["a4}⛜P'5QY* ,k˻9KmZGutF_p_4r6"a9ndc WwyK~/cU_4F*+J@Gw"O`!I뚩uم{蠴P _Ѷ~h9%sЏU[^־ס*;׬E9ȄCs.@mppPo[S" V(]I<%Uw*+E&18[Bwae1eLKJB ^Ĵ߇8suQϏ L_bc͡Ow[(~|RqhͲfvw PXEBwӨؙk Db=Ć*-}.rcU݀# )tұǖyeBjp ҫ^ȣJ\J4Gc6}$,L?Ǻ٣rNS?_,l<+:v'Cզpe5SeCb-8._oYwgtxX/rF+sS{'ӥV8$hc Kvuw4.)XcڥUS8R-PPZ[LMp47& D-!0FD:H3U_:Z,0eAk$Fq)RND !^8%r!~%/${}&\_&/"w gZ>`n;-5hDi4[bA%VkD.`Kↄtgʿ<`AM'![2< 8>Hom Q.KvihmR<¯;R_$ ߟ]ЭJA~mopce"JZ#Y6Su//꽎}\\X"f;HF )t!Sٖe2GQ@BE8L1?k Q AM {D AmM"< 6T0s`?'c<~z I_Nh&P?i."}j !# y)h uKD- Q]QG6^-ZKΟdrH>km(#B N=S@fx%gΥԯWwwQg%O*wD 8q?>tcJ^bk 3 La+-q ask; mA^T9q.=h HXjVmwv{{ ;x)K&op'#y9j7jZBP$fu ˍ>W~lFfQwå(9JnDM4C+&wKRO e~/玛i;$$Xw 5M-KTtIXzq zDA%vhjY+Rt^ԭxj&͓ ,xQ]1r63ET{ 1Lv`ntbZop?NJTtUKHhu}4AkUNm;xǔv;ضѷWDVe#\?P}Dp|1h6=ZvEkaM̹脿P;vk|DDz wflD Ca!Y+sDWBDgsHquLz^TSИO',9! 2e"/*->}x&1YȤO_]ب峯rlҫ&+ 6pnp$ f32!QyOIfS6ɑ)?e>ܻl3. LR.86D&XЙyaPtD _ushPNiX5Q 91p<,`:K4I6흲2GtPyDߏtIiGqq yQyk %ˏycۢ)$CٛM/Ñ^h43}!rg}Ta6q7gRC"b\nQ6Gb! `m?Vфf߆Ar#@CE*Ů,FT AۯxO"lz&ORxVA?Yd@:*ʁKVeyy-BâAT @na­WK6 X-.KOį3g3978"-ʺ%P msH娀bf/j1Ӫ;_W>ҚT/:\!a)qb%=[A9 ɇB92bf~ͳ;@a~eӒ4d.23&Z m4vaOiiG򳄨$'Nv,߸Յ8S7f)XJF=F., ZWy6"KtG}t]Ma-ĹxiWn*/Jj铁 j9[_ݨGyF$}2qA߳ %4ɱ兎!JBb~+TedS8C KݐB@v JqnVBH28:׼i (Q@5]졥yfX8-M29SQ&Pױ :7 цaWP@-kgsy46onq,.O-GؐƒAL`jހ\^QLOiDhoq":OVUzc׬?bU{I~ *y@IE#/Cl㰋]Va|7l-3;KUUy!3с_qP7z} ,=.rnQݮǛPiy}6{67(˼Ns3Rd-hr8߹9{GbuF\@nfK+n2RZE_]1 ,&!fA6; Ge:Ӭ5NP]er rۦH >)؀upEB|~4榶n`HOy }yw1 0Er7s{.CC'SAAL搏4bYn{c;^Z0f!f@z6އK4dFnb$}";)KkmGG(.:i!hN "svTPdԊi9sVa;h![T̽ ,p;z}ΒRrDȢu52"W+IkKBfWTKމ8$7sj!ʳ$l2:Σ.PP^e]v\QKfLā=ī`Фjש;>_T\8F}TD5*m%`a <]AWF[}{1@7el`Zh'{̏1?°OyX? 0N o_ m)+xf3Yg {{y j*_ ,v׹]%Rع[NǞf<m0>azи/%Ҵ'_v~X|PNq 6Zギ1"\s0ƝKwzpE2 9m.rM\va2*xw9njv9CՅ~_LTN tiR"/iT`d Qff7zZvȦ&',F2vI菏ZGv.}VWqS;-!ؿX - D̋?pOHٜNS)㝺xˡ@bGX?6R؊Sg̽@߾MF8Jgһ  XM4cK<.{BDaOa\&Z^ޠ ARN;i9\Jhy0xi|nYϿݠR \Vݩт̽Q 圫}[>EP{{Z;,1̶D5#`\fr%˖Ňy9R~@/Zφg t5eWhil҉$"uTU X˵S=YR-> H, nvoc"ڭ{A݄q'z~:z4c>Y0;I7z߻C}$2}`rb̜3Qmw/! kۄtÍue a=-q\h%턉> =}U2ޘ%' G+3DRIomSlhЂFM[(*HxO>9z>kP "3D< t)O Ҍ ފnDzpfVcί f]yUEZXX>=sxzkey { OEC"+ bUxAm{zE Oc5y}'"&!8f71glS] QOb]|L%ƒP  7X/M5q(zSũ6t.Sm~S-CS2dzT+4Ce~bpjц<I}kFLkS'.)͡+=b=dHDRd \0Ow׻;fޝKR\74yŮ"4mu''89nx=_Uqvrfv=X_AǕδIu8mU soC簇 DQ >]rGpC{[`*XD ?)E gFH71-$g +Jǯ-O0ǎ_Ý|>S.y9 G InGZدV-*jK__$7o)!h/k3zRb-nD"BvM[r?ErD}4dΓN7JDN-`Ng0NuͨKVA (bU&&m+gS |COUu=[n<ߣ̖y]N+܈. >UYpXP VX֬$v_3u-(*}l1a3P|N R{ǘǖ1ɔ3.qVH-pf.V?6[O{2ɻP3&gmN JeAJc2Wm(V~OP_?M xh壌:T,p6B0F\ԡˮmPYՁkΕ skCwTU[$^%휧3-]@ wCuQӔ.FݯЅௌtXlwMpVqrvT|.l4W.m5s;! Vӱ,պQFaS3Ǐ a(Lu 8b?p8j]GgO h2ɷ676Ē 6T!d3"LRA\=w%(嬞j$kQXvhP2lŵ,$ҕg`5N^An 2i*$"g)a1Qz+7u7}akYύBx\ 5}vy1yT*3\E`ɝZ.%Pr<e aHhiT62e4;c:O Fli.ZWK7ӲТsֈd]rq_ڶXʺym:~ry_`eCi#WYM%[(6H<(V3A;-D̂W3r䆤\j}B{Z)\*!=|40. ҽ-b~rOY=RS6LXg %:] hh0acdf3⸭gsc#R!ɒycM #5!DEZҼbLKxD(99N?ŔWTFZUyz%eAn"^-x{zφ^o[1}-$e6.5E! [2wBp,O,(LPdx$-R! 30^`ojt=J5YG/g/wwBCwÆ^&5%PH8O[5ەOWQQ-"K lV|]; v ʹF(:]WtUb1.۵45iK'čš_ubK! wfA/-CȔq|{ш'Q:O6T+9Kt!c}\?o-Yi&y86Y >*n$|Lks9"&12aWfpI4*-_^和7pYDHe3i2ϸ v^3vΞ=cua"\:b:D4iohHHh&ՑRiEa=|XN#{ hg%+}ߑqd(  5WR<1E?}:xȁv%kƇłӕ_\iwKҁSPO`L Gi$P Lk} wېIzbX`CKKѤv; R ?;٬G;2$ hޫA/3Rd0{ѣ79z>Y.'fbsCP]ny`t7eJiO5/ 'ױᱚ@Ozьz#knw%3EB"GtnINjHB!>[ߓ{pOCCȟ CȐ)wa<^*+`I -޴ }d*U4Mzcy,1f Isgo|oiWl.(y^VD0\X븊rǮ\f xȿ-!I-Ԃ%|>AJW)4[U_u63\ω%וs*G*y>Z\ơ|ʥ;&o]Hp䧁w&h+ gG`1lk?R>f ͣAF<+qr6hz5GiL理P~SfqO`quJ+]P63g %@C%vZN%O7W5MߣDc4br|qju{Z$վq~Βh^Wu+g YDA XnRfXH1 {)+K- ^P`5N4aP/ RAQ:CadCz bPc[F h9ps܏HAcj&I6՟sׯ60tjK3;/ĩk~3aоWaj!4&}I2 B$c0Ln4(^-3'/N!I (9+ rhG`.+UcepGʑ؄e տv 'm@4O@Ũ9J^h9]-_룠}!rsӂ֘_C[ʦt!oMjh4}WG,=A ux^YW sF_q^zM2{ԿB68,9%8QT:wϢ~`:3ķfU 1O/\4ӷi]c"GtDyW(C{O/&)yil=:'[B` nJH0n8)Ley|B8ΧsDla?Џ: /qss0M\]9A. Vܢ.ZIʜ|/W,43/7ϝkgzʫᓅNkrrü .fSee*bn;cОXSaq.TNV>vUl4&vٗrG-}޷s~KS)CǼ\.p¿ .9uy.ackS$xaa/o6/0C.,/(w)W+;E˛v.W ?јQu_P.{_&ZKt6q.X7y(e7EQ9 lAej lӉ׃ : Lx7&6A BڻΦN˞to?H;F(#FfF)`5ᔙ<ًD/]Ѵ9Jy̷ɸ47?\hAŴ^'?7w240T :|mVb ]2Utzwm- ++aW}Sc@^<.5 (?Sg#ob\r>r#^2 ~ҎvE.$AC`u!Fj=Epif~@gV*Bxvƞl"V[~HQՖ"KD\@,°3FJĐ0AfSҳ -`7'J@+V~ I͏UPQ߀v_ʼn*()di ;-)n٫ bsL.2/5o: LśW~7yv:KJCpD.;,&@ pPM2DEHĔ=`U' yRm®/s'*&A*Ep;I)^]`gkyb.cCȻ~Vrfs=?}}(kyYHnKވ},u}ug1uf\Aɿ\&mgCi^*Vrl_׵C'֊]g6FX@jy1n,j쇾2wgۓ-R?w&(IB'&&֣Un~n?eb˿u-e>9Ex8y'?GA:a˙C3Tkec S+A=|uFyBx#?:s)wr*S,{23,&P@P҈vuرRϚ >r?:(\Uڞ| f-PdsgM]`L1*K1{7ciYSܼw0lضUV8\˼?"T1+[@`Q RgV ')#2{d%JAF e| K*y46x`!` 4kDqYI'rѣ$AJn=⎬@> mjX\k+m<9js6_snzZ[oX3Ec*8u}mp}PT|3mmWFWՉygG oT\h`Y+5Pi_itVLf Rdvq|'. mPGa6׆7=+/R?uK!hTDxcbBh.$p #:U[N(3/zLvvA/dXU] A6t_M7=KU( `!|2:~̫%Bl!bg.؆tǻ|i܍p}z]EӀvЊis<N 㹚k<bq 5*ĨĚ[Ҏsgk`sh-s 3,2FL &$V&jU xwI ;2LttH~⁰ /۽3 Y"@Qv= upfl)W3L3Fi-MYڣo,!0+ˌl&i+>x o҉*>ثr(Adԍ z̔Ĥ8lJ_mH !І)!E䂬(p%_ُk+&"+AIuXj'd\R̩{*7:w`q7(M$ߑ6L'ݲD; #:VoLn'jp)⭔$DVe MCC GSflwRlciђ`uh'Vkm8@_i^U(14@.\dN|5/F$rQiW%1rOe-[\'P=]Rzc5a|8^eq4kSY ܒ7؍0mI:} 4\5LNLBHJxP4)lC/ҋs5dNyϠpJrvu;8;М3΁*얦9`VqOZMM^uhTI@n@v@is"`M=TxI1e8/h ;;j4X69O,R sV1J<1a#4q-MF#YQ]:;cNJv,ktY'f-0d/ 7ZΎmQJ5~ 7FBQȕKjb{vaB{X7?v/ill'E)8F%1IAi3ZilzW{+K+WGGiUz:4pU:RFkKr"R|ڎ+NGy *\qt ȭ6)]]XkmM%z` 2X<*obp "Bb5d(r!tG{o.i's=,?ZV}lf2*RgO#&!bqsvm/AVZ< rzҢg" 8me  mKhV -ow GAc-aɟ,G<j@4Š E4[c [\f' Ni#({m=l}Ur] 7(=ߡWWkM2u|;^.4CSd;m#ܷ=pN,#L9AcM_HgXo]]) -ʄdi)ٵݯjүEPHX(y-;hA Rt%Se t$Opv>MmJ8׫7YTئ+7Enth *{=5sMDž'8aմQ;!6͈Oa0paue2þ'PhCҡqy]V7T s\`r4#.ByX妜p*3_)te4tRWO'"X D2 oZ7}x 16=[Q F eyGnW}+`hY^J]JT DR mw 1cԊk.!guw{Qc[\>stJ =, XUy].ȣTSNw\3-/g1w$p2MQ dǜ21݋㮃V1} 52uE62EE1|{^5hMH'-(e266&D?'h7&:1^Ys9hf[ >ƃ0|x91,k?Wgo7fȡѡIrJ9}+$zX[">"Jȳ_+i~y㼻=հ4\H!!N0O]ĸ`}0c k)8RtDteD2WBP%WA>wa MiU 붏#eZvvT5U{F}ƨ`@)E b#Z2T=GS9vKNaV ?nFLWOaD*ŀ d ۶ alP9S;dקB zܸ-NK'2m H&ǶG5g~MQ|>%\ۍ/67G!/jvH<>>Zaϵj mҗ'`]Ժq jUpg뿟n!T)i,9KAxKEk|lwBE[6~gg{Z`Agnml[AˆHϛCpnP?7ڑU^u\)[D f#l,$|7r]pv/7:@Zܕ*V]*V,apW6;tTiLq/hQ3EY_!b'bPt`\_b0ZЩpp 2S0Z]/*& ڕ]SЂu\n`WޏAR@cו+JaPы [$ j:ԉ6jO ؈M*:\Uȗ u7|Ū.U #M7H4"J}N[6aPѮji=˫{dž=al,9.u͗>b,KIj]D>G|=ەc#SMN(L9NkdCf/Sۤ<ռ\Q$sJJRdIBn&N" d(*o@c8Z,_=.zVk%ݴϾE"b.4?Eޜ۴8EUWˏHy=@JzFmogĩW&?+$ aINO?w9L}6SVrMP>Kڽ*) -O/P OCI;ݾpusСL#XguצHjS4ٍE=Hl,ReSt@ T(-J`5x ϫrlN&͈Т B %585dۈs!sg`+vs>?. ~k\9c0^CJ}Uky}^!LFSuy:~E9~Vn22X b3!Jjh/5\ii5L'~M Ka-q0! TӤ)b؛#ʯd6kuQpQjV6P~؅^+rg8*zXC,Luy-%J]iJ˝cEx,v%ƛJӖcRhhH vwt6[M LZw?M0}p)_a]:s\:& AN?Cg5/gS Pu ,NE& `w:Slvl#Y>1e|C,~>Pfnθ"j &$%0˖H|zO5JoD3=t XҬ[I}wj{ŔKGTy&3MC9NB5Јܜt?|~P@3$bq3 0b~D+kph6i;0{Cw/02I~یQĖʶQ0 r̙^VH)R֨ ҏ5_#qM3ZAi=\UPjv]ԗБQO_XӄWMS+úKKw:o#Ŋd6J ,V$a)/whM9<bg4^qEܫ^2+1W^ 4hD-rs?Cu }F. 4z^Y ~:x=[vt&1N!# {orn/ ǠOЅ~5.q!nj]tmNS-,Z =~zH(9VkЯ4yZo6ײ!>Qk梩`=ez.g|EKvTXVƚzÍV"ICrf zNx:E1TI.{v{BBHՀ8 3Wp\8@]q@pzg`tZS|)V>XEK#04^g|@ b|ϬCB 5lTVjkti!QւtyQ撧eBsYX,}Ȕ_ Cv6Tjzr7y5p& lRNw'^YhÿC(G>d}`bN5;P.kdwlNU QD_t!`/AFcH$A:obU)jK=w(2?e:q.*~{z-(8Ƌ e˔y~`z;XvQ_嫔,PHuv%dn/Dݴ,M)`Ī]qWӷkB=,'3]AnizC{\tk P&f<҈ -VJFap\ZZYor<0R`8Gk|W QCv삏XxIȁɎ2W>x63e<tEF,y!Ǿ{'Zi{կ-K.Oޘ*ދޜQo<ZI(՚"N쌈\u֧5SNn x&cdw8A`osUQTSg6 !o SymcLjcbfNHW3ϢiT0']yMD72Ok.LY ~7lV[UTaOqn"ƺ{ֹ _s$I-ZU}6`-ȗ`mpҫ _7uEQ᧱eMU#67;yOOl~: wm h3+4ɢU[drei]OJƳUԇ2zfFEƋ2K?P#7ݴGĞC}@ʦ B`e|]G/>{k(3DKk O T*6Q&a:[*++J٥LkvAU 0 wc\%Y(T3BQK5_]?>g+TkvZ> T N>A8@O>Kr> K >w6rmҵk $aGNPf!>~+6j*c?M<#^\yULKR1*>vF8cy 1)nQU8+H-,>|\Ր牧Ԋ?0EdR=bC̟~.ݏ./GRb _F6-IM9p] @ށjBR ftlzq_eƂ @p8'Swrt{OIKni)ýO$.qqZyC]{WډFvmEMjm( GC1K8z QXxI0@ uw̬Nŭt\pym#}j >r1"`R8Wue;gq0mV.1:օNͺZXݦ4 lk7CJӈhAnp ڕ"iD8pET0g7J2N#eOsO4MЯcUr%`F#M|BH*SW l7 y.WOzkJ)g܋c[ Fy쳣wn^nlA.#P&~j> \9gtMz؊1h"{ݜYN=`;9s,Iu< aI J ( G"$F{=(ևz"A჆TTȿtnɂ@9~_9wi4}PY15=Kj6L`t@8ȍ4-2I汚+\f-9:_Z=LO#iv,}%M&-<黐ro|B漩O3$(߭H{}plQN !d{c =њqvl `rQOӛ:}s,hZL<]Ѧ_pMF> P\.?tU {<}R/R yoFCٷeB@y |6:¹2ZkB0;Ѐ1;tJr`\J;H%"+b,YJt<;"o@1w_Slu[2_MlK/&* \~,ECU.gQQS+N{3l'uT7(~T=HM! 5ÔcP'Doj;)Xx"l֏=D "bǴfV{>/>2~-"-3bJeT9ƽ PɕهОƙlXvlj1:"tCg+DِQ8*G_-UM!pvQ%Eo6$eZ❉2f)ʍ̜L$!ōO8R d0_]1{$[@np* 9h# Bh8r1$h~L5iOG,p$$Ŗ7FT`^ F7Ai!H(3EG ?ӐBHG: ~5.{DQBXL- Ⱥy6+2|,K3 EWohQg~. (g+;F 58 (T~l!,].綖N6˛FUrD-3LL֢DMq\ٰ*Zlj4<,XNIQ0ׁj~Tf#0)K`G&gy]P%%"6sJ(W0OE* ֕Oir#W&‡8c: Eu6; '8殊f!U ђIxP~#W8-GDL#VoHTg;mH=6 ҽf2#!"R. pҎ ZqInфbShCǬ[9BI+Iti T-EdK0 Ur2DZYy?{"hT#_UWW 4ˮ]o'"O晾Fd$h ٍh^*+i֠tb̢ A-9&X{ҭ0ϩr]ܝClSӏ$] 7%)z?h4ΜK]\Fv]<[",9 ;mKQ"bIkZÙBwl4r|XVګ9^m- ڞ¸uzĉ٠5tXF`R-a9w&ǫ8ޛZ?=a?ksmS Gq6>l|֑e'W|S3A!ʽؑKY% ym^Z׿ N_빭M,`;0ĕb0.j<CEv%j#>@t`$oNnלV+~d$j;:m[>$&vx7w[ib=Iy:OhL8HT%:^)+_&H7wf`[TW Bp-!t[x%m8P$m(j x:! 8řASb9*rVo5kOE*m1^9P\S.(?qn:fav7"9d4;}k"Bx_6:/.?KpdāXc@C5l0?H*O![#t-/=^{īTqȱ^"WLsm7:J=c"dFkh$ +x㽭"U[0I؇f;iV}ZAH1JUS1BY7>U R є-Y2ˀꝪ(o?sK63wdzhisT{;ΦST'ԕiʀsG?[r߶钖m\TfȨ [/ e7aT6? wvy!% ,4>Qo)2HAn,1.xb`ku?dyֳCrH}/`LK=լKrWYLnbf'ͱ榎^" )Bd}*!fgvVK<*˰GL[ 1.#`ܩ/HѶ^ w;?F71*DZJ6٣{УX|Cy3''4vg% rQމ0٥=OG$^ZXe\ Lm.^Qt.mNps(G\7H!]e]&FҳQjS=tlz/j휅.!USSmrצT-aW Ylcoe=?ˮ @_r z-8$ 6Zl-i& H=WBSѥk[ Mu76D5c "m_^ʔ#Pۦ @|;9ehIgqLAF=OKESq{ u(cdaiBKҕe"8E=s 5a"ekk)(ZY˔}ba!,q)9N!hDj@`s&>hSI1U03Gj_4'ARL$ڟ$F+YTtk$G]٭^̩ͅn:LD5^S:JQs:@>96ϻ㇁gtL| MXi%`S^b.;X;rhm³պYTXN[g 8}| ?~i, koh AO1R+[GfH[Ic;Pr^,@u~Q=r xO۴x׌/c|4NT`>q.w~0_괁4w6qq$g@SmJIcfLi cF__/-HC'$pfc[<v?,;C(-q{FFO(ЋxWIMlmCv?lԥe| 8F\pJuZT7gH䠘1&XKVޛa?_7.Ud2MY ?Rr5l%ĖT>k a V9K\);l6)1Y)KZeof h,<4fW>?  yc;vE}-GpAG(Z}c/дƽMl5冭'5fs $ƒ\g[[E*M)S'x M/f;JOr1 sANqFtlOɫN {ܑ[ 77fĽCilV-KK6:vd?ꐀ; s}[ԑO=~[G$4葔[e1VyhEqwh^O$Lj~4:\*mw)bE)^!ϏV+~ÁMdwZ$ Q [66#ӻVpKRFPl ŌumRCښ=O%3OԽ#۹?(8;VɢJ%ҝ?ѤI* ac*3iͬvJh67C dfNkWqX1 'ϊB/XT+T~/CH.O 'zL$;4ADu􃳯Ma$[[H8Ϙ6 ?ʱSڕ:gZ QGo.Ltu@zY86Tfj<fRn;ϏOl\3>}|I.[r`Ζ -&b zsg-j/3_% :I KsMYB@3 xCP.7K=DQՏDs?/\-|c 1 N{ȶJk뱉X=JF#Q['pr0a-^ΖrvF5!0*SAXтrxـ1t [ZSWfK>z}1vvv?CS0zfA (ЗRQZ)9[>+'y:<5TP48-;?Iv<^knST:Q}? XwpFl۹GX%!V^ax5ˮh3B{ؔ ~si7 5Fcҿ[4a[mC6+ ߰7F<#@t+ІS`qo~!2Q9Iw dY8;sdYtޗ<\m4+\tlG%.$ċ8oQȀZqhܙd-㕑RmyYK־OMY|尌e2S@Ln9#Glvrޖx(C*_䎋ĻԬ^Vt_8ו[Fӿ됅!)!5,o9_ >눖_$?}GiB;etO8דMߘQlIjc\gRxqVzbNo3͠zT4q٘M7^{a(*";-vQ<] `[ssB&]cd֓gMxtNW7.VF>ذ\dC Fyh Er$+%8x8ȟړlP:QeWSSoHFUC< C5H%a^ܨ=pjuMU<JAS7ӯl^'bA1+1ޅtS*X4HqlmyiuoFCUi+ |vm u/ wR9e:\p`V9uk)Hǽ d 7ح㎝ڞ|t.sDu^V~c1ERA$թ+ eh4y2 +n)ߘtbŧ0 x'TuqkUcD[1飼Uԏg٢yCE8oYgCWoHP Y>" jq7w :!f!ҙ`>#$>--}o徭 v})UPypi Ke`~@fKɼ|p\u(DUvn.F-4_a^JJ8+4 =EMt傷nKˆUQn+!Fѫb/lPHX}g¯)EUa$3qkmD_^̘~~ۮzY9Cٿwhv`VXW x2ƚDTIB3&F))Od]B=ip{$okʛoGWNΩ!%GTx(xzbybe 32 m쨡JZ涭siGkovʍ:GU̧&I͈݁ƈ! !C︴J8|Q&\9px= A[X =&/* Z&UeO[vd\-K_@d+FZg:%52RYCc͓N>kHZ}v!76snzd~?u[09qxxWdo;]GxpV/Yjco[O.,MNkﱔ*o`U8όf̴D&V~,nHD) |>Vg(P/P;ٯw$ʒA:Ȯը]pxdB?)D`/~_TsѾ>eLl[jd V:諛N2g>[ۻN I_v 4*`Ca$c,Tv\x |TF"j|tIXWK'a6"FWO89w@)]$P[x ZB5ŠU7USIn᯻6|)ӣhnHQ.*iLʛ*`4S+eHHT絃.% -~-|rߠ~RwyU_o~Ws#a%.<Ý^^xT۝YӌJ³3X.*4u8}"GCd7 LeAi* d|rAKyp(̽uD§f'9 6!>z{w\^#7}bftͮTmx@dK3Pmz@tE!a FR3pufQ6ywn'2@e2P1ro e]mP;%, -%7# ;M*M\//e; bMRAIn1@[QgQ><­|Y%cP?l:]Zk]އg0a ZH}MCu6$$) 7: 3LPRׄ$lY8wCn-0:A@:_78odu'g m3XT<ӔrvRźe1yosgCoa>c%z=0b2:$[1P6#QS/QT*  :vHP/ܴ?;f%G21'nFV( qH,c["]7+ )?우sdbZS$r^:ٕpRs۬ӗC7BbA[ũ]jNA탅 "^]h䦴UE[v]T$6@yxKE BT V>>eO<b~/\FL]*B)YnuYP'BZf 񣏪<; b1EךZYM+}/,k.XǏH,+yqz[hqXX-W37N KX Lcֹ v +^n`~nu'Ss< Dt#2}\6`)m HRTLq߱㈔f{aOC/zCXvz*TLzo$ȓa!g˒voDŽ|9d7U0xHߎZ`! [Vn8?+[6MOi&4)^ѿf#O; :_e6,_&9-Dj&0ڛ?TtzdUNȴQgt #h1 CpKɵ}z܈Jd|rn!ϛ`pQچ;v_S}3΃>7н,#[/}_8u4%m/fP~Z3գEY#Tȃx8uF{|~Ѕ] Qy[7(cT9Pb N-gDwqC ׬d*gJokD;'')`jxѠE0hbw"hauJmV|G08@=}Y oNՕ5{巒b1r{ ]˴xަ< Ĉ 8J_PBe9:g}h^`9`+  Q6iYA.]ddשFw%9 }⷟OK1= ?ۼ<΢h(HsEʾ5UEXo=ՒWK:im eU`&261|7kZQnFԕNf啿6R %QYW$z/*e5+J뼯CnQ+WcZs1[h;]W10 r.b7ޞ3ԍL__ {C>L7Md:Zк<, &#EZ69Q2, igLlKl+@:mZ }70ZUp0}Ft;Gd"g-їq'd'(Q[XnB &7l,;b8KLUJbGQv 2}޽# EV2T<͵T& z}?6e$7)Ti<TMs+Uq]07BՔ5vk§~7v/0=6ITHpEI嵣%,3` .E$V(*?΅/tpThy~|IMqQ=$㙕z^(;s(Tu~,A+Z^ޒdvke`~YfʴPƵ&r [ڲoN¶p C2TYxmY> XQI722l )f5l\ݢ)x.|׋$%sEjbr }d9?TVWoKȮOi3:QjMӇ)on]*&Au/kjʭFH M7o;I}AUeU)|%%dxBǃKxk8tB|j x$6~Ynj@}L}_gm^tG¢[F0ɐ(TAc29CzJB #MIs5 7ۭsP U5)sE3ZdZa 9iXIpny+j bY09@p75F o_{[/T ) 38#'˔\v2LALVȉI|D,[^C!hqa!K%l9BoIz4d>!B'-nbQk }$D-~sr^Ɠ( ڻM0,:E^zH<0]tEs24 GW*tKf39@L6v4.pqlNsgW#kQ P wʒ@z Ot+Y grյ;,{DoXP9=S"2V^)㨦Z:E+䖝 5yɚNdēb)(sH/qiZPxvH۷0 |҂tr%&A|bTbV,Dxvr `a9)Y?{%) Zfy%*l֘59+j(,3I`N: A+^S|}gccjċձ.CvzߚnWs\"5Ԓ F)DkV-F3[~ߝNuJW*dS7&Uk(Z~ǝۀRC~$@{XCzqd E-_Ϧ? 1'=~(SgIS'AGV\A @ eCjeEÂ8 - R2 x%|Alŧ5\DT`/YԜzMuI1_ `7 )8ѝ= JfaSm uKML~ '.6m6"ÝHhOO\k0PaD IiKUj5F-mω/JvV~D#-٭apnQKPp2tP e*m+'Omt-h*ۻ7X1=Z|O}¸qNpN/O DޚVӇhC4)!/A_K(@$ameO�7iU[܏yHÅMPB0bzFc@4mT8o,)hH{wy2fmnDc6Z7N#tuZf=D6G<.^tp6r,Tm+˷ Ok٩-$/S =~bt`O,qHDC6G:]>Y=2_K9>|sy%=[n)c:?rͺ˯ߏAgc1]OΨ APZ#;ɞڕ|E39}fP_h:t P/z~gzec|9%D(>Y >ȤH0Kխf-IG(3Sth( LS6E9Mf_sOX'P^N.V=33)h#pR\Z"{ pu+;N4Ai7i\ 6kǾӽHNəkcObmY8n-2,~y~mUHrC존yA;~OUː~|Ugx&®\/vaF_o(9gI76Tw˘,j `8 ,VfiPl >G'# D|#O_d.&'i2b'`CS(YT+0gW, (KR망CYha2mF8p1@vPA8@E1'3RKBO.KmR1Nz%̬ /NǶʩzqMKٿɝH\/I2;ݱaZCqnR'4Y%E|8cYػLnVAIZf=P =n?oG=a'O``z_ 'l/F{τ㈓V~sKpAp#ek /Hk M]&$ TәnjV;چržip i3|:Rr4̴G[>,pKYh85|Tv,$X 8W洶/F xC䍐<3R/ ?Z=84FV~l#%;;=;ɘM8Xr.Y˒p<{?- fcp 3(-bVEN!|O޸gc{0T 蕂;3ڣ#ޗD k/1*m1ӭjDQl{g4<ǽsC9z nWTK,\_JɞPЖ^h-6UnI,)`g=gA :`ҩڎxT,it,M&qjB)DKpXM3eYђ~ ;څ(I9Ži~3!x8( ai}j5eF LŠìP6GAim7t,JNS.%qx`UDbe[a+XM-ocțd;9T?-jwBó,2UzLpEﵦ˰v2[ɣ̘i;/s"XR] 0m h1!V#D~n2Hz t#H=AIœVNSPнǘF^4~p1Q^hA&>-wE`XY!(epƋ5KZ6\D%c6d!ҦRk V;t N쯼J;?%*R6-چ?Wka6cHB^#yK^1c}Z -sU-aԏK|U'pQx'a4 !`߃zoCB6Ѧ,D<39c|~ g(DHke!{D^OLűgt2jݖ|qK-y9~<#˄R@цlqv~a ueǭ֫*Gi*-SCq)=_REpQ)Y?,M#Eֶ1S^95 L+!F a /9ګ$nDp_D/lK^Up\B>!N{{ )tSMI\uw-c1ms|:VGo[ nCoڊ3ڢH g(U.o=QiS'}#Fϵ >zk s6\Y>A߅$L4Є\Pɋѳ+M3f:ɑJqb+˟WUW VcꋨMXFv,f#VWoTn3g4눍$ mYxDzƘi͉q>t"„lzT y?^W=/.6zwAh~ފts2Q:Z!5pqXv՞t9.-S^WSq>@<,E!!Oo,^?a7W l[+ABM<-pie+d]>'^i$NCw NhGnR7|X V{~.ߊ aś!KϠharؐ4cv<='橛yJfCB48,,!2=% kfj,tÕ6`a)iۑUU}3Chf%j ϏEPS }Z\f_SrN!yVL!x+$,kj XlzČu5>|k`Hm<zTJPOUMG.gomU,B#D@T_ꖖ2dhf_*Z/+PZX[@&gSlj|g.A ͧWt%vӥY L(g *waZ m0\in5gT:8,后ul1sB8iHnW:G2SOxH#٧YF|IҊU-e\ﭱ6|ypYp=.pMG4jb4WY4r?$ Lռ`JNTsy;Vj!Qd2zKH {X1HKv3l7Ƣةɷ#3x>bB뱸ͧzElFr(}q gܯ+eK`Au_ɿ\O t0JJÒin? mka UZeI};%?yf. k\~vҲ,`U6M)USchXc?"i5ੱY&oVb.{Z+cXֹ}1 ixe?W7G__%:Zz=L:F?qc@Pt[DϪUtƒWz-l]h]Δۺ\5+#NX'vDgۅߌY7Mk 6WcLu9]~o#b6L;3=T{^IoKC ,W?>O_9,ųt?ϊ>Y^&ҁ+unq2U}q^f.JM̥ajÎ,"b0#Z1asmk7@n&6 2|dY0F_=Y/i6̀Hwx N6^ H$ Ir\% zmFRViŮ(6"࿲P6 όlsח9"GqSķ:sdP.- ~ۉShmqͭs;I&!Q6-}ONR6p*K;6`Y~_]Nc8FUREݑg[;VMƜZZHr&:Z)+BˋW)>Za ge-)AKK$=Bs@q)o鑯BF8` ucR/(|J86(75Q09;,#G]]XKϸFۉ^v4`:GE *ЖƳ5/DW@1Tp`E /=*:b֙򞬒hҨ1W]yA>#m䤬crUe  & !K{asaHՋ8r$R; x$B#\Ut8 "v7 F~_ńy4.>wd_U$g2Xghi%V{S*FtЍ?t/̔qYa\fo7v[P/r7I=0?J^J b_H_aAC&&/5BrrݗGw~Aч,wj/t3 $gN@`-@ڥjWĐ1t||"bkGϑnNmcV7d- hnJ 0T "R*A3.wb@`N>4*FH`>09xJ5^grmETwkG VH(<l͑U9&i _7@E{~=0WE5Ȉ-J ^nVփ0wr.rPxr(Uλ=_,T[xn߀V^* 9.Zr_Fm43ֆkn~D'W c#%w$Qloԓʅb 7d.Ttg:*dke^SpM6 3C2a~Xx (|qENNc? L'K_!r `ch*g'-nmnXr60޻D /C]֊ӺRX8n?db W#`Pg'n`Il=ݐ 6%ňpWU%0ju3z\pS tA֋W,0 /A;]Pu. k~pzE_cC܌IB@6H0sg ΂HRnIΚz躪 _=U~_YX3%M  6Z7/T֙' b8o(fWo!J2Ar+%hJǿZنϥ8ZChoT#})FlA]% 6To;M@C#ZL, 3ige_bZ5Qع~qnL2)}|A8ϘQ͌ʸ]T#BܣaӄbآxuHA"V5>[Ģ㣹s o[h)bmOmmZa0 JIK7 Gc SSUI'%!dȠ?[Ҏ~zE䚓ȝ7Mϵ^C(-KWFrC- y s{^BP~)13`쭀8} 7q>/ ɩXtPZwU@y5r4wdDZ=5$YMӮ!C,u( GKn6 <#C܆NvE D! 8) {Z+`#t2_ˁMфc$9m pBwO]ݚ:4nҕf1.ƟnQ@~,6cN+h9P Y>5m%Zʠ)Ep_4ȕ}F/:OÛWa:IeVm ZP5vN6#(}h H\aWB#GinBjG A}S<ךrύ3q@G%masҭq)of_5[N';$BFJSǟCt-Xa6i2tͧ|a:l f_Xpd,[=꼹oݎ7%hx##Bx0օ9^:S}Ϳi!BzK:s_/jsy24aD~ =xƾ2r~`Dhc(aNf_i=k<вqm9|+x$z.1pHqoVVlwl.KJaq"p##::XqS/O=zx и/IL.R䱎 1JS?kmP.ԣE!̤93?|0nO"Wei7&2ygUY^0e68h|RB70\ŒVI`vB0c|!>##C$aAwo> g XxGrtideOqʌm ʇC[gJԕՖ*k_iFR7Mrױ]v螽mIz xYr:ȣf,FqwB6 ~G,m?G^%i)iaCZŘ @&8dO-*: B۔$ IOI/3Vzd9[_7şvlQ]9P]ՠR!Gs9uJb߰cR˧k sC:Mi+5eZwҨLk!]Wn=Vj{I nKu:eMTr!Z ?73ruO?}e!v6Mz$GuKXPゅl-R*OqK_U@= w*"B.@k#qrdޱk/X3Ry܁Yp*uF>+8-t_,Xqyo-R+su'biVFN&R;z{9EdrZ? Ʌ,YJSNxxۨ&wFU=!]loD"ED&#2T?;!lDX|SVM{%wHnfPFX-wkw+u6dVAR !+_c|6 V9 s=~{a'ۘ$۷۔tdXF a/lTe@|@f'4^:keΤ8w>R߂3a5!YiӖS3>:,=ԛ#ST7`;sSw1g[bGD/CX<5b3J+13icz}\@2izC,>z, O&SsUe>ߘfj00l0[pxh97׎|];_{~4"lLG# -Km]7P@6%8c9m'=kY@]fG8=U[ku{?2Zw Qg+>is,~)iF\w|&Acڬ|Kڣ\K=S >1tJL8AvlH%~%N]qu-G(D?TKg qtrki?y3 J{bV$%Tux&I\ 0عhmk7ϊw;]w9@&sRI sxhܯ gSSvpZm:aMRBE]K֭Ys=)8n6w0vyi-B<H*;ڳl&HyluGu¤|ΐ%$>);e& Sޓ&A!dfR!<70dva7-n.wĕԌlh<A8G AH\dɏLu)_΍̪Zv oP1aGr1Tc$mIkA.>xjʨJ[4Kr5ņ]xwS)P*B[>dJ_gP]zk.Dڜd;jepVCn >$'M'N@HbN٧%Ρ#0}NwQ2J%쐬z;VpH]sxsݝ6@oJ?v @b>T-|R륨iofn45!؞\cUuF<)R^-x?5 pJ߳ܪ9}j[s.ox(Z=_ OD?Ga:q ~|0Էu/M ;`G d Ly~3q S (c݆imJJf)&aس S,%ws2xL(U4VtW'9_97K fȇybiP>\ȳ=ԜyS;2NKBL4]FH/XI(Mb+s=5d z5ڙ08ALΤR ܃'Ջㅧq_ ?MFUNk8uk~A0 ##0njfp_Xwnȹ"Wi7}~2Igrν8CpѱS*9'&{&eagtbvc*0UQ9>Bm2*OE{D,=I 3RvcxBLz\AZmZ YJ?$ږet zCMRPuHv"xx$q]*JK%F!|M;pkVEjU$fYKML'9b38>X{r$uU0r*l&6ɏ*3/RS&m{`J]K<M\qu^$AX0t3L.d}5k<3VcE,;i(3,1PkO%N喳rJC;6J-,]2))W,2DwR;AH3l4g:&-b-| MۑjnPW4؛nI:XCK^qA]g>Iۅ[i, ]\!]0Rk9_cS ;Z(FQ%)F_Kя8oYqwi=P?,X_ p|ۯ ˽lcH([k *S\A-{%ݬq3Ou^tV\і_J8I=;M.8ӚxYZl CbuZkʬJql&]RFyAly y#v v[WKc? /w+6224?/D^! Eym|P$H-fl7Yiv3׈=|ڂ f#_(cegtB1Ā!©;2m: *+*iU@WJS,>w Km,rs7S uk8wˣhVv !YG"펷E j 'H\կ }3Y#2\J)[kcX/T1:MBb1s1'k{Oj)]M+=[Qu:M\Z)ؤo0J>jKW2uʐwB$|U򄤇;]GN-~0iz2 cw/Ige_5swB¸jc} OAE1{"fC6+-Pg'9 p U_MC+'(,=,xtdnST5)|0ܰro/~Qn]cL"1qo(!*4 j$?i-2ARo3LGEZ,BAoń 'F#!8Ӧ@R;te`{ثa8- }7BPE${@[bؽLpSaH ټ*gHAR+;dLX34gc3S*PlmQſ Syb󐊣E O"6{DD> '8@ɴOPmáł 'X]1BreS%Tlro_>&ڢxLK b=)j'q{鐷%?&}8KAI>q¾U,RUOSN8B*T~zتV-F脥I ¥&<е!gzWĜEmda6ڠ(|J2]1O(BsUT۟zWeODhNW Bծj7yJn[@|ۼ~FȦ ;;/Wr"NZ+ۀؖhsXFqQ9z#)H3)ts%0?p"Z1=GaM O@@X)h/=77[ dX1vv.43 !:nuS/w2 tLsGRJЀTv+LAac/Z %p$` A#PlJ54|H G';H19 Sԕ 5RVm[z=c!|U'g)@ ^4o${5YW-'@^SstaL8M ,{w l Ӌ$}$+`$?G6$R&lo)jr0t}C?bm/%TY(<6DeKD`vwcs:%@#qK>~h(_!g울/epUG4)̧CUOy9c +m#ϗ@޵g纁iee ֝_.\>/xF][@U-7 mOݳc)9и/ɫ!LmغWVKrn d9l >}W 2؞-mR2Ed ifeASS(,y2;9*NG $מFיcDy3E?J7ջAvOI? JYp,䂳Haٷ+25 %-\|JdVt{ [n_氣gg e!o^B$*k5MM1HPWUxzjFT87;YJ s\;|/i;%S]| RWJ11N0=w&۟c~鎧,Qc>MD=qR2a:i:jFO!E;bQ87nCW71 Qit](({J8]볻/v2]);Wa2~H S R&6oDQgaԎmaO}`#7>+IlRe:?gd+Ѭ 3?1ྯTjfQvI0Y]jekQ~FAn W񅀳WF뮺K7zG$Щ_QmZ[*9BαS} ?[K;ƿO%"ZM (m}A(Lrv({G?5jՅjMjvB=j܃^$;h>Ru`j#ȈЖ ;ӤZс vT6< Hs)e%yK05G;$+tYO 3GdT=(>/FF7YM`Kޤdpu47# \q[dQ\fO, OsP,UX}9g`fs P!\/mt9ۛg8u딤YZ:&%ҳs;?}wTEiL)+P]V x0SSϓ %DZ+<'5v)^5Af CN.\KBmp7 @.#zz#YXϿR;NTjNQFӝkJ'uzAK_yb|VQΠўJY8X䉪zNe&codvLJR⧹MrV+-NcfA0Yt7YIYaci&{sН=#X= t6eG r~ b>vHȞ9og u`V3yfK4c2i ri3VJ[ފQPT-`y?kRv+ebRR2lֆ0@ڲyT):T[ gK`x'n3Vޚ;7ȹ]D>@'wcZFnnJJjIG-WX˰ _R74KГP߹ShOFbUeI>yk`ƾUA ﴈ:mKE9HP*!F: e  <9_Uq!Lqi]Ԁx6fڎ.|1jihib9`"(=Ung.=$lCr4՗(83=ԗ"AwjVNvZ3 g]zWICY͐9'a#T==O&|!4_S쓱t=AEH=(jYSaH˪P ss{| ?YzxkÓm_4߅6I8}b+H?CW OI6f+8*sV,:87"VF5D? d2痎O ;Ede_Ԏ͔1BBʥ .c$_n0T,Mr=4j>^#o\%;oLNCo`!]<{81&cBd9v˜7=1^S>#~jϬȂ!iu\y>S g01Od3H̗A~H{`#0wQ !t볱EMøkFX\ o% CSlOf_\~G[3o:zXs* EQM`K*I+yVвNT.IiVI>'1N %`PDUл5sc/AKCAnA/sO;6O퀪{ &2zR4FLǕ/>RXsǴ;L"sF>4FVlh+"kMƪT}@4t|@x9ft6sSF r͹WX+n&5c!XU6(HzFSG4a_]wջhd ,W/ikT܅Rҟ4̚>C] "9͆{\_ I\=$Hzu,$ؖӨ`/ G:]|<9+` 38Y"\gx㲐.Xh"hgDauy/t'a3mF3Qu:k^ev J\!%/Ƚ H>kFw!ha0E=Ĉn"89=h3{y^M9۬_|bӝ`Bj ]wްq xeݝ`'\nIޖn7CS/bL){CQ(1g,;PZHUDs Iwk00#a|ho-)RGbڭ93BRP2OqɈf:t5i3OP`EhPr1 rPoiG R(N\E 3>[XezT8E DC딈G[k|T'TB.qTULGBFW^^cL^ $P/^J" Bi*os`i综f+LYuLbgBw$ `P³ y@q1CpE4,'&-dԞϱXd]RiỌT !DY)ȺNprCMQOWjUjl ݿx;^ѽ>cvXĮଽ"aFuBˤ'DO/+t$]yHM[4uS5B7?g+b^}Tԉw ^ܫgs#KlMv&4-Lvl o$)[LVj vz9l< zdr4n4\FCֲ{ H7f5'sZe.c)_hXAp<[JcjhљH{O>P7Xm* |w_{Bǂz\&'˘ƲLW 72rro _W2xm$"X_U?wqU0Ve@9,VkKf3Z?G<7 RYr2@NOT彝XPm1Uw?N^-R@~~ QY+=PLʿwܚl*ߙq1XF&k44Eg3vyRG7N%+̍?,gNZ0eAי2du+QSscx?4E+TXJUhHb^"!A6mC~AzEcZ}?{%BXf*T%)} }%BjvJnlx aU [Hiutr۞TaY\iܦB) ,Ef<Vb^HSHt+c/0łTd>l! t&_Œ|LE>lxڑg!J'N>_UOŻȲgM|㇋Bnky9YXJ6̭-l>q 4~$((bIHfeٕ%+.W9 [E.˶e"h"F%|d^9^ & 5y!^7/;?;O'Idʾ+nXy:; M8c3Ri6l&w-CGAMnj C´Mߕ!qmVKώXN*f58Jf1(Frvϥ[҈?_oq _&ɫ^rza _W1}}&DyhxtPPCxM'xT;wa4~-s}lkCV]fIJx6ȮAڐ+='BVۇJ'ToW4è'Sm41'GPUSyo1پ\;Xz$ga,)FNTuM՘/}xp/|3V 5^`;+ɨ|R Vr1WwO6x,"ПkBrݿ<&/h1fq秊(J0MSF_x` Kn;۸^bs2(D!V ) 4Ҫ"(Aw9:4P35=vx;ݔ%9Sߝ'rufY$`w,K7iN#_khlAv>St! 4uz% /?’/wZJy@jXu$6DC[y5qʼ17{Y㐒R0PYn?0,S EOJjq7]>Lo/qc߶sR)bf]][/Ol!0T]UZƾ˚788vV-;29{|C·c~rJ$IЅQ]d77fQW](iBiwNܳ؎tP`F2Qs03yn-9`Z e2F:)?yMdv6hbY}I K̯-V;GR4OMhlĎ\i`8'4l&q1aVP' ‰5*#vLBEw:mx F xGEw?Cd}S@f84j &|ddH{ڌBt3u!g>n$Dݰ7 folSQ_'2l!}zPKѯ;HSؚ|/ĭ;הg[8/,%ҞɇD;`ʼYG̙S$*pв{Խm-\t݊3.vSG` Qz[ ؑ89 yH;h \x '@K Nt[v6_\< { *5y|" P0/SKqrHٰr'Ae9Mga~ :(Շ#ŜkՕ/f"j< U`DCη1\5>yN)ծ -~/Gt @`)Jg\?m|]Wha4m-iH^~bu䅜2!L]R?;kGP&>ipw`\~i!r=m%x=У}=NxF U1RǮDD: ^oh ڲ% tןO&$ThNYz8z-xuwzh-6EI\$<Ƴk9;ǜ[BN^Bt^.`##?~8q]œlDl?2!.# y]VM Eߟ};'#'PޓYCSڧDkAS# dzz,MΟӺ8)3jו65e-T_X֤i?`sX(I+O{\})Dh#a|*Hy5~t&byZ5@XܿIc48nrb-'ɏ2L: Å(X:RFqp] fnq P$H$e5yt{"섎Mt=7YQ6ڦHmz="[r2oq7G]G*ɒ s#= '$J`-<4Y9OUjv7<c既P+ܔ_"DMǼx4q0 іAzq#iix,@Adb8*gFHHFB v/t(8$AKуK0nqϨs=tt[ic_W$N&K/(!]Ԯ&dsȕ  3?~KZ,qYgؚhK3340(+6= pKC[H_4&-AE|!H;bpN)b Pt9{NTʢϼK@K"^^y8+1R}ê?OgmlD<><@?|=\jK5uZm-BzBIw;ADIolW@QZ!5adׇD _!. 9*% Ҡ9}y0cḫ _U+C<95 mLL,*IW6hcM%X)W)o;Vl *ZZ *72 奪|xe̋>I߁j<~߳qs'=}~"e1.xcon+ﭩ/:b\04,phtS|| )cGƫa*`Kb{f ~Fa9`P6\K&\!T}WBTisxplxśQ+U#{e&;Ѽqfw=cTw|ASjOoE+Aۡԝx O\rDOͺ Ujo9̸t;Jw6%:6G?teF݇m}馓!qyܜ)\J?Qmf1j-66E^}t;NU#r Xf~(P"|Z[ Kj*ZS%54X_E 31'nd^TEEV钤D4lҤ I Ybuvw9t\'[x͞ZCZ_faW|r$'jx+*RN9-G?NP%؂n&nw^<=.u'2Z*e=" 3G\q %9eK>4qw\U.-āe;~&u2_y['Pm ? ,5WNR#*Y҂LrыdFKLA,+=cBþDa:C!'z}b $hZudzJ37a>+-X V*} iySX䜯,x6!t5C<  =z+55*ID?I*ƫO66b7[;RךcWXȨ=htO/ QYֺ HIj ] 5z5h5Y;8o."i4ĩ,O7?s~Ĩ=NPPEɈ+uƎvVH<[F,½?9g[td^ NR0=o0 0[Y#EVl=OtFZdk =1BZ5;IqE~mEkL=K0گޫLHʳMdi}.f-RŴo[RmCA˽ߕz4/iHa3 ;ULdYIFJSi(/"I|?Z9ul-W ͠fuv ]*!Ds٪J4Yy:&c+Q lO~.?qg:,QhzaO>˰!+k:$ѕa+ 52v49^brI7wDOOl`p_ҝ<9=k 8#5zW4ƛjƯ8<;t|\v, ?t.<+KDi=V9cHmUf䃞B칩oC!lۜT:}W巓M.W׫ H&m!Ev]?ݱjɮNsS_`Ev34{s)}M9?Tc'H( =x?RM9~g44j >5ŷYcS )ޗɾ @+$0hGiT΍PVF즨~pXYb &;[RhtxcƎAY_7_K"Rno; ۱|l}F o@&S(FtɧO6-+>(' 36I:q 2V7͆֞L9믷NO}y$LI[1w3^N78r7 4IiζkM>R]b$3)Φ<# 9,lE\<#`MS%*!0jV@XH9αz@h49:`ՊY\Ο$) g7OX? nIaڶ4q~סf7o ?~e/)`/-u'J WUt F&H3uc`T!1/Ù[?vL,]z` &mc, j˸o1k+)P8?s!Z>6Ÿ-(P8P1b쫂'bbeȬ°S ,(cH:ٴڰ _gao-QũR:2In$<,58n{[N߬aί| GD3 5DuN>?Q),o%wnic$SN3$oK6%Aǭߪ7ROzM =~6O?{[ӠH cRIE>lP!E$^ U^h "?5.f2 Wx$%(C>W^v"oWT8֍( RsB`E~A G~$f U&^:Q+ޏyJt؀ D_r. (iº­ KdUO$7U]oHOc bբ _;{ۨK>L (;^e `6䈵']ۜc ާyp9wBcn7W6x]rxtK(./X߾kD~¹`ޕPy[L :8(ҿ9hȾ'EdT8Y :"``b`(M3(nR+ :"❵OqTsUc Ʊ܏F yP0ivkiİ]A%3$ƪk4(>'`I.G %B#2aQj)lh? Q$,&;Kq-p,XlP[-Q2(K%3=v0DT_qAZGS!}G%'|fh_{R~j(> 5[Nx-hqIB(Vh2X;s3I^ "ϏvXPyďd9; lvvpu]LWHPes&(3C3tIz').L;zxdBF~*`ޘAiSFw!r*t\, zN^,JIg6gT< ss%f-J0eU(G%G$0מ[5&]$Ts3D]Rƭ{cP&]f܆dV *`b8lw Nc04? JaxG/n62waSFZ\`vV6ɹ'2 i~s$\08 5W}(=`i =\5il0A-85(9h6>i2BI`, 6[s—KW7hP,ts_K"Ψm͘6-<90@@XO|EWwg@U6FڛOlhBI/&u&$Q'+*0u1Ɩ*#k2O v^N[l|i/xj*ydl%:;btŕݙg&Yò,oB w:>n1E 8zpEN^m#5q~WƮyǬ> 3Ix,Opך"Iَ|fDxM t h?:OnNSؘF߂9>yPR^'!PБGiG?.YӴZʇJBI?FGl=Xhj%`;0 -x ˅s#2eM|3I__%bgҋ,DW[˶۫u_w6w՘O 2n&e%D;wl:-Mx&oG sc;Kᖏ֓:F8Rӆ?B/L^%Y bIƎ]@76&J!q~$plSZ9Fy5@YSw:ڶ?=XT7kfąZ,suvnf|)-5i{rMc$V'ae줭/ˎ͚0HT趑|a6M6]TI"\W6DIa Ph-X&[=,xrpM~΍}+a_I+;t}tƚA<(=PcE ʙڅAUk# cap]S)eNʜ58cN]n<:P%F#Y㣬W[vʗ9xpm~&CǿzTڌ?38C'X aX&QQ}$ݶy89 {Ųɖ>)f_A2v}J>Xs'q]03B>>QDT1RvNB8m5j{(rnsSEvK qm>^ E[_Y+[0O /decvٱĖ0DQqnOاM7cNf )TAJNz6"QJGCkފq}zU@3Q3~ iZcydžipp 7=M|&.h}P\bNR8|RZǼR-gbyX=!?ESac "Ȣ917@5Һq%w*]lBRFR*J$Lž=A M#H^Äc:snʴ|p=(87x=zʫGJ&2v0-Bze827ވˊ-޼n˦uVO˽p`y_UcЬ*B;o֔m j61MnjL}Xπ^Tvòf5Ytܣ}Lwo$JyjP쏯2YACpLFu޺kRvy;LCW.pyb;/Ǫh%Ft1T'uS.""o38!HڈZ00y`& 2C϶@=?=]2Qk2׺n)SWV󲎑>T" V1Ú;YO58Cq`*$%X[jOLli$]3vtevTx)~O0zz{)baf^HHYr/)=f45mAj/WK~[-i?Z؈A8Ҍ5 5R-;?n8qъk q^Z'\Al >Qz"ꛥB^i\bO;>`xpH Y΍qT9sV {A+N-ia{9_s)MVX c I.ZcུN2LhFA{ uGAfB¢fb&Ij'B<>)oXc }H$lбO1&n,~`Tްw?gcp)}l6*90Ni4Ҵ@Ka}6WęL&Tfm6?ɠGpۦ* ՈXUq B0)ڧ rRc0f7M `oi<kn/2)73arw)'39z-!j]N:\=?QԶPj}MkJz 3uls~ Bp? Hv=QqgMTAmU" 8LGԏ+vM=T0 b HYQ%[' m(k}&֛`^,I]xyEn9~&F-ș}qBvt.{MR |С$σ_~e,Eqb d--W:h;6Bbe{p\ ql<QYgnB 1)U4ٯ1  i'ߐ&?p(5.1JǛe ?Z>WjS#sw|FR͏D,5?M~Ő3UxQU_:Mg ~'.g]^`'JO40J LgF֧6FA,"^I^AA4ajiڵCnTء>XXj1?2>2:f7`rn~>+-|&2QK*ڳ.[UZ,8HYC{䭓alQ~z`͖6V^ P7*{T料aV-)=4(==0Jб6YeS[ F1Ցh)*l]u\;ҒhJWE_mGNpj>J 02 +0۳^GP)&ӧS90N  =T ;|頃NNX{|<3Es[v~*npSDIxUۛP Ij$ ]0hɨe'C.)ΑV]JR_1Vh?JT f8]?sp(Uz`)6<7 O]^Ƌ | hF"#|kKaVhֻB\̛rj͏)l2= >yzCS#|nϩ=(RBҍ7ьU=?a@CH0g AX灢Nivv+[#U+8tΎp20!N;T7 lIM9!*լg"A w3JomiԶ5+YW֗% !hNCwGp@?";5\ yjd'|<^f& W"(4P_shki#}B R~" |vNfm`URp VrU+y1y693Rg8@FyT*|ľG<a)fV$gJ*Gk0+= sI@FyZwmIxdPEGۺ!懷(̩!C.?SYvQ R܋Pڕ( n/K6[!%+nYj/I e*P^]`dތ \Y"02a}F# d>PIrvTIw?oJ"0X?_^2a&$,s'deI`Gƽ&NAUԛTxuEb<-FtJ4ζnbu04n050r"WucthnKsI/U F͐XzyX@ļBpG(3э9o,fc ĕ9#<`ۇJ`=g1!\pA+#S >~ZF4jS iKD[DBIrbs̠`C?bϗAF_|\T6 |)0{rX4_Q5? 0l?Ęo]Ax'rfշ9,2%2b9eedN1Ƹ07כ} JS]֦ ͸} ¶9ZCFu*<@#THa&tv4B2W*X߮&{% ؐQ+åVUH;~e#tbo,?,۽h(qM$_\~B[A a&PR=oons^L%Rz4&/ZRT} R2y`6WFJ]Ⱦi+t?(Bᕪg'-bXYمQߜ9hZVN_=Dkq+ r!K@ 'ƻLW`1g k$Gx*^F㨓LhU- a G@jiY&cC0sSseNq&Ú4 f/{zHг,I3WpL/VLft-kjR5TC$pl\mFJpvql!si kd< |g$ВB[c-;.H#YHeaVx,N 4H  O2-})du2wwIK bW<@zG? "lw]3ƫi+4:PB2ꎮ-`ՐG`i s)BUe>xr쒿 AoT.zE,._\!f@pAvHmI(VX'$ >RDrplܽX⳦G 1o1aI%LXY1xg;f3ѳBS& LN@CcT" ԨƜŴlN^A;$bnraLW9}.FE.WɒWrcbU\69Oft/~!>_0egOl̋n7J"S(4`rfȤ3Wzb9x#т_1  D6|ֿLah8T, X#e*|,N +A;AbJ[rda" e)Mn1 o HOɰexɦ^ԭҗӷ\ J|;:#oXXD7!o(P}89ҹY8%ekϙ}Mr;ߓmhTB^IY=*s#'Fy%wX+ׄpJ>v_ G_4]hs1GEp-XVmc(Θn"-ɔ3/ )Qr?Q=1s%,GT# Ct.Ibl+3ok&## >#'_)Lm^m/dsY[*[E֟_P;[hqᎏNBV~Ltڐ'tQ,g+2׉PRf$ZPn O5ӎq Fs ;dAO7eF5jE͆=1iK+6 JDPNQx-ED/ "u/. V7wyej) 2M ~2t.f=?'sc[dzw}0Ag+3#_Q%WeFYo<{2ZP?˷j3јeh=:~o tz,ڮC'>2C{'>%&S<$\uMil2!`qS6H+1Β)?cWϣh:@Ed5I܈;0=NĎO1ĶZ3c^P5s,1 Uްni^ Jۆ'/0x'ܾ.1} 2pEwxj[si>5sGZ),Fݣ?װpXex?)1[kyzkaD꒸68J9b4-Q:URL=CCV&Ty]pٚP_E.2q~uCY:YN@uVgp׳ BT;FHѳJA4 XT,%<$ƜCJ2rnnzROȃ@S&€)Ҝ[W9iKٖ|.)87w[WGd+jSx~Qy4*2N\|lJqasoq{=kQm[+Hc{Q\`+ h*܌BPkm3ovQ&xv;R}k@:z/ÕvprMdcsS25Xa\,lC.9f-J5㒜e^'vBz'lUNU9!W>6?3$>6^r{v M6d%L=<^x Q =~VwyȖt} q&}D{s^`M0X>ythMHx'"N I2Fކ_?>u&h ٫@!,aTIÚB2X%=]%! *JzuukLBXK?ɬ UVøXQF$q 2EX0s˭Mg ۲ȏFPO0\0TG|IDU:'KpOn)zyޯmflj?>|-%LBKt}ndFr@vFi(uƨC8wI0}I}TdQyYȹܔL #Vv%yi&L U ni=x^%1wArV?p 10%2P1n_P{oX C 7! _'8FÒ4(/3F3Q$!-|X4QOgU[~KsZf$9s6_M%j?p?eC?<ҌXĭr:k~p%EL@mz(bV#pN^x<ǏBX&TuX:wLl x#4'"ea/M>H? iHڭ]-Udg`N>ں1>StsKgoj^<6|Tz: {5&KLj$[_F"#2r`qG1Z70ATlWSE\4(Nt};Ka":1M_n٫p7V쟿#y)n$Nmv jiqe3ViX3C0 UFexIiFav6U4/΋έH47:SifXoZ#u|LJF+Cq|yJ')*.(PִkֻOd,]M+!Ujޑxy]wՖõh=?ՉLD2ןdԷJR;+G𿴙8Ϥ@nUU':kyw`=D 0Q$푑HQ&V5JXj+ʪ׭_E]fo*v1adK Hw-&Rf;x]*1 _+LI3I6hr0{G ;9 rrV 1}XWʔ0Ӹ=V<ꍐ)]U_>p _@ܙiل%)5uYwFڷ|JG=;.T(㮠mRlmJ caɐ}",UNլ%/WWvO b5JɫWk*7Kr5 @HG6-K3(!ޤ"m$S ;,#@Βu7}+3K$C5W[ү 2?ZPi)QA@mtU.~ cDvlNO4b PTh[z[)oN;#-yu9pKf,)eYfId{ v )0[JbFf˪<\u ).J*|ҼIB%I3Ll ]YdvoP)_sKP#³N[#h a+ENqj@vtQ2\2pN' qH*¨˙ ?Pf"١EY:ITXɦ4ʎdVb/Ǵ{Ti n$퇳]8e}dqW?OASèƣ"PLV wIob3PUe/F wl>l^,:'*lǙ \o9z-,C,{/7;RӇ I4{{Xӧ0Ox D2s9>|40V+6(Ӭ\K-RS-Ñh,Dsr:HpDgh$6{/`80zC%j ]CFmw nv 1)>]o>>ʵ+Zb-BK4y̢+`~ 7o}9Q0)c`X; )>ʶlMc46@su[ LvDFEYk,mқ8ZWpFfnb 4HJCҙO:_xQ<ֵGu<5QhfA~+LXSr{" bl72{a1b`ۊZhM)Pe0d:/3\MXD bJ-m,d9m;y<*%8@t "P@l PI}O C?;ǎʴ$="S$njNPsIr7YqV́|g_Apk5=㮝)aq2&Sݬ#vß(y&AZ Uؠ]j9*6_5 s%XR#7+OBej=e~?4d"BEi4} ؏_c-8EP>D~PFu[L4v7??H]CǷ)~C@.<=,X"r_¼+byy e_ /lbMBAcq%ٽDEԉ8>j0t@}q3$Dp&c:5T-SD=q,K:qE2r]ud(hU}u ȤASMÑUʟ+f"z/ړ޾֧p71A- =ǁñ wgˆdUUYd'Ҙ%nZIvO-5^a3k#9: F58{ԙw; Y$yY6 1_uRұQ(uUWK'gQwZ~h 6==":pk}bq'Zka}cՄ?EO&܉Phfed Rc0"XF 殫L%]渐͕LjDzC8Љ3 /Kop  /l7BaTSv uf2glDvVKOq8pA噑ZZ$1=e7nLgoM;"Pw3^ CvŇgClzq#7 j+eCꝨ<``/9Ʉ{.*C!>Os5P3<5 >T]zvx {Fv(J/ y^v=U$VJvV2`.-q+vEKrA}!d?f,q\/%c 0}(˦zn)٢ ̥ΡX>Y hدsBce~byVBhHLC2]8MK@ $[ۈ2Zr;xi_'e`y/ک7ӻߝdHz4qQ 3~*n'* Fsӎ#(j&f#ZM-vh##ե%$$߯, YLqPALY%ftXh3v`>Zn6z䍚4 eRi/Cs|&jO*@#W£0 3E+ n5s ʥ9uiAC[[H.[<#UPo'"e, ^ЦD/,l:0 E[El|1DM\oI/Igu:da^! HIbi(|:z5GF<̠ ңDګ~ӔHkD~ĭۃPї.s`T5tg!j 3q:Cg"ޥe FRQNVFik5 YbH C .5?@*2ŗN4(-oXȦAǾ ^YfvaΜKzqGě}b}rOP4T**pZ;8> ꘯]CY!qU%cLL5BL/AclU@52~''9bwVLvfה~[qJXNZ?ux"Rrچ]a9u T.Zp{8="|9n\,~ "/$.BJDB.|yvf:*lwLb.{_4 ;p"F Ȝ6FKjYTɩH\X`UJo~"tL1~ cAr=$-x{oB€z. C?="3?o"]>r E6dti!K(8VVN }V <Ѽ(ayU$L:$0 I0ySd4gL0[c6tIvLkFNEC1E^SzHH6;0?ē0_uaiS&7Tr1nށ EM9ίԸ n~RkJC4=8 y;Y̨ nSgQL5QOTۓpslͧ S#Xq;\>S)^SAci۬ъ co|4iT 窗,CCN:Z؏P[s7rStY|YV?e~1=2¥iT=nRlsIFW>|M$3c' z< ,}}P'>t7{6F2AByq\=V#Zl쪜 >Kz`{{&HGV3J78z#I+$nk@;Bezҧ;xM)w͈ѯ:D|2w7m҂Ouje|Z &ﳟ|ڔ!0Fk`7Ҽtk3K KT }xdSN|J^Z\f'hBS|jhKfv62nj\u]oo{ro4Fb; 2z:.Z $=/ 2ɧd=̙.c;D=7;N:P t!퐗{YaH &&2HF]U5OąZP S (G"=d&CN-~q ^; 5 *2xs`#OW* ZerkiqBg_25b>Ju A#A¢@ zZrgFQ5COIBL_9@ $K=f_);͖ Ɛ0/œ?'*,nȅF5.†ӪʋOrV?NY&Zy㞲F-!i֨=0uF, V6:Trg@:ØN t*tw`|-w12t;t-0GVj7c=7X1L{b{oPÁ,r-I1O_Wm>) Af̬b4洠 =E3FbS9lUI=7e^T w@r^ӰT 3x.En\⽂ 'DI{LDa|VDRTI:I~1B9oMfea)`f=-yhؕ,9xy4A!LM63("67ϑ)Djh N! MJ¹DJ°0H1l.cy#hg0C{ǎ"wXٍS^ZΙdmHYUUoo,7d=d}vEЯϔm,3}D6o 8gnnG>%Ge TP=UGAG1

,I0U6UD!|EwT/.!\jir?,@;-ꑖnIXliV,QC4qJ6h잺Nq. RV8Y);2 s~$-c+DGrw7E+THt%4s:J [$eТ{=lA$RY%IYk.g !<&cuu#XfOTa(2}o_g+eBEnx75#CI1T߁ BSk-cqv,J~ ~Ǚ4,kd]ܷ!#/pzTDn_ j †ZC8@w(VdG=32,AuQEa7!a~kYFB,P͇,,ũ%`p9&qؘeyu9p-_4t[WUXz7K)z3W6V|+T6eATmGIԿyo[nTB_Z)RO~:]L*܌i7-E/5ɉss2rUoY,IQu9L_3XD1:ScPsvM| /"cP1. }m!"1m>>K|אC`5"kՉBkQ2Zpu_؄p Xߛbx&^X>j<-Z@$OwqXKAG9:8|٣noJ(W 0 rk+&1=BG-OVsY!Vh]KI}4R􇤭.qLy"`ncͲ5-kFqM왖gtf?Qwս`l-@%Pt_5ZaY=I Ϟ*ը@ WB)ԃQr;&U!yabn7X(vj*eC0Εv ۆ ϼ}N^tNs"(oewFE}<-<xHKz>&#WNvO*z71 y`҈qe2pvQ@JUӱjnW+r-p~øK#>d?lz-߹v*]ѵVd !Y,8FmQo[[pWxbZ>l~ m{^0NpbFqb.h`MLnrZ3@mFKP596B~i]d? ioD h;rp>?~ÂDRer =UI_ͨ~jBj7fVMJqæ VyIERmzb-|RS>7 r27s2gVԊx%?{n/Z7NJʒ iP=;D.4x2aò`tY/XӦ lAٻ*8)LĆF3ZȒs(ߏ08Q`TGn}Iϕ//#u"om/xq BI/.d4/b6,w5}ߵHA/'TX3i5Xfy!`|d4p.qqKtv<&B2B%9ҬDt}sƼ,?U!i DP}ܓ{SΛ\'}#zDžv@Љ\>|`x4İx^k f2ߠgʚR8:vDK6nDs@DP[`#m|VhW'U_\RJѶ3:3X AU0!YkgL]_0G`h윛oIHJ,9e1q=5h{UH{4Nߒ`04jj!P=rHE8L=Q7|9` N_>{UzV'q;*@|5S3ww܈]#`L4Э`2=^P{d57DjD if(#!&.,d!0}9k'z6h 8 -OK \ŢB-7X =l !C01G%XZG-oB'H68ѝ uwKx+/@A5;[$qNqB0 6莾7ޡs ^YH=YN3+)#FJ\ J`5<eHW{AdcI4+;ꡲ٘|aѹK=5#NO^X .Tݏ7kHǃs]+~wԌkt(KgD!eiݲ(qURc?"Ac>3ZaʛYW(c !R2.` .?xbu =(uGa=tvqn$>9B;a_Rl2stלIA3kC剹 g%Bޡ"%Fr Ԡa!-,2;'M;3?8/{6w[Kwiv IF4gD5*ұLÚ$KLuʺlbcL=(J/3 tԿhER⥧Fph%L0 ۛZCF9FA #O׌OR;0(` *ZDl!Imy} ү ͌Vl6Jv\x,R^OʅFJ_~t=in`p̈ SW#?乤1 &$~&,F; =J3AoLNL9(5Pwqvۛ$2ݣ'IaV9.:eΤ ~#?T#Npɝu7gHg U%w`j- ZKϑt/=?7gđ[ =u0t\kVI{{ab||yU9qS*)VY9QSػLDbo4FvUjƳҨi5lex%)drxDt钤,ɍEJ%XNq:ez8A!uB@Y*YJX9 ntF1,8RQmM^5>"se]@>^QYa_mhR񶌬/oq|KZȣҦ|] ke۳(79à4N:7h)[c~l; /q9Q](5i!yD_CpOY^x0Z@W'N]Cngo|9C"-FlDⰑM;b`VXSE%Y&R@g}I*DCJuL躇~DF,<vgsDZF8W&C,f8ژ--r[J+V!֩>Au%7 (|QKr ucղ cP|bJvI[i2CC )hc/7$#x:)p*PS\tܞÎxzj ͩ4͹ѐpڛ 6 7LhڟԕI`Rڙ!be:uH= Xl6gbk 0#G`|}iU6ip(S S*nlӛŧ*EW@A\܋& F!Ѳer[~i̽Ѕl\,wwuW4" GZLOwkSƣbuNA.ȈS^1LiH 撹dS 4p*:lD3Y js@֢dvmVNwQ͋x^~_d= f5-vm#墈0y-IưXEUp#ٵk&$ :u5cIWi /݇v;W@q+xrw>-/Jy{cHsC'E|-/{EBIM`@>#f&NyulY\jLIϭb'FQXڟC̏O;*/iI0<OΎtjGS.O 4׍֢_~8A>L(Qe0*lʵ fUd>nEƫT ʚE?avs [c$A !k6 eI?QH bLApb0i-nIUSFqO2ǀ,wqN=Avbk Uq7m**#!vFddC6Us&[-cEh}۝xiQ=sɱ,#@zBWS6 O1k&._'Җ$#WݼC+ EUTcdq %+>_2 b/ΨQ*nXQ]D[k[(9 OW&>Dt?>$XUY+챮n M+QakH -ˉH% gOjTl'ztJꮔeipCrj׽d 0Q=DU3PfZ{-"LPHݎ]63 5!A4{H!3LF@]֟#JG7W~%vm벀Ͳ~w [6jT/e|zŲO4a)zT`K`!l[xpcA ^+)t-21 A1Ub@mЦ}"`a0ns6j^@o1V𔣳P xӂti^U r9e/g|B뽨%B>BrԤLD"R&VFpg1 z(wR fIgfnΉCS ^! U/Vs%R(sSxi"M/)wPѻ:TK Dgϕq~ẁW{qk;2{,`5ҟBy`E&|p=l8LocIv!-Q&:!zgՂ(\qof۰v媓5Y[P% XCH3^ Yyz=4&j>zcfiM}7yhdNKFhl)LAal˧di8p5u3.Q1 Dzwz~DwMwD!eVrF%D.!dJ_,Pu=Wd!A L_it|gy#n3w5a}(V⅂ V\&g""|%{ #[_N{4A jG⡩hT`= K@@(lcSu'ѸalQO`2{6%׍AT<şQ&Mz X\I= n€yj1z ,4ρ,vv{3u Q"\z^i, h1EzŻ*Ƒ?{$s} 4uvv/O}ȫ9%56ϝb\SB0Nn#xaw)nP?90BJ_y!7Y6BzCn"hpę"2Uƭ`'d&G~5Fvv*:/v:IN~*ا]vD/kRi*37 r[C`}ut`CoJ>}sR},&#< )cf} Q7\hz0OA,T D(ry(Q lR Mmݰ;_*Hudy!]O #N~J\M1BsW`顪ɑ9U͡5Ck vzؽjWί'a՜/ LDjNSR?P/XP }8+sEbɗN@AC5Y>]mr'1?EAIg>,n}1[_lTd#'K$%lΖaz9to,T|Id\h7UԦ_ijv`'eRkI51Z7YO˻M~,ۗI)(30vR+v%\Z%mR[fҁwi#, qH D0WPX -ti gfIʛcU/bw8t4+{ n3-Nnjs)@$gVEw3^nI8#bހ[DV p8EjOzFGcdK QXGGiRnu;56(Vd,m)`o}zV&1vAG5ZA'\vx\慣M/A"-̫B]D:hx~E`At˽b?lŢ岐XX ְ[<Y-;b6qb_rR$#Q§J&(%%? ow ĽE!'0[v-lM!䪁Jx5I V ߕik %ΤIѪ-.1 % P3tƮ$hoWDl2}^Fa&vsmr!Q8xQ YFı6?ǞH2"fM 뚟j-5 bbPGqD6.A'~KXԻ A0FJ5wPBq-24ĵd^ꦧlTU>~}k—w L^j}nVRA"[psiݑ`ƉҬZ~dRXhPLWk} }%`~㲵5{"8`̖d 8˩/f<l`4G'*I\PLkB̨_YwavV}1 O4͇5$ Cct Z(ln+q2C6ےEI,$k2nM%I oeCW=[6 =J_Fgɹqt:DC?Jpl!be$ Ը ߭. !?+ɊS-+\8awq[/i[^ͲѤ j]t0?58o8m%v BK8?:{)S3/|}xlV9-&%x [)Rꆄ? DVgu VR-7=5.׾5<;B;~a)Koa^>*2N !6ʀY4ٲ0KX- ZEEF12r]ы1dzq gkO3Caheȣ>]Og/oCVĜ"b1J;rsC^$@FОKJWΧԼ1Y(UFw/d5n O9Y*[|AķqC3rXn3@Ey=oMGuF߅Ą"D-D@7+tS,9LNuɡObZ5~^C/[iJ߳!@C5'J/>ctn]w(ۉ@D#};O|ݢnX |>›/jNu', |ƻb=B R Ǒ˭HqipzۻU`9/tJIُ6X&) 6ᗊWf/,(yG8f):$o>4H(ƼV)Aoohl[P'u"'R'3їsit|yտAS.duOQ2,VUm')'ؒo ]l|}hAW` YP}>x)|כ@.貄eA64?`S陭hw|HQ~l.?>ȝ0դˉ#q0 =-*?8VNb!բW\-e刄Ø˚e \ൄa0)Fova^NaEbU{W=&=ي:tg`8$ĬRI;=p5` N=aW,j36ml8up0S=p =!U_MYuE&Q;BǬzsJ㿑#!/%Yt,{T꺎S4/c$} vlo ơPv-xNt4{}xW+d7(-}GCUc2!Q=H^;P:^/ \2[T }{Ia:RTdYk,. g$kjU ՞En䯦1|P$.U߸gH ^YKh9<`vOHkx,u܏`FoN%]I 9("P5)QxE fv?5*طMM Dv:% H8)(}Ĝ,L&xvGXׇ4rсFHk< 'LlGwwF+S0}BZqw[{bJݰ5R)pO]S#UNc£^H9ery <v/"sӷX!=TL;N]z%|vqѱFrpiP)Vfpd0*Z?ɤˊj~{d0-U_Yl 4kXo]PF_`?\?&c^;JYOq \^ !Mi͊[:t*ؤz?;+* +#cYEQ/0ߒ7KԷo 'atFM;ţ7E;@fG~ *-VNR'+~ݶr:1b/Xz7͍q =@B|x޿lymMu&!mO&wfk! Jڂ =c)QjSy(e@[prAW[AɄH-`/,۳{ I.Oҵ! ϱjS jJ2Q{3yO2fjWFƔ&xE|{,9^u 5!>`Žz( mN0FPϒ#5iU?~H.mt7J)ьM#egKOEk"zml<ݟ k:L97Ϙd W#IIn01xF&0wZAa\ֽݒ,GX)a^'̲}.g[ǫr ,x:da! :|liλH꙳K捊3&>6KY-}"ߋ8l 9Q"2^R&[i.FlT܎o [oD^IyU_1Y0q[٪TM7}K=x})~~ܜsKT:qEJ6:JdZHq4}KKTwGb3VmuN'q<UrTKt?e필 *x*-RgCH*9x"+HE0K,+=2 _y_)-㬵l{Zi?n+GVtG Q$Zv$ |8@5 jcim,Ƴvh:nW?`,O-Οx0aȞnh(`ٵI7+u LGslS>gVyfuv5%|()xY_[ܤ.\ۧOsъx S܎5dJQˤc*fSTbhrF@1wBaUbʞnf;K^|='JKj16# [ǔn<}%^8I]ǟHgN\'tdz4vRGf9m-+3ɎP ^e 2T[=Kd[K ILH4Q%S2W 8O\M7&Z-5.]@HH Ugs*Gx49%k02ߍTB2ٶx:\M=e VtW2Q[bz6uٓn`_Ml, {StC.\}#E`V%1zӐt93|aZ%F?5i :Z ioco* j@}&K@L,_ >r5x:]zYq?*v|2gJ$ (SH\E^R-?5 \L?P '߬L3,j̿t:=wh ']J$GEvIs@W'?0W_jGgç!9Μ?"]+C[8 em_RU.y-~O4č21 oH$}jMG 3G7<;v!Wح[KPF1q' \ Wnu Kd:/jjP0|'A:]u@ըKDTZMiNgЭnA"꽦g-xȟ#osҥT(A 2}1VUY$͏Y `<=%ᴘSf*zv@m#9@1y3`ݼ̿>j Nc~*:gl|dofyrkn{o|%*wx*A6 6 Zd7 Pof~×a5j,(2fTD́f"؊^(w&O󨗪 q&4:w4^f4Ѝ̓X8]y3)'́iQ#F=0RrM:+.U}]Yب$_^tzShX LM)[DrCUOK׉}q p|nt76hCA>`NijcF)F0Zc܂m]QnIm@یZ&.RbFUHh֚8 dFv09 -lt[X$[PL?={ ?0"1>EMS$͚y ˷242L4k n`ˀ&s\A9Bn8ޣi|8híprIXZGK=0I $f^ Z #ioO4c7=NrتZ ~<mu7U@F1:o)7fki+a~Dr-n~a @#Olޯs@PՒ8>Bw:q--aJ&> :#c,spM;]Ff \t'i^ 5MƃQH|P dnYޅ CH)DĚAf= KSͮbΫ`CDY'C.}͡Rg+Ek {J#>&{MK5@2B|ޙf*>5{ڸQ3"Q_>Ae=5MIrQ6Kfm<[1^<=?,xk@RXй~'I[QBוs*[ :G-@, U_s\\$ѵ9+ h|7H* D,/p-ܨr}Vvnz=s1x6EXOq]sP1'ܐd=^WC^  ˀ+ @ah|-рvcEiVnAaNK[4𚄏[eYwymR>,oҽPG _Gt_t7' 4P$Q &,`Lb L诊wH8q,؈gbjY,$Ke eGDDeU8y@ 1R~ g %\A o4pF˧D.}K3YqTL>-MP wDpHxUSjDEW(b/j௞)IϪ4,LON~߮&L5Aô5@bWe!VW0)d<(? 17ǩB)m JTXT[t$A2Jn#^"<ҹ-u >MĖL";c+ݶbrq[UdIn7;5i1~Im)K {'w ?M1N}i19U+dZs. 1 Vn[G oD}V!}Ĝ uU fۊH{:svrQ'Eh=rnb*9(ȭ~3&;C ZPMkJޞaK׺Iq~&]$7avԒ-;D~9I l!Tc[c0~u,;He-?fSm.)}a:c2nnƘ'dMxl?qUՌt2 @.;x&`lThN=;y'  "p 8EDeV:Hmk}'UR={=,e^G &m.zb@y4wtXZd#'e'r h¿cU;P Eפ _[ԨepL@cn>{i*ud$ZMn֩S\ S~jw9T·_-p((xK"t%&:w, n1ljm84V>Y.eZiv^UL#+R oEZ Qn,:4\x*;kC-EO~#@eLVƫԑݑ;qp=iϼ)Zq]j 4M^_}[69z쾱__9U;pepsxE|Xiޯ 7FSԨQ`[/gfB }j>Xr`oK B^ 3;xFxģ.3J$̇8=K ![s5|FC7#X$@NFB^'aG()6G:'QRYyCSv[rMTN:0(&@3CO!s{4J-[ޭ?%ĝ_/oWdxܗo@0ɖ%{ P+ n K("I)7V{$r ɑRn0@@Pux( `a]T1 #l0c:Ak‗· YArݞQ nݕĂ&BìqvZy䵏~PRշ4g i ȕ6~q:?ۨHۻ)?nz 5~DB!qG9n`@!nuv 1|-gO(-\y:䜁_ @ڸྊ vn㹤ι:"T?8chǜJvojH\2|1]">/Ӹt'Q/V#PRNSwǬ ej3C%/rXTtz~ FCP%R,͓xOub.ξeHT*V8{?{/TN$r:h  QНuQRGUs LXᣯ>h\zоt dYfƹ5$4#nV8N{sէINB% 鏇f'3 D[Z+!VK+s2{#d0bv]f0Tp4 gD"[~SW4Mks)쪧5Hk-^{ͣBuEg"g.od,2BNV/wysIә3fbM~1S 71"9"oH^6RrkUFԞ ^Uh2*DJ)n3qZbҷGpGw~/mezƌJhY^+ ?8Yc23w:`k>=)oKգ+$$8D H“ʏpMKhf Q[K-viCLZq, ;oŁW,FnDрtcE.Km s,RIݸcQFi"J_ΨBfPbzFiSFDŒ5hv@A ‍}-MesBl^oq>a=%. NQC-Օ ^RO ^ `DZr.Ie%j U0%{יlTe?:<SZRl*C4Yft2v8c[AXhaLc0kXߑ'S{q_0MOZB\* eF$Nڊ9Z*ɫwr8 LTDјF9@ ]ɡЩA~)*65I7o{YՀaLSdp?(!A/H6  t5~&mI=dexshmZ4t7>CEvh1'mEBt|̈́ йҨ@ q͒&n>彣 iŗ&GLJ ҃D g«Z@/=zf6}M^I`+è\}D@1*/4LdPͳrެhcJڥm.G wH#UlEa F\x"g{tq/.̠PG5?GqL"")u/=4B'7Ԝӄ8/L?# ^=|I)BWS&cN/S.keg0EuU> IÌZR.0 \3@SPZC zo[);{kR4yTcAsCGb)HƒM0g~rjuen ȋ}' sm"d(: ?݃,h݂O oc(ၥ回*0opLA'/0$e/ u"~0!_Gn֓`|nhȶEoeN,~>篰fu)"1?WWu\[ۻ+~ޘm`@uq/J-d_1KJ5R~*3ў6, 7_=KNy\vT**l8ͺBW^xABÝ\6 U?IVީU\UdyBg7vS:,JkXFK¼P1Ba'?k/mˣiL|٣,*}[sw#$Gmс!r#T,ܡu5)=0.Ӂ k6JcG {s38aab*sƀ|u5o_ѐdN{jxMƶ+SrsrITWj]r.V6&1H k@g6«wb'{9:,|\h,ljbA3N..(e0U?ʫ 2 \UnRX#gS12Sp^S  j6re@1i[*;zniw'܇mQ $xG+ںwHI%Ünm+(~N4)fQ2x@F,)3W߭;Gd F գ?lۂ&ED OW$&^=/V>gNcZE,TVW!Utjyke%#5e!o{@]֠Z#OD  2֊s˧cf`nSK9g]m T? (B1"*knT1ɜs(ϋrٜj1IM)@^ alMeB(^KMH}wɞ"˂dezF]D^@hbĩ|d'NHbO7|Kvv?>CcrĘ&-UQQhtxݰ)PR9h us% ̶Y=r_H>HںpG n ڦ,罺sG'y Co Vor4}~-[Yjxd;CYt>b{py>@7b*pvҞ Ѷ#Y B `*`myL&$=Z!GUk.JAIQ_bnÚ(ӑ8nۊg;]'0&ɐ.N]Uhhچt y?O78֮b4 IzCC\u=@H]oV\.f*A QrL0̄YQ&cBbLՏU lEB]]b1fд$ȵAYÈʼ#uMO΍Qj# o+n: Odtӷ1/EZ(>,9<[Gޒ>D[%6z ;g4/QΊ *!Li7O<<'v],HԋqiA&!*၄5c nɞU^4ߝ;ARs|3Ӟq.YhGyN;@8cْj}# g5c(4){qr1Alf[PziɂPOr޿_ӳ4ZcN.P+~ZF ZԒgö́D3<+>FDEc<˟\wԗ_Bi^c:d J8z#AKb* cPZMp`p L{ s+|p`o4sQL6X: R_F8h@K JW|2$^Y 9 W)d|\+[\nJk'.ꠈ6}"V ^iA2U{f*ߥ3ox*^μB>'x%<Ų"NBWXؘC˳R0rS-3cΈu ysW:7V]*s69(bGXؚNP,"%;9:^?|(P jKŷ"o-Eg൪M챱ЯˆʶLp ܴ%Y_^mু&.YӴK4^GkWeaLBro2Bv}LVޖ+4%XG# &%L֦Aq>i U: <5aƐ_ quF GaE㺶%2t J49SL&1&f֞iEl0pbk`<ȥ?4f˼̬q+`G6OK(ٓ{2D uD{oY' bϟsQB6p!:R6lAݥdubitb@*'!OR(\X4wCo 3?s`V~O/tP$CXU[zIe=6WH;r=qES Ϋii!{Aviiꃦr`|S `rFq&:-*|}q3.y/kGIG bmD ;-[]#UbW#-pw5!5ۄOY{!+JьlGNU BnRhvBaWe5R @П0uI>J*Z[j[uxythRvȺ#E8yq( g+#\%˴0}-9ׯQat߇BzIi|ҙHfaO$@e^2Htd5b zXUk*,ugz4*׺zt{ax-ɜ;d)cXa7IaimgP 5S|pG^u=zd@[~o( gXr ?c[LٯmiqG#_C &Z/}bkcxEWaP86T_h[_-gSE֫;MsI|M>yYٻ5_Ӝ~ƯaYG!ƶ">2w^MkҢP)8݅|2cU(e%ˏNv?>ԐrP]6hr?333]-qߚ3.r+W$ЧX 탗ŌsT7jQ=3Bj8[0 ؂#)Eao*A+[r#D{/KE؊I+;淎 އب5Qpt_Z}@6M>o^?,.RKHcSq K=.ARԙ#ّZ\CvYetʄ>y"xnCoZ[қ,ym&ul帺q6&J{6 Fֽ{W%9iowK{+n_z)EYʚCve@0w1. pՊ1F)CBD6M-8y-ߞpFizknnt)|C@hI+M~oBS2G3vjĞk+jQ_X#]?'1kT X2vW˳M|;פ9q/BxJ<`/ͤ[WXM#e(Ox[2je`l Mh|0LOy~=`+V! DawK<. #^a'L V'bPL.Q9c*xVbn X|3UDHȭS4Bռj$󋵎2i}sd;d/rˠ{ρnazvaoJ43mFs*QO?<ʩ=G[S>Sq@0r~tRK?d|s]:(utni],y?9 C|M$WXXk5G7>\ӢI3 hrvK}]񟎿.Y*"7wnY4DըkoIİPJzb2\XQg˓,]k nxFs05Qa]`gE$U}aȟ5+[(ܼokDl"ˠ A]b%bbcY"p  obsĢ TZ旾{;{²EC4z 'dAO ZzN4F8ems[JC- Qa=T3"1Qy٘v w`=fK!S\E ufv_'0#,!HM5|os= .cQ1$my8˩8Ԝ04;+d[oJJR?{`:}W~:,%]M szhpgq L`Ú 69Cdތ(/]>{%EVRDۏ.>\$:m<| X&؄}L@Uc/}u0 Mgh?6#7؛8% bFy<+ d!,g ʶS&uKH:oH,7* uhO銁/@p1?eXR|\^̢[̥'~ zؒm0&p@GxHnTG5|ۿ\^:{W-(ӻRLRZh>r KKb37#B )UWjVg^g*z".=^Ү,{1LÏ3Jt~(U~HA6|78HmS)8ny"2"!kq{t_RC@b*M;&I|>6_촦^y:+÷qBI6o2pm2LAvpßIAM ~t~;ldTt:5zaBW֯i T"pWֹFhk<LI{&5/ÞJlV( ~ٌ-eݜ؜̸3saW ER{nlo0bEOhM{Egg#H NU۬cqO 0*5AkJ_RT;:hMfeD%|Enۉ+,ޔ ^l9w͕fG|R,98,AA˚ySYE!tnnR#k JIKW`ʭg " vIc3sM9(tO ̹]3 Hj+Og>9n'VxLzE7N#w}0)ي^5́q:8UFo4߅Qt6C~=caGs  D7 7mLd5Ǡ7k5! Jpy4(NLHp!8tD-d܏¨ 8qx3@#,4 $<=HoY@Pj'6ȝ"E 4O/l $M9HO"n,ŦA/EeTՉfJG~j CQo)dlWG~>Woqȸ'AZ{r[bd'Ɣi,ի[tަECD.Rp|V4&|Xg/w0ڢ@ᦥV'pEy -wE P:⇲nFܢn/GϏB4*&oD,SHH𬔥cɞ/*XT>6@dŹLփD mJ$2^QӀ;tj%Ȯ]e 'vri(v8d]S]@gR쩙EQP>Fc(O"뺰sic$IJp-+*ќz *ceûIG6~*zЄc*MSIi>$-G96|GSiEnMI5O? UVqP :Q+2b+S/ ;5EeGR].%v5]lViwoAHͦM`8I->r2i7\]Y|ߤQ2N`x^pG.A<{+\ķR +uA61~zGaWoF7k/sIb ;8E _+'Eރ6DZ%roHFSAXXd[; 7S:T%ۅ@}ۏu)(Z׼åGH++f4,ix:䪒Ny[Er`> w "hLmzF+^Y}V{,&>݊ wkwH|#N1 *,,O1o!ÇEcBF4)kj qdE2e=x <ʲn'H)oaKX4O c)T)֋Rz/6ܑ`!E=O:/Ҳߊ0O3hg^e5ko|0!M`G7sNRiSDXCL89Bng/ 'NQa/`b>`_k l֊+&t ZaLdJ10B2ɷKْE}h_;l{TJ3%hWJȩu :[)oݬK;*t#Kiq?AA|L haoxp&{8jHZPG](xYΝȘne; qFVپc?TN15VgWfKVUcYIQvI؛Gu:j@? Y=rh4P|.B gQ {:9DvT16IDWʼn7/A24U7s@{h 6yAHS2Ep`FYKXb¦U T^܉S񃘞]QosQ!3!*k)%q9"Q\b?~`dp[O;WL6y~C>T̡p9ۯ,ػ@dı44,-{.zG)slXAnTv͏ .ۘdK렀Cr *ToE +xmTb11i$Eͮ*gIrcoLՌIE;<_/pt%38%vi[ΓJpO)i'^g/ ^R#AVY1-^߉w,*Z DzO0lVYH\}F4Fʡk0zЊ!+T8"J#z(?'inJ)KLߡ1l(z(&R\ !shɨQmg!dHj},͕R$u`k̘cg-ﶀ.ΊAxG]No b}qlQ*r-#Fa$L&gP3P~~4M_'NAhT7JADž$A͍)$XW搻͜q̌gn蟏sErŒc4|KJEA3a2,[҅1o/I4U zgK)xl3sljs7z2tYǀrhAtoon r{m@1jSėK7*??YR1N qo tHR)yw69i fPW>bvvxa_2(ҷ0J\PO҆YoDú)|JB1C6[qP\mfsU?p-BjopXUIr2`Hn#MmsՅ l0n}$AM 8Wm٤mai©~jzх57+ Nh!NSHQ;UcG|TF{ *9e,d8 4,iܖ/`>rR7Hwf(SsS?PӦZkv©y|AUQҀH;rG;AUMNr|'\SmWB`W~H#.*- CAv?QqM?ȕbUTI26YӚYL+&e'X87{Zmn7,  p2[IP]r+B[QF%572bp٨/0ߧm1$R&",]sܻGeo74Wɧ4b~;~oDZ֖C%:=7?~U?BFxRYT=B^JD#JfՉĶoǣϑu{vA2 7U)'`EPy6du)딫\MJaQ>߸6d :1jde:AyGJ*(j P!8R[ [-*((SlR1U׆T@ʶY|NۄI ߆^[aϬ8})o[], *~B TL;g?;bԀ|ĹNZG*vOF&c0mޚ*@%ڛ>EWS[عDvBiLbLxђmDdl">OBU*,X_R=9 s//}9l^RA$:9}ꡔqy\Ἵ3cœ2(IgX*!IiJe["vnD F zLG.\162ܷpWFHyױ#mZz|# R@x\Az rǏץ$!:Q.}P>& wiIpC[pfo3fst̄|Ի"#p6[E0D'W 2 yήq޴| ?8\vNWn6@DZ|FW-^9^#Þ-^trOV@튘(<`'?وyaN3]X |M׬=gƃ2M]2< };0?!ЂY|#d}GF\.} _meΑfHȅ%1̡pxd>eZ2-u5UujjBBYt9Zo_iBt,c3K H&TSu΅?{~J^:!,@QHi{ &0Wzu'j ;mG &MijJVw0" ll[|Hӭ;XvadЌ{+r\Ul9Ip%hY}\:\鷷1]"t;r ioI)v xgqrU@|6Z3Po6N l6` vfO||(&CsY&pB` ˨GP"2V$=!Mya"jCzlЉY1}-8|L4k};E7!x=68a<r3d `u09@1ׄKOh 'X4NVwSľT=TA=ݓ\| 9nLn !$_;%uNMhT ѡﺍX]eI2z 8{|]&'a:N/Gefy7Ffi@W%f5kyC+g!rpR&j5hfge;R}GnmQlUK)_쭴ңX:wk'6~,?8 ,F٢9G^ʻm7v"4翎>0<4E%|@ {t5aA⚙OI+j 7>o<Q$?~lu % ۚg7O~aeeMiV1veaF˕E8,4<0(^E_H0 oxJ%{c^O$>NORǹH"q*pС2tD+_bcj o.`XطhN?:3>M#YS4/$CY:(`TjOʚI9^$П{{<* /ވd|ތ>ew+jZn)tqc~3%5—> HBWsXhu?RxlQ xGt@ ƕuBܠk$7"h{nuZMbZ8@4OVDQ`Psy1dBVx@fֳJ"6@kW}]+ Q;ur/K@:.jD q{BC[_yGPqpA\laUy"Q ni㻢wʀ" q&JUamEnˠa*139v1> z-g>)1aDۍ*[YC&hS;rxxܿL:z]**1쟳;%Ś \ޭ/!u;"Q57PBӐpEEゐKc+R[0-.kfF&l׃w` u63֥t\T]4/t-~ }mp³t 3KeAB$ 6t8ZBq瑧\*>O@ذ'>x p ~U}V4ǹ?ªo=$ z○^.5io"} ;aدӼ<<@o&uT0nuw5tTXxDr{̹=89Cv9B!zPJ[Ąr(j!_k86[єw/=H-u+:-#}ľ#-86~D=v. #mTbێ `CqK[{:LR/@=vd,p,ZƜ۞rS{'XETN;7)TC\7tDy -Kx.t3.S ׂjaĻZw_%5 F-z:&˫_NZN=L(:fb8G5jgGgEho"j?܌ƜY})IM$ýᚵ6BR.9|l>4R@ 13^%_m9,}k+cNfu| EbY u`=C6gO(), Ezt{ma^e'0h9#6j{O-l;u3P* 8Pډx 5%iI X}~Qwۂ9ٔ-턄 5YB _iyo(p`.6TX(zP0H_ 7Ipt"ṵyr%xKqs_ Ү( -xNDxa=tr|E'w0_RM*tqkHX1U L=7r/ySyH؝FK/PMAr!ic!iԈY{Fjlt|$L8ijD ,C1ܴ!K|(tTS&0Am/toCĆ wb/4qHwS%b|m: 8dIq$oqђ~P[[ _ )p. h!_Mx$)Cˇ6x2`fG kYW):x=ms‰F(~ⱋa 3%Aąe٭ G@"DnUS QANyH $Ȩզ,.ypA^WfwLh)Z (7R2粪Rvuǵ iQö"^J 얜ܤ>b,' BYcSjLD#pz6*5|5 ANRk~ѱ\>;iP\:x޼b3\<_K%VY,mdmq(;V{bt~Ne:;d1uoHrAO$9k|Uf:sܟg@L܂|Ō>{Ue^pfסlLm$J-WJ2vJػyv" y2ɂ>ᨽyïŶR$̠֚Vҏ7Y.RڄA}U> AclYp: utzH*6+7!+wl$Қʂ&eĦxC,`գF((ī:Y鎔2Ph]y& \RxdX;^y` pήZuԈIX<,~:Hƞ˘B oOz+&cDl^z@ЄeW-N´? Ӥ+a~ݕ:_^$4k|?}nQLM(oBo 讒gɒΛUyar+VٳC/|S C?9=]*F-_RݰN}!k$틳uNiAEc= oOi!i;}SMj/ Ƀ֛1A>VSf"cwOP+oC$ӗ˘u/8J6i0 ԙBw!,R+|DI+?pP"PP[u; f"e{>(U^DU.L (D`ټ~g ۻƁ7/2.:_?+~ɠ)jd,OLM={m5W] ݚ4ja(H9LPYp|x{ pT9>CDe>P%[U(hwiڀ=Lr቙Pw+'U&+?;\p;Q݉@7W,N^,C;%CHqZ`p$=M99L5yyr(0&巇%?;k@R Z>ɉX[ugL')9_Y,ƱW|W4G(PϽ47?P$gJ&" /4Id.q2[5Yv|M@BxtG_"k[OTtuL.7ZW!Y3BXZD?{#74@:ޠiBt]ưse[K1A X#}{^D> `Y_.@^J<+\}s>~ӣ@Ք1?ͷdO5$=DUSMXoD. dĪ@hz6w4(o+P Q`igFu+1N7S"HU]tYqgg2 Pﯓ9܆7BRQ~&iBJ1;Ϋr6vDX)KmDfv9Ü:5*Ȏ\+V&qb<޼J?oxoۂ΃s]+op/A[ z5$w5UFJݙ31='8l8y#T i̐ctUNPIgNPnkZ6j$KeՏɜLC=<9Z ]' ̆Bk1c#~qУ$ _K&mq6"lf-MsJʌC(s"h&HoMH6>|0]D#ݰx7g)b5a(JGwDFpt1R8bp`v>Sjy;kJ9 uyWEq4g2k&Gu,U%[ou9Aeou/rp? Z_WN\[C8 i߬%Cd؊I7 h6ѩqN Ph{-];GOcj7`Q}!B%}v}z7ن"tﬠ&Qt%@AD\Q9h"i>RjUSPvZems]\؎X/_v3B1ܮ@^IY S"- gQ0jBkjja'?O IsuMڃxJhv@lOLu,PGmX'P ^+D|~ Õ 8Dկ4'C,0 /AQY|Zi[<7:îɘ!Gcز!DQЯWvb{I4G3%lo.J*@!;uxF $*:tqm6g ^-0Pl *%5v|7) S2\d7QS'nZ!A[m]`^(1[Va7HٚUr:ctɪ;XvCЖ<`Y+wz%6APF\Kgڨ](Z< %*,^zaVW%X.Sp2ҟ*cT @sϺD7+]A : Bs #~5"I^}PL޷ٵl41!e,|*0 C>8 *'8[96M/Mx!D9( )ĽrJDXCaYg;&|tdvUwh f+w4īCRVyNcOPnQ#GB w6Ymc۳U(i< W@3S ߢؼy?SeJ{r?Gbƾ[Ngk;-?t!jfnsVnN6B2w JWɚcG _""G11'bAu?CujiZЈ} -b dp`:?a P=>]Q_(liu]P$kVQ{LY OkpEVhLx'KW(HHH-%Es,22&BO)ۍb V9iYoH/Ir bEۧ'f(x_ B;_k]TzUͰ%QRY$-vr.T0o2 &Ϊ|4YpWxvu%i;e{d fɅe&ly)@'Z]za82.uh&/QI[XȳEBoYY+2wYkW;1Pl Ysq5KrȾ{Bj90vg\&ЯhcD8 `LhP:->uAfF"wV0Bx&ÃEPàX= ?12RŕOHg m:i8}LO9i/ '}qlxg"cT Ư -J KKCQy&Clt ӏ]XViZo=c*f.tfp`G*,*Spa¢QL9D}e ?P8v!tfOSi/:ݤf& Q:RNqXۚ+aZ}xNKu 4|y֤̿ /K#`_]+hꨈ߷kIƝ򯿷ކ_97ʦ _;&(EM ^JFX0CŌU /`T}yg{@O % krсYz덳?S T=-4CoxA!HeY}F0ڤ]4rȤA}e28_#lg8FhpjPtAV$#94D;J"S I3WPtۅX韻b Z \*Dfl q !;uD9ηV.Г䫗' R(7ZgxY7ѓEy|ur`D_*ąFqЃ{Zl=Yљ$/\@}!MaWlCj.ڿJw%{b !Ho/ ͝Q+$qKk') hYx>$k"7{\rΝ|槚˚<*>U1^Qq}˷47.WF5O榿Uko/ ^Nyn]Fx^RG4qjAkڧk6*KQY38rj3S6VX6p(%*RP :W:7移l)?;O+qq]u{^sb˄gYܞ(<'{WB^3\AF..sEimHA͍ \m8:hMBh9llsu: 4rxTU5S$kx_ᕶ~DQ\fv xxN;O 3SdtҐ ݅r=Q~˕݋i_:9@֘Шdr J쉱Ȅ:,cLc[IJڛb h6I^kIvTN=4a_kMs߈]|e.Pwi塕*5/6/TWנvL>{u6grAO;);LvӢ +.,a ~xԴ̏6AhQt)!`BH ?z։435TAZ AvD5ke+']Y@{WJYomY m͗H򗖞]xMUG#7[RT't쭼,HXr<O<;xc}Q2 "80S|z{tͯU-_yL.;S`WG>MۢSB )H:6 {\*2lLю`99\-v'lT;.% Tא0uAX%w2E/^PlRZQt?i-|rI.|<>k!l w3wO7gǞ6u bI HwaWt4 % _dc}Lܙܟ U:S/,nzn4N1>S: 29XIj՟E g$= IE%bHUgqHlŮ0S^ J'4tl-D׀j1oVi8_߭jEGg8-:_{.-^QG:+d cW%Z:VGd/csA67\Zkٲ'Y^P(eJ}"<EG29?ɊHd1?0eĔ8!. ݟi{)_2,6ai L;>1EȰYpe\, B乔,)\,;$)\3ʬL5ڜl06+2/D2Iy D4q@J@M*wtmROqpX3`\{Imo~ }ҧkvIMK:T5dJ2xQ!VcD}2sCؕj.eV2J`¡`'2;{;;?iaqؗl29fT!گ.#kpG/S4?ȥՖ|l■=0"p:T?E|?a!h hy}dF5 zq`%22]=p߬DJu\ 51R.EP]ϻ5KLI{n g[ߨz1Hj|4( L8+s|\B8WF$ᰳb%[G|:]Q`d +}w9ؙ(ogM4zuK9bϋq^NfAoωnr\MzRvim1 ` |{H=ry$̶Qm;-"w+q**Kʱo.ޜx>I)lE.tHbbq-CYp03mlRjiBwuZVFjbcfeT]w9;Ddv@lRRzb;-iBPØnK9SM@Y=1NS uHQ,. Ќw>$ ,qZ3W[= jVZsh 'kq5XMuu!Ct +Hrl+edl86C]%G+Lwh}^N>f,3sX/c0}k9=sL4`MD$hhcEuvB]QR&~fhML2zE ?aV4+Ɨl UF'Hcn#[)|4y ^ Nz0-HxYv(æˣȭ8+X;rtYPiD.y2P:ź TG"{=5OE5ZUm9mb/VPṣz̈2a;T(OWZ` X$4%/=ƒJf1e,[fQBH̱bhs75󯄩"ax v|H}'̿m|iy8W3E~ lv)lAB*zJmQf_CbZ:i;sߍ+|%fׯkxGUǹ!n=8! U3'$փ]/U{z50n]?D mŗ/u/ NܗkTFJzR4|i&}m p<~ .jxdФĉC0Ehr*&ާi ,)j M(jP+Dn"e@I6I?<+&Xe׷;{XM|G3FI\N',4 {kbK).u7}ĎkH1'RswXKQ_7 >~WY+nh'bΪ7G)`F<7wFugPP@J [{.]S80m䨘6ϤunE:)5nP|iT6s7T ^:xO[tB42u9;x6 J+UKj@Vm,'5MoGšX[zY-!ʯdroɧu1x-rs] 0P!q*k(k! Xf؝"h99U TWuԓL2g_g;hS-)Vһ E HW JI0KT RaZsޛ02} Ѽ#d[zklz'()PӯYF2~.Q)w:F(.B#9]'9$CN }j,T]ߟu[|.HX7xdR)n{<=%Qв"-NI9}HQ~>'yf iSYM[Bs7uHy淲)A:Cqi\y;/Iqjov3Vi\tޅr@mrSm5V)DTɟح|bGoޝl! ja"q4okm&MX n͌ JƑ `DgV+Fn"jՌ XA7q$ I=n^Dі`'T uGa'.g Xǣ?&ѻEL I/[sFA7䙥yM /߱5v96r3hFsF7'J r, Dh@ă oug[gFa\Jҏtgh$?k@gmdO$U`,6gnOJ.pe -~YhZzz?_oL~358^cgaI=  ζr1少R+<tO,#~[ ;=(?kA Z(ţگU,PvMlS!A l<o|]4FW<+,gz#`s)g+crKu +=QOQV7QƝ.5A-!Au{Z2w?.'r H}wa@ـd.4z7bžKF8L@e\讠G zjU0rǂecAV~((S.l:55J\s㧁K}f:Xѷc3ґZјnxy %KRc Z" 0[Ō-'ch#?ZqK~cSDX"x/< KݏRk r2j`rs*q}[~`G+Xj43CngJ"'qwElj$j0 ͏ZQ*A͌A ^PwHEG)ɁjSKSx[xc0QuIeUjJ=Q:(R#6W3Ƀe;x`P( ̎^s:Ik[v~z'ː$56's/wuWlbrńPEgх4XnN3)g>*z-K=V𪵕QLv{σmiE#B*hdDOxAP *Lx ޥO_cyiso g $Q@+P72Q`apn[R؜'/G*e8d=$I_h!8' j Hlr[ޝb{ͭv=J:?9%(EH;tԹj">>'v -: w)oahJ}xOKm:۪'q*+#`Bd`!eUshL&(=ϡU\oh0cdy^-J5 3~p (6uix⠪FJ+ i̻'y[N~Grl/ ‡pho"DBM kHGw\it' .Gu9B&۱YZCRBĠB۵,[Cwc$R 0J@=槮-W{3u.w3nC6pcKF_Wh fJc]P;m>>̆;+&]HUtӭX~Oz !9։J_2fPp,d!e!.tGkAOF3ZS/̲,oY  7GR]O4gqm"?!ז`>QgC9\eNAk6HWVQQ~^gn6!s`*GOj>qGÌnnDD,w:tWB-47iww\Kd:GQ{z77a໳PVH)$d(9 G-l+y0d*}!U#fYߢ0~Ԉ,Y<'q>R1IZI0Q?+PW:}ZէV=Ǐu:M[`h5AN_doĞ4p_* ك3WQqC]b9:;N;!!Jf^jdx \ 3 `RQF(F#.>r8m͢LҸ*,2kV\k-)9EJ.iQI`;<+UrcC7a~*c-X8tYx,!&g[1=% ?KFq,ld/t@&C|s:4BW/&SD )n7%-=ZokhÕ*IHlT˽oщܡՂ ^dL-c ݌f"GfT3/DS1&  0= ORou.Ry* 2Jc/!W+0ؕcuE)_ G}W,o έ%téеBi!]1+>@z=ذ0*v[xu.4"HŘR9jMѽյj١ :m0>B:eoz tP("(5AoDd< \Pg&z;Q FD35)ĸp.ʓΕ7> t;]ڌyY(;p_Jlgx.)/]ݼJLXwxV{LY n#'m)'4ׅk*#In(f5!mJ@'LoSw_[/n9Tn82BjZ4h\g딐|~nA#TK:S*:VPkXb+ jSKJztO$.}иGɭtLEѩnXơA \S^f1`wZ&.@zeE.4)TL )lpbr}F6Z!<9;q~ˮa/H,a{J>z`(1Qmp6?kt]t0huAp!"ͣ9>Aћ|dxXޥF}gZ@̮Fܝacc!I1QIqwY!,HHm/2tbD ũfK?VY&8|+"bޒ..$&\X\k~l񞶹TޠE^yb+px R^45?xe^I\AŚNUrm ((8^-|71y#j]yQ֡]}+.cvnw L** R#'yp(?̹"0~=O~\}PF\{RhH$sߴ $?VrwQcXRѓKx>ȍĚiGJAATetaHDmKw_58s6$V@w\~v-GC;jKTKύauz8Ú7<)}CoMH菃AOyvS1|frJf_f~@OBo)2:jV&ᧃlw;@%X7)=JhB4=$^'k3Iu'ҰY[ۀs:ͭ`$ŸtHsT\,yB|K w{eQ)4Ji:P=r#xVυŚRތ}_mMo 0E?T?%7"?%j)!>LжdIUG=1ۈ0͆Ł%́]7vܡna^8-@S)N\3SE@0[s6|Jxl "Yfn>yy`<6tgHRu&&j5VM &qUO5irK-v!)Z_2}1V{i9lᒤ38^w [:2YIi;S#sφ&rmh^F}"|_Ow-$0?7Ĉ7\.rc{1kzx~jL=Efcybikl9zJ;sI"s<,a:).m`*I ,n"!F-; ֩R_k7WCG*}T&v5\pI͂jEt1vy1ҵ2,>Pd?Cj-`L B68`WDtoUs g RڠJMwgK _Nx S淧dw1'\J]sB2yBbV,26CQzW C@|R3NTי~3dt8Ϣ!'d/6e JJ_[T<;AQX͸0tly6:Kف=""sG/Z"7kO4I#4ʻ[PSŴE6wDHZ2xyDpY8_3;qT}YC}[h󑖁P 6n|5_>aH[2'Ș!h|^GXw'#|uW)p=:R߃ h?ádC֮ ;&GoP~ z9iq#̈x`[]/Y؀IgIX98?1w$hy 'Ig@iaH|Y+VnۈXΥ2v`ciR T؂'jCŕw(AS&'&m3`_z\{;05@>x 9lwMdx Vl "ڞrDɍWobl$t2ۦ^3H@,Z"@y/HTբbӌ`VR|FD9CYh\JWsuv_꿦5vM ",\G^?!馂i![G_Nw eztsy\J.?Pf"UϭylO@2*$a=fG~ ˾m_~DW]mUc%UP݌ۘK͠{H;|E (@n==JF͘|X7ؾ^>$?`Nw~y[hm,@<ɀO5kP4%qz@^2S7Wq cND[p+xI#$K_ef:vMBPǺO\l|(My8"n rwE^6;tX\c[¹yO(k, Eh'&a͜W^>ХGHJhس| 8"92;^д>@q|&S /}T)ӶqD@3ǍsV F+p\m08jXlNf)2T=HYD[xRB"O(+>z0Ѧe,*2]0b Y ;1cp#tG 1鮙oR ΕBiJjsA{V G!e] tMJk>37PyCc^ʨ$O]mTi▪ipt;*bdeSIK8Kլa9dkۂAUY1)<3}S3!8GEhOUJD Wkyw r ޚR95՟rXsLX AzLaWh&\t^`4'l̙BKtͽzڤ.W(nDߞ8}O?DiҒQcGX,DU!_o5יD8&L8eO?UcLϐK+ch8uk!,d8C>!Z*5`]JCs<~rb!0etS_Q n !YK _*]&1 2I":ό|-2 Zdb{@t=npZbHjpAHIJu iJv/0E0/Ã8>7+v4/eg\1ـ[/W&(N릣 rddݖ/}4ِQr11G̅8(v`Z 5ܱ7`oi=JmEMU?o *O|ɋֵ)?4VdwQ 6E f_hunh߯yG^Na#MG (㑋 { 3_PC0~1aRGL(V͇5huXܭT t]O )IL=]^'RP$!7m^JRB^lPꔝ$Z T*u/#UNE| Zs~ ac@[2م{_~@]>̭쵮gsc H!uaQ$ɍp`+NSM(%s~)}ܨCHf+ݗ(Kd-B-̩ ZSlkhM̖Uo+ C>n r:k8?B8 &sÍ[8+>:׊Ln ?`*}1?@NseT-E,k \Wƺԅb 00ΠV(\yEK}{/W;Q$Gb=]-Ӡ;${ 9:!=Xgk$pظ( ԯ?6\3/NֲhoesOFv2;]4OMnWFHF{&IQ s"gxmZ%0a4ucoV"a+w!zѵCNrת|>2#d;(|֜Q6e KD M]w $g6.FpUHQa|y15ٴ3ej#&X}*b[V3Z!~jG6 g3'pL Sf&rc*ɟ)N`5.e ?p;k@ NKMe}YAI4fbz/qNbKqɯo̽`i1xWq>yfj1}btIDdrn#_^o&`RK >C̉%%ՖTE ~E){UgR4(O{]N"!RmY-Ktǐ|S!\1?I` Ѭ:e S]^F9(.ST99/wӿ;V,KD"߼>0mT,$={*{ghкa+b(1lv?$=Av9>wuYtj~k1 c0mkA=אѕҟs)|7Bz!Z~2olTFv\d&aw'XU%F>!&VFMUaI*Ԫ @4"ZQ-<{+S nIzU}1S߫;@rvmQ)P3q#G +8L2…ڒonV9@t$cAm!IxHX~>th84 (+6v@IX9%ҟYՂCC{,*ؚ{̖?oExI=G$ ~F3HPh?v'dzNDsr$uB0߉jtJ?Σ4fS0xmCCG:zgλ6OЧp#TeH;x@MDZ$129&FpYcsj5)Wlf`m,n#ML.G @>8%ShT[Rƣw$E8M|",AWߊ$-N#4l굣pU 7XmKCU`e$rp.,Ϙg7Zڃ]rs{,M .KiŰR0 f1$ֈe&AYrNp[ؚG͜Īg!оHtO><Th!uRf)Fe*e`L}pzRj* }/ ]T;#pR,B]a8/h Pa4 +fzqc҂TV$5.r$Ke=i)y;=l%Ą[WsoccEv7q :C~Ycl/(鶒3nU5):.V:7ǧəziiK\&xMjK-< >9uC*m?{{Ieq5"1,)p;(<'YM]\UQvq)tg^\ }!AgDU%Z)"g%龔 d[2SuWn } At_.]]}z% i8vR!DaZ[lK%b[2-^Dm1'8n'1$K͖"}]QjW("6f+U%T;I0 7Ψh'lWt{ x~DȽI6v! aֻ~Z:g~trCԁCWxWY pBS-գDa#>MP-QI=cVb] Z@>Aٺ CǦDY] z&IT-_֩Q?&zP.U.LZ)qvOm^/nҷ[NA!ynY,]bY{M{lDIIC4m[ 2a[38;Ȉ^'MTIjoj"756:}sȈ1BAsHA>mRd;o$h1 AE[@uPfo99"/S%y;>x5~1OԂyTlZ͊~ 6~ *kBr8 -s!}P7d6{,xhX|+6>hnSxWF%䑜ice._I`S}EB! >G*>/7bPzS 2@d~_||Mu\Uބ[=jB_+-hMd˰/hAry y˒Ezy˪ 9\vǪHndPcg.8{C6= em0*5B8>/}s+TºYmjAHȤdR>X4yÆxP?b3@`gsq0iU2AXb"fMJ<Mo.V:ݫm]^Bp|5dzuug>Ihh70u03p Ϋ)@ؒ<0' DzF 7뭬Pe !f)Ȣ`DfTUTҚYF BhTe#c饽C$FԛⴂVHԖ ^4kl$bbK`cpinT[(VY^HhlNMl-`Y`u~$-j'lK _֜s]e2کe1ߒ!758`Vσs !6|H^M{36JeH*1ؙ ,řrҭ272PCܳjWVU6I:tc \BWW33/nb΄ Q`̓ﯹf Yy2z>!k7.cSBW/_l'}r-7!%+8$8ӟ LIHtLqp[̈c6HYF&k,l/DTL9# &A^ÞN貊d'fmV(;UH7X Q>ηAǩT*$ЉLJ^mUQ{7-\m%1@s4ZgL>5AOe䀞)3!x=4_@SO㐨h+a͡)FA 1{좾J_ZBG}@>:! 8}rgau"Rˍ48ٖQ> Ҷcs6n*`wZG姑 r5l@s-[SNMa~ε8hxvsSI'0<wȺuCF~޷b/XPU`7l/!P{yt6}6|"},+5`Ћ'EZ s%?j(&AwS+LhK4x+ j\`TYh,И:f!iۮuhNo4.`ًJE"?@/FTeRLRdªowEɕ,6403D 2.TF.WqK딩{; #++ ;_񦇘b~=FΥX]e1_,_oB<d0 6Xsp>#$4:J1wwTɶtY8$/F`dkD5LPղܢX= FܨkgdrW Q? \ z}W`t љZUgEufE2oޘ{T<"|tTj9fgPOk\.R2uf$#=҄6qo>?)N,qPocY )XLg1W<9pUSEFqȎ]۠O?p2jŲOpk|HMq631 RκSrb/S~TiX9N$uXkvK-ZP2E1 aP+8Mhi`'rro7]c :gx@:,vb SM][BeJS!:W1.6l8Q酷f)Y t!᎝y9v%\8Wk$;@Ƽ̣#!y= R5U<>W33Uxn2{ܰ Ѫz52bڔ:W)㑀'*vѿ\_f2I܃u0R<pu }"BnDBP*NB9aψs0U*xns Gm #,~k6]Rk) ar?uL_d #L%/â髏jT y$n=ytT[o}? d ƕCN,.^SQbI`l=b|:)'جxqB}^.Brf_sⷺ_gŎINuL3cu+]`)\^'/l%C04W ԇث쭮bGf0_кWagЧK_ĝ&r`C"oV^>4HJ&>H"ffɧ踩qWi-{R+[ ڔLRӫy'z6)|:w,b!hC0g>!*K6fkzj:UG>݄ޅ -8Cs ϧ[)im󺘑8IMh Nuug.\Xm>3;$XK0N~[aൣUԓ3ۥc;U׀fr\-pi9b8;e :,m:4tps=${.A0L@a[B1>v6d+Jf7ԣC6fTֈua\k &jsHː vBN|Ly&Pʏ“ U-YȒq|q(4M7f4P-SVt e p8 UmV#ƦL|J_:\䘩Cԙ B4%h5OeL'q}JJJP%(OkU\CfTq\z*Ijߨ]u Xvf{m>>D~#vkV:fC_F*>-i_fwr՝`8&sdyzbL.=kꘇP8LH=ތw(pa&O 4+N$|Ϟs g~Ӳ?d[X/62k-h ApfYi })cw^!n֕H~ʺ&">4u4*ww؛Sm_lp\2@\$:-G~#,$sG@gp,. ;/P7)iXɕUEr}l50{*uӂ-?z{FX﨩5rz^tM]HU#u`z @s|)3kgBs{&9O羉$ЀV"S٠A 'R6. bw@Xt?5TDxZQEaqC.m!~(PX?}m S,d]gTk=Nќ3p&;(>"ID~p 4r I" Co8}tSngͽs{H7@XuX7Vi禆Q>l`HJ!?Q$(C]OV\d*0~&Ht]ˌt7:n钮i@uǼ*s 59'>,H{[$pq'UE2?̎&#wU=   GDD4DM,WLP,=,[%, )qlZ+"V5 D:$p X1'_ 4iM-H{[(IJc?B ݜviΊDFXVC-Ftf]ی+O"(rP' uؐ{Y%JD\F5P[\U fE~Ѳ:,TrU"!x7@eѠwuZ_ phȡ@AR `D%Y:> ƂCv= ]1\}]= MPȸ =4[GI (^冣" t\+XBTa8Ĝ)0nn T.'7XY wO*/ai#vOZcBopԓVE߁1^2bMXZx}·N[!7{m_^"v>A@ Ѧ Wj7;or,\%L1/q#e}oC+.!J3׼hka`=V/N, w8٫+s' Lo@{J8߯bG_A{FeHɄ-Y*_RkFgY8l>y~dn{ϼ'v]T_T"&rusY(qDMRZ29++) &sܛ2͊_6z__tGxzyj@ ;(ACFf Zr㥗fGl4qJ(Da`TjG}g*b sΑT>;?xxsMC9vE"bPH1Q9Co6Apu20s2poYCFޑz}z @=[. v*#7oDz=]?aެ|/H뫑ެއuطHSݢv- n1w۽Zծ7;tƫz:KwqpVgmSھub-vޠkz w6EntmjO3Z-Q7D;KַwOE]QOF;G\"Ջe׋Z[eֳ\ki*ݞon`6^vCqnWh{lAvLRAG/46ի-| 4m]q=W]wtxծҶkn+a-lݸYpSjZMO^׏9b_Eݻקm+W`]̽࠮˻C|0 ΖCLgZ>>yRj9D硣SpІ Ҕmܳl~JjJ/?Q {R]dr;u|٧(P4ȽtrN^5NgN\X_%m"R7Nzw˕mx -伻ÁP" zà8io:>]n"=5keVj?x{a;jt9A|@I@bҠ#,dvDz;9H$F jiq$%y.ò4ͣf3]KQՠzGvh9.'[.n|&j@˳ ;>a A׫ 1}m7* UKɤ7 ?E[ѴzDoN5U#]&Џ@NJ¸1֡_" /dk"N~u\Ffo ،"7DFN/ZwQ+Կtrf+ Gz-<Ab!~ Χe#RF3,"s 3Ҳ\"T!Uia gZ[`HB֢Zu@~S m;6Q NJVIP9&<n˭ 09ƊmHo/H&apy|,!+"l@n>oy0z5,$z9) 6hY 6uͻnuc0 t&~?X[;t#uW44_o턐̂JIֈj(((:<@c51hqFSfl^ӏe-.xL!3^41/~D88(%лp.ڨP{aYQ+?~7k3^ BƫMHC]"u,vcNP<83Qtfûks|HY(NI*|:k:V2IjK+lTb܊bjW/FOY[;QgUJPvȅG1T+ʌjdtS8 2B3wެF}Ar0s&aes;>?'&,uaY  t :)O !f\[@$!mYbDzbE?&U.7E -]`7dq-3G]ZDMk7v~ ơ{kVP NE<yYI+,/Ħ{9 h R8?*WT[Dҗ1wP|}M,R%f4KCJCr[3Cs`\:%`nMpO+4p?PAIcJT*.6:2"4L{JN&2^%aTXΰa^%qޒ _dttX3]_j- Y'ב+9-Qow#E{* ZEE2Yu}ލ#):H㿋)Kɟ=~{"a2v$b҈&谄#p)sVoHn{3i6(Bm-Ld˅u)<Wb^fS/2aq*ͫ2񊏫vIa! MR[";&Y&*`VEqZkPl/]Li{KT%Yq3B %l] '\0kH,ۄez27|h[X'G_TFOǒ'7 ]3DmhS506͹<'y]JR$V,XWb{ H2X[_hװZG~7+Ѩ'+fCmTjyl5]$f F4U);N#efA#6ODHDc\^d냥<7jª^H" JY wTX?@޻Q|^Xp*[W˭%LEUo02,KlGK?\M7&@(цݏ%D;|9$pIgkĽrhYv.FduN0)8v"]f)/̝o;®Rr؛”ΓXB,|(#^DV_}N#3'՘׷:mH_2s 䰻hcLh x J>%o6f} 0;(I0/BP6YaHYz2ѕWXrޮ *PV;3ttgR~R ϱ_[0`[֠*fZk}N7fFBhLrWkK㉭TiS|*G_eAbØGPočjQv]]xGj|9E=٩lvs$ x(*#Ӳ\\/n874` eˠ!}pg3 Q|apN|`-MaV 8+cn1\BB L,#Ltq;DN'b(rb8 {Uk+^k;*y`Nt9qn{dzE[+[Jx!(ZL MmOtt'@vQ+Pf7At*yYJ\X5??pF7dt  V<{ ':돍 wQ+4߁orQ8|x w4&DHեI>$x*H1(]òBAn-Y!ԕɃ`w ;P-//>/{"_]@og0ب26ĸ83:-Q8?4txm ܒrLjEy_U/qB ?9ċ JU2yn:r"<ߨ!w2TAd5>pBU-&7+'Y?Ym -k +DxfټR.lo݄C1 6qv|i Cj#//~R4ajJaxeب9ӶpAA)u:꾋e>ZjH##Liju3R94)+nӭCvڪ?FX@zPZVzY C;녋£ 9;isst/q$5Ec?H`n@([GЩjŒ`sэr >:C[V{Wν7p/-b1@Iv9ٻɧ{z&#ѦbF7&³"s嗋ʤ i{&-4D=0Q+˛vЂ@oL_=d kf}w\tpbcq&^vy<ck( udOQ4}ˆW}wܨmH0p`FxzœqޛK)}o \Oy ט1iXKp ڲ?pwaơq:TDZ )%HE1.DYUw?RK: ƿ|9J_04 ;|n@St{7 TX92q: fCMܥA bogBb~:N,ՋՅZ@AKwd\xr=J4]_ʏ?`N#=ǥ%€>1/JAJL'V8)m~@q[6oXsJ`FPx΃--ܳǁו|2 h&)Y@a8zg^Ï>?ln>Ǝ?'q21mgz?[IK`69CM@"< c sӍ g!d@ypl~E2&?_! )uȯXx e;M~{8G*.3X>%:xcD$Eq,i'CVt}q  o954e<)%dVeV+PD=fC;ԈSR=ɆdvlrQsweX!;t'\߻=P>MWU4X) Y@{DhMB!:M/s IӓEŴ8p<$䮤%+n_F4(&Ҧ:?(M~ct#=1Gڻl92bh.1d>f1fk9J2͢{<}XȐV)Ha:6TY:AЯ/,Yك}?t};`s#ҕe_d %^Z9mO30C @9Aoɾכ^68.2F|bZgTةyVş/jDݶ)m!ΠDacC&k;>R*; [,ɦw(VN-y)[xڞPQO&=6C3YuJD.ъnX# (,9/2=/`$Nq[G?*OLMRx4s=eMQCԴ K]V/;SɼqB/sD w+Vˇ5 9>raH6O( 7l/.˕b!&g) |%}㼔e) q2%EQjM)poƉ/*ˊ##*Qga?eVi"姰l!B/63'>Y50_ľ/ TJO[,| p<(._uqo3h^T֓iro3l6L`,H~V32VNRIk.gl#W=tބl\@9[eV9Whn>o(i'0C0;޶Gc x%j|PI¡ 9C?އQ],*s>v dƔU/_)<ےӵ5-uޘg<.nY %$ _G+E&PG\_5z ,'$G N*<q0"1cOL\ٻeUBٚsߡvZYhOS]m-7 p;qVިݫ{nM($ y}wak6'hTS] %*07uBf0g|{Fl OCw =KR-g#!CqX>y)_2?Wazv! Y[ld0ӘeEI}}ե'G]k-ѬqSn3}J/c1rAy} ST}&j7o_zn@;i*iw*1)\m*lNEXq^^E(Vkvg$o05LBdsrtzU p+}dR^фfĊWŗߴM>akSkv}4Q*& ǏEݻѸWyίdn` ehLMRx}oce\ŭU'DUN V '4bR6[cw?n[phsܝΦ aփ0VSwI Fft‡U wtj(QFMuUn1Eߴ6@%!$zS{fRyAK^; p!+1]z*^Ҙ@N8M6KT]CbӺҘ@F: 4j:5Ou}8% xWO̸B$kėhDOTt\>/*4%Gk֩<ŠG;*ߋȫH^V ,4*P֋&wUq}PEHֶR-(OuI6oi u+\ ]W3r{~3ŖEߝ@oLA_p ɓ6Svyg[ K`٣A)e -S=m}uIns:˾Ï&r-Z&RE1Y't? AnFl4摆*\SS[ Y ReB ^&;b{n2"~N$nH|#Ƽ)s͑=pMɘI3p;+|FT* k<,pwKu '`O*[t$ϓ $cE&Ư Ogk-`NIuf/,]9'|h;Y* :?2P! 5e][KN q(k$\u -lvjDn| X mO+OQ`QjƮF#;U, Wڟb׳Y5{gEjȳSD:7s?N-0f>1y)aOYzi ?-^ٿk_4'BVv3W؁̉(93/ؼJp0MayC>EfImCMa.}=w#,|M䂽*T/)kl/PJiVCo8B3ޑlBr]O쇤ܟuКd92Pm%}WDh @Tb]9d ˗>1E4O+E9s-B~=>϶2 <,Уڝ yL32 WVnKW!_RdM9j:Ŭ8 ;8;DFQi'ҷdR[ e'e|bxD|rNqɴsIbޭ1ofap荥Ẑ(4k.C5G \PEV+sG$ qbTagq;Y46/A:pSSM PhfIK G` |ۚc;XǘVH] y@z̨t $YŇxbaik-:~d>EI #x+ ]+IPLnĸZxTTS:F;FXcev$v@ nÆFl*fׅsVzd6viRb̸s/dHbڷS%TKi7_z{ 6 -nG8Q?n|ےzPb~K3=pz8. @% ^\'|)yz 9y9փF1.BB4r[bH{| âi7I\ &$ .mq*Vm\cP ;ldO=?Pz) )B3?Q v U𼭙SUkEsRp0Pz?șy.-fA֕Y[ wX X- uRҳ1G'XLa c׶A'Z8ƽX7thԯĖ}ҏV,]Di la -dXw8_ќPBOg6#DPT);VJEzF\ f0àv&mԫ@Sm(!V95z=BXGܝCR[C4mrO~5X~2Ƿoމ u7T쩘Z%c:x2+.xt\:< 4iJLyJY[/8F2`@4A"uTF"Ğd“HmaҌ{ B#nXݾK2OyIR)pO.v>^,)= @,Oߐlpt= Z\zۯ`:?V.97/Q9 2!yRU[;e4n"e ?uQg"V PDܝZ`CTwնZ~#~kEVsq@Z e~,NNu >~ŵFRd V0*.*~6_U0nOl-^ݞ_/m4lSdx},?~;"nTcԓ ¨ƜJ͠ /{^BGwv+@hE~y?|!j@^l8؟"s;\U L+@]Er(KA?!t9Ӆ'KU-xZ,FCQي}cҡ~JŒ%>jo!Isn27uMN 8+7A[!{$|U NJy`H#A`b>c:8!̘(#mNCR`o3Qf.*:~P729fF׳&צY4aߠzba[ShtoZ2||Ik%DOzzw O 7)U|FQ"!n΅ǺB, J(Ȟ|ҷ߮- Gmظ:XN?}bmʑi z(%!Xi.Xkًw$ԗH̻?ym`)Bܢ`nuA%ܚCsҿ]F*x_ݏe?Rk ]˅4 f]9C_͕1,l"GIY;2ḍ4t8T8!jUI .3 zT곳j쳴"e-WFt01|M8T z &6d72*-tBOPX]]4s䆸+~]h~ X,)|ob8Uh Ok\^2,ZgcTt8:L&Bj_Ecߝ]p M25JtX`"D LNmD첬Wħ㖿׋n6['ڳ ?٫%b@=&=Pbn*mHa|S!ΒYQU]W`h~emdD6=6-w4m;0*rxYHUP\z,zc{Jf/pw|7SZ;z3w#Qo:7U"鎄 tY2t|NjNLX'~/lD>0׺+EGnI]~wɐōnJhH֜3~q3c3;,.1phMÒrjqD)Q`GxE p|y1y uDa.[.opc)gK%fE /Y!D=TDB փ_bUA%c:=%5p%Ơ$EGQWi!K;fı'ɔ0!KÁrґn<p(kK=W ul0|UGY={ULy'~B0ikG+n]M,PҥZ!Xr3|pk-"__uWU ݻ9' ml"zTσka)&χq跃yج2Ʊk})?؎^t02ti Cb?k}q0Zp?RIjԮd KHᨵ3ZQw V<NY3c]$E}o(.v)*tƦ:5|2[1\zORH;,Xr:V3DC^[ }.c#TK׆Z܁/s65H1q{ʇA0joeMg6q;'Üيn]J~H7u-(B~:7czuB8$XL-Uo" `X@t$B;8>L.)ᓔ)HcJ7|h8] 5zr^2f2J$GʟH)/ jih#ҟ1tuK-/JTݑqEuU2AoP|Z4ಹ2f̞y)'Gڛ혾a0W\_ck*}J۫#ˏ 䐖'nt@tF:PP8GBؿbD;a@}:dP'%plfxM{5mms1շYL1|FZ'Keb)_$W_XUS&Mq d(OћDDvx+6N& |=/_(T8D:<djݮ+ Vhp0[ކwoݞjRAcn͚=.8 57dB pޝ]b1hRPRn"ZawB^}^>!E :h Nw$ blZ>P<3|_%Jۍ2Pi&abiЊc_d14?JA_sM=7ȸ!B 2R#~Z(LF. pc:Ld0 i{Rk/޴Eܳ:&+Fad~  L+6)Vl΢ mj_!Ry_dV أxQPXR^0x4ѣ9E7Y0AͿ0LYͳzxS. d 4p}]~>㒵0 T1 N>zx}RH} 2UU%jz}kSTvP vYʜeOR.!8s[l4ԃcߕ7~6KTJ<(!ߪ#yyN0{H%( ^GL'4Gg Gi%Ǝp4GWAM|6SCTקX60gI.`::8~No&bS;5(r Y?0.qq]IZؐ}:; Qq2kyt)Mhfad]+i'X͔a=bLY8 N` Ux"SØ:FNղZ^}vR--F́Q֞(O]3zl8+/S}G8&}N ˬgW/E{&΄ǸV2~bE*-AB `RwNOqoCPk KJ*ۣJMx#9SJQ݉lCVVczMN縈ORo0Må%LuD9Tl ULYʣd^U1N" ,gdѴ;- b3YQ\:~}h@əe<zd{^LB7t%{X|=+4 N ;=x (9 Pod0 ՆEؼg333vsHa 5; |~<ßCHN00Puܤ(v[cO)K,1G D/qH z^Fxb\$lJ-k=i1'ӖC3^%1fNVmK!ntGEdNv# -y^)_ܟ8꽱״w 1]+Y!C8BupG{]V#0஻q)lF oxы~  IQO]eg_&a9\ɔVsk:nnkU )Vqw ZBğ4%D;t$"x xR'̏QfJ*qYW-uOprՈV,``W!m'Oh4X%;A;z3Qo iUuT9ѻQ^c:ѭD=ߐ\p9!:W'I+נ6öY yxVWjctЈńO ~@E7}xu@At@8,``I*{WjRsh"ʄHvDZOD I iW}Ts׽S,0^6UU+r)ioOܮTxX(nj'*yGrl(Ood}yNY@X$i;/V4+Oa7(d2 ЂZ{ӵDz6<@!ݯ7'Yw̡0? dy PPvL-H s|0V]EP>?H.E[ZSg8'Q _ȝܒsq=,4QGQ!|UKʳU 4~Jb dteW1HpbS\ cӛk8f I/GEI Xng!H2.f0unm}ߤw8Y>.Zxn_{61ar*؁8"~XN+aaLt sUͬWE =)id/RUH{7>b.3r" N_ Sr7m."G86kI^B߷7jYkt̸Eig0}úWF셁`FtMK)?!8W K$5?>'qӉHBtu12lJC[کzX'; /2$]gB~n :ur=:Wh-Tn#న"KCd(Zf3d%` Db*s2mS` {A\ZUX|Ŵ(F`> dI,:$&K; Wk`D6v*::tI暝}-(=#6 ,VˍY[tľVĞ4 `#*&quHP5>-:@Q4hK/A ʹ>Zi`C gyk5`֎{ÞDz.*Pk kۭJm5{ iI#/Y :AD T3hߪtW.'"CzP-( rdkRC ׀`I4ߎ8I;?!a~8_i xT [@ #7hI .l"3@x^q uq񽞍5(G;/0le1eC>kWXuB@g L n<}?ȍ.6s/#vєϖEmƭ56n135)ۃ&=giA&CY39,JjCpEx1rʺ||4rpƔHQkB <7[$c6N(`4),(4@4n$X9-9z '`>E>H-l*$;Z%nq\'4s02{wtHdȡ9,ݝCJtwhZ(\$H? J%^+g\Oq7+O5g:C;up6jNZ.*F\gIG@ݛ *"2,+.jXv }gϨ0y@KԌUI DhP0Sٷt ?f6MCL"嬲neW,Z)DFp_B:Rn1k<x|8'FB8~:_ܩ?z$ҌxT^4aI~E 8]䤠]Ɖ-0^0~W3xWvl x+K~h,sgoo3+M~~a,6Rt 4gxrCrJؕ#b& ݘGyugݹ,BzBGIƟFo PXɶ\Ȳ7N){kX N@EzhIVI An+P `1[bmq& 33F4߬Z4pRkPcTZ"3IUf@BcdS>X~0^'`td6i31-G̈+Bk4!\w Ggo($+3SX"jf;lipPݽXeٱWF$P8ȑΫ2tj|t??knUZcŮdF{tiӂuY7t $Ӳ0l&m^Kht?4MV%8GH66c.q]ȉV?5nMkgE$`/t?cǰH*Ce9ݺ(_}/~~d2s˅ʿDA AfBt z3. i'SOh>hfYi|>X>:X3>FӟiR{V=Ǝԗʤ D4*!3ХY-g@.LD|q?4^ ^Q8RVIU=UA=Cc~pq9p I*eSG_?CqoK9v)ET~,VzT^NbhJcI4frN #^@Jʪ LLqbJWԊ>sk !Ⱦp_oS8A|v`z3>R؜D Kw#(Ήi2tCl t@Ĩ xY'FZ$IF acN >yEQqdrNCw"?*IN]& k"'Ժ |]( >z}c(LaDf{}DeXZVGPy=DyRlZ5 j6MlYPb 9,HЂ.H n޺I?ݝ{$%GaãI%l MYE^x4,EDs.`tLXR%vb,ǘ5 W-lmuxd@Y:APhu2K@@^\G-W2X@͉ 2~TG,#ij/Ln_WWim' ~-T򤵝p8cj4 CAŠ'{Lez&(EA-8{\ZQ~}85kvSE?']獧|cؚ COպW N}s촃pu8E_hv/x8/ =I3q|9x͟|(Z6zN s[-x4n'>56r><6f1Zu[^M@VyL4Ş*Ex2k6HφEI؞&qh7]΄^p7 V%¥N,ќ-Z -L df՘|\ O4:U7~ +є~hەŎKR[_1nZ)yH6f+'BZ(V]rY80X[ lxˠU3'`XR_xb:jGNq f=fKDw?(ҏkh% Xqng0%§;s2Le+{uQ1θ%±8׊qUk7 n2ć6O\o/_cTGVRit(%EG7߮ݒEG+>p WTEi(ɪOq3!3el EmEqV}VvwCb9γ&I ZkC#u2`o4)K2}^oM/ef>fZpB tϳh5*Ό.( ՟ՔJdW//WA™C2,B }!l`>4>$,ۇ`Zyc r}A 4;* E|w!q!hub'xkܜV \|=e[ZO% Y(*͢Cza!z°j:Aw+INRg\uͱ9ـBZ E)Ӻ$B /BK请hi~KDR >!L_\k $׶GvRf[f1юr Ya-^ \tA 4!Luba(| lYc] gseFбfؐdeBTD%ZNwVmry*FCֹ0!,c[!Uyi2$KNssy&jQPg&HG\p^ (HF͚$BAi܃s-P̟ZH8:a/uŘBz,I8 _KJOz^# cCyUm B9YL{2rvd#:KD g"BKUz 4_<ۥBK+@5 (fk:@8' *!O8#'zZhz֒pZ4ZZ'e3VY9 sLT]a-"MCs>, tQ 8¿m#-Dy;ɣVkDE(yư5Y>pS[NfJOh<7MfNЈ^o}uP w&6AXٛ#ck0 _#I^6vNSוgVղ>AЅclV.ubDԁWvP?rrc(#zHEAYꙛTWTHzR=,WКXo͔[k{stz)x9Ũ8WD b(.$ȳZ+Jt~k. ? :\gTyE݂@2:4B-Z2U||#aM'>cdEbf*gBWr6habV`1E'\AL %&.[)m]C[EǮVTEOhw&Z  0"@^pWl<׀~mE*+0tSQ\:nvr+ww[.R`ᏎBg&@zANtq ԰̓+\ҷQ*V9q“+bl#uby3ItSH"l5. _gLwsrRJt]nV*J>Z.YBw ҶZMjae60~Nu \2&Hqh0 0`doE[~ y{mPS<%"!=Q6cWr$oRc$[{ }i5ۚ8W,ҟM $7~U%@`wZ$%ٗ WQ6EsWEXm,@ѥ< 2;=53iCi|Q-5dbҋ=0r%)jv0G?" ԤdV|n~Zh)\g$PFhd Byr5r@'f;k.:8EB4cWdwXd ;3m*֚:}Yŭ6;pj^$O(2\ j4Kya'.]2KJy\ )V.c9ѧ-##n/w1Mz|[Q7i_Xe_[NlNr>sV D]m)qV/@a ꁐFH xCsf"o4}\~h @D:;(AmϖÄQ9>3oy~)ZK6^̔u|7FУUw38P&(X ,xE4VQ|H^}prT64:kX㕅`)!ԿDl";LQ-w2]{9(&b´涬t Dm}hWs,'їKBnRYߺj3(p:xqեMf+ Cv85ɧ3f+q([ I-i&L% G7A94)k@N^3D2 %]M!_i0gY5"`0 Q'a)tj&Sz=Z4,\mE7qA{n˹8 fmfO|AR!=?u?XS .[rhf!#u5PXƫy= h1xshK#{K<ۜ[О+T>*y8hA* ]MW3\xz[^SMz Bv]NX@,tLmeu˥i5 2 G9/97es ̝x "HE.`->v nƶM ۶>=8SEWnvD Obv@LBPuܭ<ۋ!eGC;tY8Jn.4ƠQF@Xy4ak_2?MԺU_3GE*WH95po/#11RռRGRMbU[S%x'UtXzG=@(@m]kīKRYY*3K 劝>ۿ_~ShWVA;ƺSnB~#\`C5b+:~:rm?][ݩV=tY'-D HB|ϐz6b`b13p?X qRMd?k$ζxx#e0k&NBM ±; LS ]όٯr~'v;Q#Dei8PQ۽;6{&L:` ?fӘOjb0~_8߇NK= ,P},vϼūH }(7EYˑ.؁BM DRm%FI,x'қXdcQ]6pyoSf~^Tt@P]0(_ ڋO=Pʎ^ (=NqF(z\a.yP & T5'`gFw8}rkJ@C ;lTjKr Z ]n> b=2Bn NfxW9?GGqdDF4Jj۱-@oShؘ!Q4 PO "y"g?Bķ*=mUu4dӻYŗ噱M~k юTk8ltl'=(SU'"Z8A?n6m -x@nn}ox '}-1kN1 ŨB{!xH]ؘ%z|:]{AP9Vt@Ez`j)&AȨO&^7$"CoiA*eS 4 OixտM .VJԠC+j K\jdN&i.= X[[ahJ׈_j0)ʸr!\{޻ZVSnhn*]Eq7<ڧW3dwQγ'6l} kD-CG/Jh¨gqfk a< (AhG<l:a܂ 3y ޿JuN֧OWfpIl@;aY l^iX83E|ʓ ^'>̃c½a ־ 䑎XJՇAT%h45]@FL/VL^٤-KI?E9/T=c eɄԗj'~aqچ4%}jvAQe[{Āj=+_^wŰ]a81+/ ~HgxճC0Gk` 2I1 =d#Uv V_ y~%٠n@ #fsO^(kQ j2ՇrD (\F҆dƦYC~7/ik{a"J&K .f>v HCi_cP fQ_8K >"\}ci<ԍF<eu+PBPLpfwX);y8(P'd0=ӎo>V\L^B2khfnjc<_uCA!a9% )DrDɾ0Gu+*y7J:Kѓ]'>ox =p1d~v@MAA + 5x 5BXrwQH6d6,3IVCt̟gJMx_KMOlS@afI,WRt{H]ӐGY,١"lbXcM7@ γ5Z+`PGoyD(lQ˴w1C/Ìp|`" fFr S%f~"ޝD᳨+8"}`\j,`Ujed,㛸/ /-n59GԍwVؔo(,g_mCdS{e !it}m$P5g2'5o*0W2'JfRߤJd&Q)d2[6(Lȶޥ@:صE`%0dd@FOIMe+ j1a&~u3]bqD <y֭doq1\#%$ਇIІ7 * e8%}sٽ N?\{3߆CʣPe\>.ioܵ`W9T)? -NeewI9g&GH#U8Qt41H\+JY3;*6 ]` 2l5PH$Q Go|ANpKYY?!I2ۥ,(Xh<2`iM=If$QP߲%>u;#ɝ=#ي M@&[0x\MlC.ozۅ:ƞdDmz~`w(-O BGIJ)}cC-^u4=ذ0j73HMl}r7߄u J&XLg, Scv}};U0jG!)*=*\bUh$Ǟ9d?AI$`8YjD}_}>7g3д0. W!SUXk*Luu޻'7d]4+&R`u).qrfXBOwY@-,~r~k]fѣф pX,PHPĆ~6ra;]znxfKyſ9$F2bbLbeVT# $y}Xe3(aGfl%i*J+ڻyy02vF^ *v#4iCX@Fs?w()T=7Ғy.|Qg#^QHsM H`iOrJ8h%۱T!{~{. ĕh! Yp^yq^D 1 ۿcwv+-G+c ]FEEN<Cz R"瓠}ZsN]05PYU)k4{~!j=%W.`'_(zwZ" )l ;}Sb@ܱZ|´%Atw*hHXeY?p_qky2[G)p;xI~/Et[&2j%Nio C9[ϕn(RktB2?^p޳MI hvk;{J%}YXAyT7uh!(jq;}b*!C:+ oE"2O.D3@?`{v0h@K/_ !vMK5Q%XUZ3LXPsoY8X1?\٬)(&lA\B%eq_)tPD jƌgPǛ.T d#D?k3[xy/08m <ɳ4'l{reEԠV .:k|Bmn3 t1Ůd,GC& ֓ A,5dzikIKg ~C<A(6CI bS6+ #g ^޿*qJ Vo0kU)%%^/'U9\n:t,K+;e,7Uu \I==/}p>UkV$) A`et+HELHwnƽMcvZgX|*|% twݺ˘GߍY-/{L`r"ٜ]%,u2ToB6;$i ܀#UsMěiE{Էiׄ53[DZEwU#&WI?Z۞eSPb\tsCC޽N: [TWyQ¨en*7 ׫3L!^C6}OTyy$+V'9.=7O_Fh/,Y)4"5_Ȱ%IWIyX #ebqk8d)Eu!ɠ,nJvU2UlK$h>_DN@VNX1nXjU di!hَY~uIrk[McyW  iU6MؤOvYc2eHZFO \{9D/ȩs9ߞ#B{v<14SR.[Sf8%9EyI^mPٶ)Ry©y # GM.5/vgd%k?{hGPO~^Lbnw'[޾XQРlGG *Q1y${gCht0M;ɳec6ʹr(w:S@LC{G!clhdO8KRiL[#@zqnwꍂ3aov}KFcBzFFsj1X ͜lYdrCr7WeX$a;o3G4,'v Q k%h3!Kw:0ŧg\\+TiT7V׎8/pc Q0$E< |m,4Fv"ɵyۓFDq?\uBs gpBcS2X9_n fB]P16 m Vq;tO6Q#pf%}oSý=|mj1l0ܹIx:#悼䖢l0x4Z݈*eaGf:A_,9ӼCOו`Ofpbbɍ\XAЌb@c+h_VhA- ,WA? iw|۲W\=}.zh.^Fqw8ttt16y xy"tZ"FϿAm]fsqpv)&\^J-ad,) BbLq/hM[+gYp`ja>ŭACl}/5oZڙpij w毙)dCi)29euxıO&OqqZY4*Ca }m}9Kd|K6 xiNwh!)s<mDeEm8 (@qGژ]f !婨N핿K4}wpjq![L"}t2͟##YxZC$fXp.1E3l~4ijEsE!j+%ĕ.?[͹x r؄"Qon恶a ʙZ*`Ӱb:ÉYiW53|fXo8"GQ2ڹ XdqδOR(Jo #zfeSWX ^c{ !$,C8@H4|ד p%zEE =zd0X_BC[B?GNjSTu$݀O!7]vZe Ms\z|C}R~7Xw6[zL/f FKߜ ='.;.2{qHp[E*Nt!AóoA:s~8{i"iڷfK6~B;%ᑏ,7 p[oiH|1hem k`(YN&8 ,¿nHݬKʼnq |4cJ'b& 5ͫ!ʕ4orӢHI+ *y$L L(1ѝ.!ѢH{cœD;,QUqiɜ=3/Vj ؗj5t(GR:ޫ|d@'hsJ(-&ت BDI@#s֊sCCc'IkCT܀L ?H=`m83qbwjnFw3/0{n[mx5\3ou*lFƎ:&$ H'!x/)k"߬4:ću0[VaҫM]$n|qJ4_B_[^N%ꡨ4i^a4JSQzTK"~ӎ1"}dU?qPHn>0r&p_ƏqV2oY)qdON;)gvm:v'YJ-Į]'s pC(I #zkrd$Ȁ }Uƨ#B:0EQ}ʷƔ1 e vYB+`Al1b:m]w}bIϦwc]7Ѵ | tb F@Tv*WrzX\)OjnƑ{dҲxfMۙ6wITo*eɫ,MTU ^H;ַE=8 {Vc4HHv"ڀQi3TmV# ?j$O #p][@W1qp vNsA{!pᠭQlgbM_%DW3yą]A7DbhFKEհVU|%h{ۣ@,d#U*&R^J_bJ uGהݟXNm Ki ]%%k+[yI<+ՐpD{e|iƞbS7Lb]dNR`P:;+̮Uk> \ >i̚ei]EJf[OVl/& r߂F 5ZgepA&(DNccjϱnd ;7c?Pf!cd+TqoP ΣfF Ȁ1VjwŁc&>/[㊗Ao>J1ƛ7ˑ,W}VKhYiO8q[K/Tbhj)5 ~3f!0,t'RiTAR56M[d6h:b?-rw4-utVƑv3Q]LK c, C}y$qKD>ܛx|HhL)̔\~vmfDJ%lp-TVj[H%+eHhҒF$}J ̥4 AC{Ge-oygk3D./<֟.I#e+ױjf7uEbRr$Ŀ8 d([Fb`:d FZ=P$ 3P1W?g&oT?M?Jb/.@VRՈ~;.2)i^$r;5q*DI*QQo A6EiE"w`j~)=h#1(Y_uc6΋.?WEv>`H> FQ3!B&c8Uy\"MԳ 3p y$awMtHUeTtsXz ]uP-,Pz{Y1:b0viE{0jHLq@tGoմo2O,4 8AKNwm'4sKTuI@-HKA S^AuTN d68rNO(xN%K/<׃vS\HqUV 0n˰m#%Pwqc"T34*2]%#;4%qY6_$Kf8}}jm{ӧ`17EBIhrW8}m^1|Wd4pmP*f&0hYwjkISTU]bd\aֲ}Weeݫlվ) Р3xa"/M)Jbz&/э§GJ.嶥uŒSM(tBO<{9y9άhxiEUgd  whԭ58:E߆עuZaxy}>Vrn-J1zw$-_acp[M/+/vj_wwc`"ꘃ3PP5Unߝ`QQGlq>T',-Q!C41gJظ{ald7`I+^e#o,o]/=f si~|꼢I-5gAJ@0J [~&U+r*A %  lVjr;'vQ5U'sc|>MyNLϤGc;~A?T){Ɯ<3yGi@%!GG*iXr[wK^amjCiڭ2V;3D2ctWK>Jn8+4qe:MTZoN] Tl SL)`@ZiڳR9yW"},:}~D8VV>@-_B`ʆ{pKK%$Flp_~S2H *BTo%i.,irkA#s_%ǘ L2f4.TnQm 1{{[%t+اgsgRjﮪQGpczQTt-CqdZ|)1ȃܼ>2`hѹ__ f2S;W5gVX>*mfTrƈIN)KNhTx2kN؂ҹ,2֤ݹacU {"N/֨msS=? YK&.yָb8#qV, ݓy329^ Vf4hlb'F*us][[ȯ:MWӬR!WO- N652>p כ*#|0*"&R"0*ߛ5x]CGOYf%&5N;Wp8mŀ>:4nJl6l3gVYч>}<,@A]+B|~XӋ}F/LL9z/mөF1o} Mf4RB(o9B`k ]t`HU +W9ɹ'EG0o0P7YO m2Hj,w&=pપQI?_TmMo8A u(Ȁa&T z)0;wys87<5qeyКW'*m+h˛S4jaSX:r+3Īˆb?d`}t5㲃a^JgN2$)7O{)+cy Y~êr"٥G p/ġ="I4_ 9<6 ?J F[`6`7n8J>RCW^AֶEt,yPw fSu @r뚉bSjrQU UK]*^Qhp@)#mĬ|m1H"=C^c?::#j!-ݺR|'e]J<:K΋^k3xQJ}龺xʮ A!%?}Pgc'nB(P,8;X"<ֲ53m(~k0?&bz忽?xŐ2H.0֓SyiJG}s[;a̞pJQ _Fv"\"4dEtֵUJrBˠA-UZ 9(2H`l^*ܸLABE@Έ+ ~͇mOŬcu@7Gm={DM֠`C%dhj^8"R639Z˯J¬C="6wXc(h ƟaFR68 -ͶUHj}IH]*^~(хА6.{`Ê?]}PesO#[,hBnrܙw2%U|=04>Kb{b/=IOΓOP +9` ZP,q[żPCq5 ,fEDCF?*)1p__Eg.:w)Iyʙʟ{VNK3瞧;BXfK*#reDLo!L$t@6o {.\ć,&{[ ԣ$*bpތi }Qr }{ :y.<@7#&_ϛ W+ uʱLE:ڐQl{/AQ{Pz@sAob>"s`IPjzۋ- &VoF#_,R7hPj1BII7$bưfxWh6mwwh5JC%\CT_,Ѩ[m;y.!#  joɨ8/ I _}=>$loWb%"x^:nT4Z:˜dѢ\7MGƵX56i RO$T ):O58.$s;bj;k"5vý>=Y"vtΑ\1+< h.$"y?ro(֗ LPh4`hig r/}$b 䞵qܷWdi#`Ͱ[8%n'SC{"]BӁ{..sh7EJfVW~{N!-+E<'>ī^l_N ZcFJ 0!!.`Tq~mK}>ʭkF*i.v2tA/+/c'c6ƮFx(t"#[.*'S2+v:3Еh9AD63RkN=;QNϧ\  Awp2$I+[k~гwp^wi&iJqdD`#ZOuz.rP]S[aOyp Ga>\КOyM63(Uxfq!iMbT=~ iq M:*xs< F]!\Cc;4лα:O21tCZٽf kr0Ěz(+Kd$&@G?ޑ!^6LVdH|ȟ(B-:R>9RIZEzSg:8V` ōM\k@Sɩ&^=u)=OKgu q\p|d4s)JIH(MIp$Aє ۃscb sV[^ߒNf;1'G'KBg;zb=fi յ:;ؗeCLیө y'W|g24v5&`ɔ\D' >q$xo]|fŃ2!-LFG(j҇L W,3 /!8_b&9$#4RHF &v1\cƗK m\q)ǣg fB~ULgolDnȬrJ^*A.[`#>m-|\o#jLeRn@CVA<ݩo Oci񖊏j~r< OJJVmGh\gB^4,FXaVBwqRi4䛂1!/|*&k&|%4o.d@2?vjcgDI=+I}+v?잴6,_@/f!XbXzbAJu 7_2KftcԿ[Xgy1)+in#e6uzG`[R-g3 !LiR{E@n*՛>9*FrJ6' r^+bnk 2ȄBm`+J^۾^wk⨶#= ޸pnHM@~ĸ Rj3Q]zLKpt1#nj b^/˾Fa^*8aLGl cvF3j~AȻ^{uB? R!θ:ק`4 hOva~9 R)]$""=.n_T*'  (0V+]do@g3)r7FFjVm2/ﲍ/e"twc~ց}|:P qRI r2`2#a:ut*B_ّI=svQ26=$\ o(q{rD L9) $wuŎ}\6OXfb]ޟbFk1#R5e#IYf~ r&kvnr7i)kq_EFA{~.!aH~9m>bw`>6|^%Xޏ{ @rVLgf&mvܲu1UTҡ2SSΈp>D>&;Je]r깦ԅq')q#n@oH뛾9m/vzI6Q_j@0n>U n`*ɖ|R1CrfkM E](bvŌB0!.h]ZP+VShO={-$5=8vu^(; }eiG -10BZiׁHj^e %8DXp4FSV{;P /x_ )G]n}R$QgTN#*j=uԷ%uAV˙aPOm}Ǹ8 C 51(yWXGg-lE!|۹ Ɩ8"I6ZN8:A:2qMR8uF~SGM {==&zBM-Mj@u^9<-}4pXy5-5DHreH َ5PdMuM77<93f*'5MYn@|4O2pR@w1գc);D``f(xYW@Rk$_ggK)/̩(3ߘC.3\p Q/ikm$tvTBH@--ܢ[q2 W}(h\=e1Hϕ,oK7;6O蒅+k׽ ib"ԙ: U 7j]ǠAaYf_: ΟcĕAI7&|SʘHHJMYU#RΜ4_\0Ėy".`XITN>Ej1Q d}[[Y%a d<;:vpp:KVՁxJPrdb.Ź]poFҴfC,J%*+?z\^9C >ڸ3 U-/?iAL 858lu,CmeMdd'AD86Эd '2 D1vJo >`,,=O֘? BX>ь(KeY߹XpŚ87cx Q%e|'׻h{s%S)*fzw0v&FRN LD,éI=ΪQpS˘-/8ݎ2~Uu|+.#96G,zOƪ*VZaB:9 qэʣVK܌[<ْȋV >^{wT%)w~.kj\1!\ۖ7 \MfnDzc˥n҃tq`(RnF0V ZN׼ {IJ0oGKRװaO2owҕa[q%u9\YԸحo8׻PCYytG֍Z'6 4[I9 i{憿hxc% TCu}Ye iK q(=x(hRc qW|iz, wڅ<, pZ,AP*87Ng{ P!^l8ckf T7άTgγ{3IKɼ'xޜ+37~#)"P8[4L8M31g<\ ZXN-^*Vvs~clos< #+᪶B ?MXK 8OⲴ7a|o+,csM3Kx7􁹭 ' n.#p/ЯlOq\_1B6Zr-EVMgU'I3 \@%t :n~c{F(>0 N>`Őà ̆gاfTƤ5KQI s* |X۹C3N}ZfIS,Oƣg!QBGqnn1~A+E\b$Ok45,O;7F.o.6ň0U6H@b؂Ais_Z!uC;> R4KoU BwMJakU NCLhqLFZlKyN"fVݧk* Wcs{ RED4 {-L^v5`Y*[iNHEQ(2s/'5eG5R3J={q)mߖ~ ٺ“l쳞(k-aG}VĨ`V:tISAs, 5l;X%P׮GSK7=@зVW޹i^3Y;̕+ Y$-V'2&V9 β\3;(.3"x:%efn/BfM֟'OtR£ (4_4hf}W,7ّB6 Qunu&&&|>dFÝUQߖ5\d tY#-,5ơۯ'R|p&R DƗ6 O "Aɾ]⑳/X3pA֋\cp,1!pb-H;z=.*'픷hh"0eMW--k|,W'Qabb9RE#WͯN[>QsD|!iQ}⚁,`EڥTϮm'->#OpO#RIF5Sr\sI >ʖ9p G򆂅uwv,@?j3/KB>h~_`*cHQwZKSwOI]V:wtc ]Qb;9ӂs5^S 2spE (oN2CZDnqbVQ\bb7JϧȕC`g/M -r2 <[]D =;2Gߕ>Pd!fae˿k/@bum =Rگɐ<,>=%,R5U7\uݥs}7`skI%wKiۧv/C qwYtmB~א]u'_F^@H~2A O̶؅ԆuG h+i\y x$ZEb;fi9TH,Թh?.*\WT3eRo]}ϐۃgv:E,gJ=5F6 Bf@"'5_/ iTt zBR1!cȱRpkǫaZ%?:8RWr!U \N|,V}@cx[f)o>NهόSwxrEB[GEԑvn|<`)Ax"M]<0j䰟28 BdW$~x1kGSVf i8*aۏh^u禴ŠʹS!?)^Lw,H~ 'YcDU\N!OM뵲sp*q֮nT~cD.%7Ei^I.M6@{8s'^w^3hLKFۣ=o ZVj*i^e8Nv Hȑ⫻V}j!<=8$En*Kyܬ ` {)I֚S^ф44& an-ÀB5X}/\#mnX4Js+?-x5 K+ ) sobhdShIgі'n\JjemyFqFb(\WT!JZBE'dnt>,j$[ArzS)74_?@/Lsf8q0Zg~b1sT! O+̙ \d.UȲ,cZ u>- ,G"W>="&:$"fm)hI 8|fwI 0,HaRBc9oM `1'BJl;Z]5 |Kn)OKnGݼ #3+RɁ|ͼVKd5 8gR蛬FwJO}{lK^m6}I:Q?㽠uSqdܭJ-Vy<4 8l㝮Wvw+ʈxs$/[zb`KG~2 !Id`QdLH ;:v9vԴSA5d(I*FF8da@4E-,JE8(CwrJN]WU!?]E'X7ul^ a U:t=\nK9, 0nPQvt/{a'8]vF on T5gdRxcݚ4ݺt=fUJJ^p4Ęx(0$=A􉧶z6  QkJ\Z %r( "5|gJ*uW$f}bpp3kTt ̖Ӟ4x_k7' @v arPr8B#c盫HAcM9#)ZNx1Ɯ2Afwg }t h + /TqADң۸C5-)^++{4h:s.9B\rԭ1Z`%D+SPc}ziZ /~wOc$snPM ѐRϏzAi|bO%b0-8)r{sI&d N懋o)vd힋Wu?/#n4ϛF !3r ʕլˬ~ v 딜K>ԞH|)HG-ks࿜FV=Zv. 3V ܞs|(wp6$7_2{?GH1ƻ҆s,Zw]zG9JlZ].Vifޘ)n {/ٵw#_ilK5Z؅'egfC0&ߵDD ?OFk&oB~d0P0ZGLF=9v Fep!vO۳7{Hl#lKdx/s5:$GH{8w.bO^Ӗrtt =O`Pߨ7]V[/ߐ^'ļݞdg/* Kr*%?Kuʢ熀CcƘjC1O."Ku~$j)Tf27AOx~.:r4v; _o |3Y=9Z$km^o҃͢T r6˟T}sy&46;o('|GHro"cL:S;.d1mz;["1$CV MgeYs rMWdK$q60V&ֳ^o - Iү"dˍ(|67kQSg|5 J C ˹Y: z_u邟M ~: D^h fศPݪ~#\\Y[Z"L7!$rYH`.+7x2ဿT&bЯ)I#!7EV#T816![lfыScz.Q5 W ;4Ar?%RO.%ބ8QCʶRl3 q[:vR!*4a4HXmRӌ >ỤzR͆t_ѵl.9r[C!}%\BcYNٍ^T XWw?^N =)9»wl ,HiصqO=\Ն]VI~0+#8 (X7eӦ;3VxOطjvIo[!lju0ō5rONS,FG]o9\G<*bE,_B*Gx|i<KE9JF][ Lэ;d[Ѥ@@3>]jrQI"6$aMֺ۫ȝ[+ut-ޒTV^?&n\_up[+X!Q&ӕcSUaqw!ļhYwKo%(K4=#e7E)ße/ X_L-n88Oג2=RW?VE;bj8wy\1hEHMpP~ƴ[pwL'+hW-@sc!j݀$O 娈D%Jmxʃ۲TY=i_/A_JAo ,r3gFS<Z`wJZ@+͒T»Ǐ{tH B'1 vڱ궒#T߆.@xj3+'{b#l^w+5p3 7l&O9{<^Ql7MwzXW|]6;⽁HO6AIRP\Z6EF7Ꮔз/ KhwrIf"1?FaU Ϻ9|uVRDRgN7g=W7g847j oefv;\d#=?gV 9t2@4>DFJTM$naH 8P7;P`I*<kȂ_X'9\>gPUo'ܞ/~c0soXr7QK|Pf{bMYZL!]6Fٽ]̯E5$F_YT W=.:=2ޡ&`Ftbگ,w'0(K]/@2D2?Ju1]wya-\'0.Ex1ؖv6ݴacoɠwC$?zwX+5+TV3t?b< #] oj$}G3G"'#uE %Cیu}898%(_nL-ڵ׻`5:O EZjt,!OqgRyL;Y[F;1 @ȑ ġܯOzQ"Hs?%GX^5÷mEuH$y^9ݙ앶k+{0Ѳs&:Q)ŝTm9so-;*!FǤ}}/q,BtM:Xø `TFR GJF60rThy5؁D0L(?0T(}<>_G! 1]tb<+OޕÝ:O6HسW'&Px 6bfk0.+o(JzyQ1r['7E7`@:=k !] 2L-e|~ev_=;R4hBwJBkU'n(Q9A[vZ<aBbNW@}W#+0:GKT`ی3{(f` aomSMy߳Z;6c}5b7PIZ\]]TPU,08c6;2q=+3;.֓O95Enc ufw{޾-un˪ kI:Qb>Ah`5$ Y$;K=ze쨫]=ũܡOBxG1Uhk .49Ⲍ Yf8Je%o[ ڥparv.oY!ϱph3zi~V!⏲vK3hv&B Fޙ&^Eܾ߫ n ,s=V>W!!dيhL;zkY|` - @+quZLS}rr{XOpNh"7;=<;ߢ[t>r4l/[gۗӗstq9mߠǿA;K{9@\Po/o=~\[vf=ͯxB~qǫ?(y˷seߣ[\2u9|z9py߆/..9o&<9<<*>[>].]>[G&džS/ zժF;0O 09sq 6GlVBy=WKEtA.l?;Mѩﵼ[r|\sWfy>?<_]\>[vPw4^=^^[]P(ӛHC[\m̖[(W.j9BW-.ynsoy zɜwn<,3C|L3,8٨ vrV=qǷ ;1ۆю11pc8Ocw *:ι]|3mU=ܕҿ~K\Y)ﻏy5uoiYf%.inMηέ9ѱ)Yq{ܧSkl˝}(Kr5usbvByGʾ+O:WMĹ9q8W5W5gRXk+_5yǝԜshX#ǜq9v'zc,k1uOg)nBpǟ9cQg6+\F6jUGc͓G-\Fl.:ns/*{JonW j|8|{o*&yCb}۟c}+V}f_O8`&R\E@.A}i%W]"*"M".3ok_LL 'LC\w[ᣔupOqen V15})q&Y{Xjtl]4B X(ũ Óh8Fp1գf !ߤfZ>*P+ns6Kb}䦵cհ lH[ћTڙM4Vg{*=.gI-ΙN_ޢx,{Y+Z%~@ax B P\`a|k^z'`aalw2W%22dB'Z[W`ۋ W<%lL_-TS >ߘ hD͗ H HipG:2^$2b@=P@_E/Өz Ht5cЉdS\05  }kM?9, cEb㎬y{؝·-0|J~)&) m|'DN%8}o:Ua*U )Jg$.Vv;[__ Z,>b{3f4]ŷzNQ G=G'ՎU<% e<* qaU31d$5(g3_ a@ޅ;<0ө`D#;\h 9O^i`&}~# ei6h~|qx+ҐtB<zr?ң?ކXE0}(Zڕ(=ьfnW])ɘs^kG!%s]ĉ٥= 4YԒrpqZhfY(E\O. 묑LSnup2WS!55ɍ$/t{#-23O-C(`_}sNFٙE@@r"x؍S*@xҌW-02e5X$'syrVYfz@Eb8#w94n[DZPn{RA,5 pm{g9Q۱B+/R UA>6l엁E`gx pjG$g=r.Wv%s =οtK ݦSA4"f7D 'a3\1BԌVx}~_]]mN_B>ӽ>J WhJȏNݒ~VUqKl 4Yl K__f=;*1!Q0IrO]&LŠ\L:N)d e'O> w3Gܻ?e">>P$`%ص$htbhxw!ox* p/ v=)Ndd0ߨ L(AO4"jx;΀~PPnR}@,[:iL@7C0=reҝor%:lV@0,o,*=q^ #;n(Q!%\^bX  _~3NQo[j2F~&z̷L=ϱbbq@}h6ߡ5qf iL{ &oM7i.H>}UAå/m*Exzj NGE䔤 r%6sx쮠3GXE{Q6|- RIFΥ6_K>ڶdqyG{3Z`EyGXZ?v}>=n@uR\ ȍ(;XIMwC ilDWdf!3)4`]cރ2>)?-vk>>:v[ӳr3Ŏ[dP&RdaPRE) e"#lbZ8T"xrU;I;ڂ5D 1߿YT+s!m[)7y(r%^xJrC|YS8B䭘 h$B}ӳzsp4̿-*ZlS~pʙRӶwWHώ: 2qIJB"^ʪC$ٛd|4pTP_]~jI+~V^:<)OU{e+?EZL@Cļۻ^;5Ed!rȨcv? D.Iͪ)tYF9\(R*n{r+^4kI2<7U^bM=k (3#uGψ!ajutV`:NAuZu$d.,g@,b箵eBܤ /i8i'$:}u"N,.V {3gr{!| !W9$h:/Y3[8=v)0݄ҵ*H <`Lq[Jo35ZbY,r xdI- }-i7\3{"nPxllB`ZX{"HNͨGyCL?;հJ} E.EKVmɏ$.QWSqĝ 2ڥ:&^FC(ΩT /%Zp[-.'* QU&Mj.5:}ty;Xk l(0zht"v#^N|+Ό@¼_ҫgA?,ލ!.e>}j9[ݭqqB&q). __gQ+교5@PqTYE SAI>[Go AyxSĢ ˎ1p&H-):B}I?dѵ617vԻdƺ^[5HD(˞i|T:޻1U HkD8\XG5 ĈQu &%@ SC=us21HGډWSҌ{nLv" [+̦E}ɹ!LT(kMwx?WQY*aJdCvLty ze %W]08*z ܛ=OvAiPh;&ڶ06 ʪÉ?/Q6s/NV2 H5E7qJCl3V6$`P4[ 6Dž3/l d:%xLߊSAc%bW:)LU;;Znׁy-NV8|tDC`zfLʰt/ghB39vSM>eMS}"EᬎPxz/4khFNw]pEpRie0D2ZjS6?7/?9qs{&cy`P7:j,82>. Jg2%:LYhMoTEB]\ W:=ɨ}#A&qA@pH֣g[ ?}a8>W#kbs R"SʴFV}Bf H@q:5*464bڽi/JQ!Kl$̩ {lC8>Vd(#>%ʬGEd#)9@,MSBdfA|Xp*S!3f$#<ߠ?@>\_qПV')ԥ3k : Iڠ/,FpYuWEЎyMqq5'Us)j Jڐ t͒1ƨ)&lB4ha4E=4*5ziKz2̻L1tSS{6,zL* 3RK\`(d#M-5\{k2e|:ߢ PU~@OΕe8^٣WaXeC͖{(n# ;Cَb&$)sKZLܱ~\ロY“SKGΨR+ý+9uׄ̓`8`IG{0UpкWrFڼ!h{! ~JrXشoo #G+94xbUJjæk?Qg:ΝLK5ni SԋxH`v-.r"H()g/6b?Bߎ.jdՕT!`J`}HDILwY{ޕIOqkSo  N]E%ȎUϢ- lHca򮙤U @ԞRэ6:1 ej >5@)ɉR%QKB 2@wy~ĭ(J`=Ho  /on*Y[,֡F{ cŭvpYD9‣4~k`m/ M[Z_@T54S3T"}Ka\j6 DǬC%}O8):O 7\%s&#ύ޻9zP5eq-j뛢TIא}*ୂYb^4CN*{k |BfA:NOMh/ oK'(cUү!ܧW*AR9 ϥa-tUv-aϨY#!A$1*E ]g9UIT8@BB]/ȃn[sӈftffp:4SQ?:̱5E#ǔ2Q8nD W\x9hBC̵n&=0"™G6G?I kw ucL{YlaWGBp67df0]Fu%BөX^W8"@rE?[XFW9{u>wl[تD\h!B>^Ax,78_gi pRyJoL7'Tm|iLjHd&7_f ũ)/A\v'JЮ"r Ihˉ ? gcUA:4SQU#92_&Vi-;屳D#``lZt_{~=ߧ\uE8vHACHrštiXpgt, a' &S2=)B]HbS8Rh/g+Z<lfxcdQKϘs[D'Wy#~b;բM|a<$[ 9Y\f{foO#&u*'"omK{V9h2Ibvm(ɩerZ QtvJ{>( ,w#3 $toЎGMUFOuH'3 T|O. z7mj Fը ڵ] nZL cWvO'߿НBE\U}`ݱO 4t-˜6dtCʌF^:mu`ؔITt):IH]D2]0 /s^iV!24k0̑tGBn:A <}Me wϣN{zd Kn%Gp[ x 3 ŀm8lh_-Q&D*]A@+[/f$ B}̱B [LZF< J\A{nS\f&cXXPb~]{7f5 _.oP%;*'DT cԃe2REcBizJs%t땱haRXWxh>v\IX/lvݷ(o>+LXP^Mow ؒ$.Մ@ߡg]0[OǡcK{o4u)|6Lh>@fQ|:zu°2tf5CR  rqR8,/8Gc?ѷl!Z7qGeK/٧Pg@;->::lLrE^C+f+}p3,:%S,:Y1SV[6KR4ɺAcpDiB>4r<R+IkE$JATjSbʿ>qiV̦ B ~lg)}^k$SEMUL/N0- +l N*l\/hs1f>ym><5 cnJ(Ũua RWO4$]f Y@LdtX~X48 \r)/DO3zt'=wSHSE 1!YՂ -l7Du1ܑx$7:O?ZC;oCQI&npo d `l+#%Cev^DEZ؉NU.E'HdpaHKqb&꭯̛B=v fo4;آ2?RF>V6#-,CJ=K||E' _XjG/.i[Vq}h!ԦL##4|tc.ciiA2y>ΊB%^Oo2, Y4vGDRٝLd"<J/w[<4h2upzP7~dz_FK\g%*2Yk-Fk~;K%/bC}_LJyKc]7=ϐM>Y1zg/>f{iNHBllR9/EaTg6;[V)qtÊWu;Hb Λep쐨J!l&.bGk/||FMeF$Ñ" ޟk2x2؁?O\bjQfsɉ{a0MMD/'?nTp6. IRDe7eT/bd(/VDKCH`U; Pҁ U-z;Cfev:n={1A$M!SG)^ЛZl2UbXo! !BesmS'|O6lӟf%hL|=#+f4j[:BH!}7kBfC&$%`+b]\ȕѨ*4__{#0 cUuOd%q7 # QY Xf=v)kJSm).[k KH/?'J^Y~4pKmr'(W=;gJ~npKM|CUw>HbTJ?f~V\nvTk{]_~啰NDW#( SN& q6[zq g3T<1c-T޹4K /~pQ8H8ȬtU+tl=^w#m4 ]AVO^uOz=.|msRj~ż/@ ew,9Dx˼MḴ6_&lBҊwy#Hn08o"]QywQђh"' e𹢣wOe \c& ms,R|CAnl)5&P w)2@@_T{gh%4V>Eot3H#)?v!p *4n%Lm~q~rzXlگeO; ԡ|_̪eZ)/D¬w7>Z7T.:{[ףv|]!T/86dev^pBӸq +1/= gN;?>MTg !IHQM$C_ĸ'x :;@nl"-@BڙQl3=&B(y]`V$M?T ĴlΣTkxg0h@dL"ŸW5"_oC[<Wq R}^i&yϝۈ%d+Yv(2T! ̢I* >¿αо~ 6מR3 p~o:f rCCeOZX-돥אRn '(P@y?"#s|.nYb[%Zalc ITBcU~?':['ǰtx wQ8=?r@1 ٣G<6Ģ@_$pm 9тN\ռmڎcˮUA Lh)gc[ ވҍnQS+{z\Gh&\||,hJ*\VU&^T Bܣd!y0{OKjq}}_|4X#b=m^>^~MNmB>k}EΊ.q)*t8_7\msŔ¨^ք{ l8#P!+ee8Q٦w\lnc)T@aI/ʍ?u& &~q ߤd >$(!}lުʌӦ{Bk1`$&z pѾ sW_{:$]"FKm H+eY>Zdų%F3 33,1y`DG~VmmEaNpT)U d @bH[C<eK?ձXsk gq@_e~j8p"<Fu*`!yy]}ɵWiv_5Fo Bض“}cBg̵Thh%5o =߯i3V(;X+ .RG3sZ(WB,}x1G}_+~?w\+.a+dܩmU8olϭK'Mwp"o\0h'N8vȇU) 5!:xٟ;xv =C#7j<,] HQLX{8yhc^a_#vڭ\rM)u7BeFj̒ȃ`ʠ퀉Y"C?sto]APTm,FpǷw\lZ4#s+ȇΡMp$sZ,UF.lYikWOtg~tyOG;mh%N5ד-Q6IWׁ8d*&k<! ޛ d"Ӫ5s(&m㻰|y%LyP5ڛ!o%2c ݛm:ͧ.:_Vk԰=:NVN%GbLVE/WysB2o=(E,fGV֋zGsTj"Vf<@+@p7d'#OkQHB̓?c])5Kn)H$k8-DJ(U;s?.}(ss9vL+)ӦgBA }Ͷp w)%(M |tu6f!ɟb $)M5gpb ~| Qy08p*s ˰d@6H\MžW/(>˘Xvt! WQ[]@-!Fiq_-t@v ՐE.9ܟfQ{_#P.adO1-svJ^;} cO۟ HrwFظlSe/hq2 %@ǂUd6]釭@ۙ3vąZcK,Nw=T~9;tBjUi)k=?y$R&FT}",fXh:)u6` U E&t;x?@]viXa1ժjFn5Ms]gc 75?HX|iU4je Qͻ%@͎:[Hq`ůjً/J7GS>4wjQxIF;]%"G~:Sqx֐-K.gR\RyA8b7c Ql[= }4I CƖRDxnZۄWቯ`>{y(pV]9IAa0.3L2&`ѨlTB]~_}U?l-V_6toŠ&UNXϝ[,eN:z[I>xzsk~XmrMCiz$ u߼mg4{˼AȎϡԾֻa[M 4o@3mk$0iJ-2.F2yKQ >+bBdDj|/* Ubʸ?< ;WC(Y7@c.& !Izn.Ц_C\X̄S 'F{)U!9㘧) |jO$8U0K5}m~A]9㌾oZDf vi"upM>.olʼn~dy tީAZ AZ[ׇ=%$b433q+J+foc[$TMl|` SqOBrҌEt,Q v3ukbB9aJ҉C(~ #II:$=c(#_.Yr]r4ZжM~tIm9} i0EBG6:*~g6V5c%l][7UtVEo@%]<&>7\[Y;Ha|:g-U2RrCÐ)x88Q_+ bE?/Wea;rФ㰳ETt_ S n dv]xqi̤?2mcNzsY]FZh0 Emm%m@!m 3!,!#p릝N*vyhcuܟ YSi\ [W%ЄOHc׮y W@ț8cy/7=鈶 U[UlٻkXZJ4NKkSrӊ!km zHO슺L/ڽy,/j҈ plre:Ѵ x),9 #>\ !RGjbSP%XzZ&i.+n5Z&DDmˇj_τr߅k/+.5 Gj@U󮐆; [tEV85=L@? /gR"f?2C.IwW"<|3R9Ks"<L!p!ߡI9M\xV1=}2j߸OmӹD+}gP事q_Ɠv iQԒ$A! T:5WUj:;AVw OMR !61D:76; jk[3h%Gq4 pSI E!Cdlע/ČfS$9 gd,t"hE$E˦1HG;Kޫp0 2.a@DN}k\ه^bru]-uRݠγ²uB|@nIL-\2y8Rԑ>;=\BAn0vcGRobk%AuH>X-"ʭz=&~h~ ILA+R*d\lNnbҗ%˙ \+PR"rT緈&*ŃpiF6"xT:Ì ٛGS=ծEFaO4v!u1)ɲz[-Zv8|4%3fHJ?Fk\e J :sbut!r ')~\&8i_68沭xsF@oGĪP1º׷8Ą-sK2 3u=;y=(eWs}1frqm0S!.;_>W3, PVZbQrXE~=aɠH3HXT\模AUe-$IQB%ݺ75;uK .JH^ A  9BM&rM6ӎ:R9&FM^X5`+##h߆8b36AŅMW*!*K/3C,Z/uP=D}#7U!,w0kLt*g# )JvB 'LLNv fE,ڊۧB/h0Srl m-ڄ(N!VXw,Xcx ecԗ˥XfC=gT:Ғ p+Iem ZS$7$7#UQz6!?^kUxnK%=KJH`4Ǡ6 bR#!<2_ua+P+Ɉz ok_ 7K3Be7,~N'V{dBPEA4SڨoU"K_meMuqJ/ўhf/΁JEGfkȿ!Mk)!ɋ.?F4TzqLkJ q'h a^=ofhM8pĖwd Q(R!+*${sv^_Yݢ؟n- !R >7}O:}I#$.N|{japɕr{"(6^$G׼j.yr'JgQ9+-4G Rr EЂL5,{kb4R#BXX_M<Ԫ6q)=܉ Gᔕ՛qj r<F @/‡d` `Asyp>/I)n_l#p&%[d1Z6^(^ަS TDT8Gb;9Q_ݫbUTf7P9@G;[P&U>/!tY~B ,U@=9e(؉}4D=yr(jSK~HCÿofOY&ތW^la9V/mQƇGNod,;BpunK_B3eKzi0R#ñ.];3f9[ 7 2Yz:L 0n0&d Q$Y[J0/+TgufsG[7c;`٦">"]=;>E" ILRdi eSKy‹/ȊCIaҸ4lan$<(7hL.Wf =y#m0L.a'0z^>CPJs`\9ǡXX=T‹k]0K*hE#tz\Tu#6 +JտH!DvEʅbOqEXh.|1r߻vm_U;Osŝ6\ݷWh$$d;o>J:; u+m c7xiPQ8hyy=tVٽ4ƂHߺp6Xcbm-b{*ϗrm2œJ'+d_#1~ZAsuzΣ !:;m a3$a+Wn/+9ڞ4.(TG<9y|oF8sԧczt굲v)H8:gCi٘ ] ^k88 (qZ zeCJcP^eA?ir\>yZ*4=3 He~E_ [5KwKvQ./ydž g霸1fyR Ԋ@,!Uw;k/@83|J SF9zK@R*$TL sΰ҆(ȓ =ȭ+{ lhsһ5 c0NzC~meˠDD@h"!WGُeQPѹI?9\j35usY8^n"hԘ(!r1 nAg*kR'XۋG]&,>zG8d`]ï^53'\\f6 !rjNLo}({*rLy i BN5Cadn7#ִɗ05OoD+H'J &h"؃+.-ջCNQIySJth\en6mfEEƼp;F?x)WZg߬5 \A0ڳiS+,ȜRwlI<`Flu}d^ yv5-V_ۏ:ZEc9AQe@Ndԝ /ؤ9>3``ܥ")Dtx,k[SɈ-}xMn |q鸌;.D;fVSY|nug9 Fպ^ zF@5=_M= EGrZb:]zSAKv+\k>/<EHtS'nl+9-E%?vj}'!L1j1ZȷC-e~Fqa飬6ոK*a tkG߽1 s&V@IO!\zFh8VS*:N($?w?\w٬_*!/z I__tנc:Ue)hF4 V&n>e@n@RxhO}Eߔ9\fY߉E'2& AX"gbȩAߧ?N zLy$"Q7jk~oA1fX:*AFRPxe=85\CJK\$Ű_2gWbNIo$ΎD`.?#<(=c4Ƃ"d+TIMٻeQr(=IiK,m<n"7ɯ6=mn-V=CMmmr\hL=v%7g8O| c&޴[o g71rO l/QO [:OEZ"RzG}]R㦜\ ﰸQcE HE1> #SvdLro8xSt绱yvn#QE8TLj$k#ޱ`WQ 6 5+Du1U2 <.~|/"KXa^x@4OTb:ff`|cD&:KpOyu:L>:V< UF瓾ԁ<5|_0ϰɃn쉭 AGrOS:gtn8Fn܂,X.-ّrz(gŽm>6BҦ24\QN-Rc@|.n- 7.x{%*" h,Vf3gP뵱/9Lpmȓ/eZe&d}sɳɊ+3Q \5J\PUZb8/jGt,Chlw YkR'hi lgR&rDE`!ɛL:Zw"kL?J QXj E8z<"8Gs[Z҈P5MaD̸l6k9y,!ÐJ[ci< ,-uG.D^-u:͜|3[vǍ9z0Xϔai)&cq!\`2efdEelM|oN6 SD?tφџ J8X,Pt?s]!]3w'owy`Ǘ ZTs @-M#K~{6/,NWhw""+dO=DUqk yw4u϶ cbY"HEߎ8\",$j;#_NܷS] XKs 6FH#­h@d޷"+|@u/@Aei4Q4mNxwHe>N?۵v>K9VXHJW [ќd5HI2-D+G>]`?[IQ`&I*1FZF9p]E}C7 oZ^#Q}W#PCKf!,I&%(i'@Z4yX?W6=^.@;8C4C~{F{ mc6+Q(9[OL:W yypd+w)Ǿ^)37\'J> ӴAp+To@>JoQ߂,M8KJ 4=nHiln*gJT@Apɜc#,mt45$-i%ńF]*Md_. yR'-Jۃ [6FmsH}jv4^:*;u4",HO$LI9 *T:md`6z.LLNo8LB\h/.zӃsn|L%dd}`&%00ӐI: LOUZZE°+3En0:Zdxe Qcc1ՍƮ,L"LvO0R ^Z!/_99Ӆ"T[sQ~b׷X_]7w͙ɸ$[׫y][ `ܹHwל&ppT|Z…Tө`(_Pxi!ʹU_\ˡamSfEcrI<6/P45Ʊ N3_IxJ&y M]،C#.CmdX2HvDŽ:jix6n̓< 頻&w/zo(iee6.K?w|pZ "dɼGxT~H =\(f{"HUZ~ȉ27(ҟGW!YE~9eE|r aʈqP ,Cu^T;#* C42*g3PH ${aUC;"4Pqc+hGEt!ZVvqpVˀ1 csȁZ!L@I+!u,9^L eHG 1ΖgsM_SXoRfe#C,c`D>Q׻$۾m賀Q- aُtUZL%.9)zh*X'.82 p#J{To?av_&Na.RTcGҏ /CW'R9^ev`Cah7KoR/> sFU6!Ah{w CN~n3,%=* ɍsFt͒..l˅yDwmۻ~`j* sTvWQjZ-KYr::z8L]W%hNj3p/"5"RF2|C3a?շ{ ̊=:rA͞TQ -|B2ّNDw7Fp!]-VN6ro'Tu\~*\?pٞG=Ͼ6k|Bc)c |3عvm ƛΝ11 2\W  A.ޔ@fYD#8ZnPV85t{fLPCkA nu3D" IJoV ߯;H YQX\Se(W`󜧜cC<"|:oWWRagWc-uNOw6A _u-Q;Ĕ& v w]p䊍M7h@h3(81o~{m\2a VhS:70X_E+B) v2&=jXqX‡ Oj` DžhXrAds!|F8̃X\w 8oEhۛ cjs8`-Xb߯Է[j/^ 6"%E FqXrvhst̹D &GF~pHsNs Q÷e8)hv=^KꐩXᐳ̽E~XABAjeε`?j_[wLJ'VD Zr %\e?6KU磐h ֙FxZ5uCߍN \uy}zRЁ疂g e5{II'^Oԃ>19gioo *NAșÌ=Ke_l0j @*r,p:dɲyg%_wE$Rq٤83tB#]f>XuFN&OJKF_Z㘑JE f'k㟉Tu49_YmS2)IR/=2NDD5?Ƒs6œM,wPZLgc;Yp\J ؛ ˱xe!qtUf3!c"8sh[?iR{Jf-!NŒ>-ODIs; 7}8 +D O zs9vV%!IJ>¼{l@c[y-U?fVҒs "Yb h\\ÌC=H!;/FooH{ QB -(Wdi6GLMd%uuS#F*E3`EBBF'V^0=T=vX`3сL>d_VbђɍjJ!Ee\C#W鑃/ 6Fwd(Y`FQ~sZ5UPq$E0U/ǃ E :ȗ1zr #ʾ-}ʅ-8ӉPj3(wVKGrš>\0ImM { ~*T>nVUJ^rpdhҜhF:S2DiSo]!ŷ&a{Iƞwh/.Be `/6p5˖Se%;$M570hGUρv5LG/ҪIwLDÑyK4z.6{dAkpn^`Jvokx|ĢioJsWAx.: ssP|+y2|N/5:n@ᴈoi`dxjϋ0nW'CV8KCpx=Hf_*Jo~7b$1d $_[ sCx^!\|_VkaF.zb}'|4USlZX6-Mve댎:ͳQ-!7KMn1;{@}@|1&Օ%37EXW >%Qu 4̤J9 %UV;z|?"ʿY}<l#0S44|L}3?ql1Mgf=x N|ko~b h#ϬW,[]bwD.|+0)"HoFX9zhaɵ/+JX{U}-Ÿe[4Њi%G (Ӻ,}}ܫ:bNC19O\HS]/዇G*'[<)1)xYktKKxk=RdWOH%Zd*SȐk*dy(q 6rtb䚹S%*#)zL+2N d:#$JweZ &Qm4MuP(/KtbԪ/4iLxGH:"LEtD` ( yi` A!>]kY+z|TnuvqKeAD]m4]rDN!pQtl*˂g[j%0(3z _"kњrN~:b da۽ ̪>C3Uk4?eq@96LuW!u]K-.LU._1U2.svPAIӫ/]dAz+=肴77N[Yr&pBXk(zѲ/?f#Tԍqy/ &i]9/lV~UF$+ [/ 2p3#@69^-̟R9yj]cCV*{噀iR!sˆ%ϥhMSUua(Pj3ʳyYfqJyD:#3Ӵe0Li9a#,W/z]<US<%aDK2d-m[NgMO_9F't}E<s/$ ^塃 Wƕfӂ *:v)-W+I92bdh̻1P\5ǭbVV tr'HCVrVch?khW3r[T{ca:/LN )'\fAM#9,3yoGm ͽ|TǷn^Ԝ03 J [K<[.'g|$j=UxuA`qVTU_@M}ծZ97j9êrEx^];6@R;czJZGMÔºk<<5݇|K%!UvH9p6dn*}V%0-ߊsz=Ɩ"߈*W[#q%q1T(^;Nd \ +((QN-N?ҨqdЅ1sH7~lK^&?i g*arDaf#Iv5*i7M_F_z 0Mȓ"DU)"2(gX`aPʤHx{ð 0].x>mlv#H'ŠhuL;d8V,+|3K$q:d9sAsNZy 0v2sd"zF=dDq鯊q<+gB{#eJ,IP*$!QJ |Tyͦ\kkSn?pقclGʘR!G,ǩy 7B^lr|,ez1 N'I51F3l ͺY )/~ssy|}|<7YQ߷}v: *%]'qJ=":ޟ Ÿr>`_|hN 墚ݙK;x1%ĥIM9 dYrcc?F1^`}sȡW"L[H4P6da9HpBf57|Q]lQ#kd;'c-E'] p<GݓiVK~Z*0_c g ѧVGVlVlL؏):[5jUiڿЯCC@?i%ǿf G& щU)M'l\(uiEϞ>-bMi0/ "W|Hr&M6Jߕ=IB= QTC衿ŲWMAg? BVۉUU?)S݉0><8}g̽Sޢ+/{Q hbm}!ב9t#m j9_7%@ԍ\Mm2I9Y}k^ƟJOWhx4' & ^hǰAS s2~t7J 1Hw3z᧰KakgXg L֚Lih켞a)П۠$#nmitٻQEإ |prb^6L*3Bf`53 8!|/lCcA]&p0X?Yh."آ.>GM ࣗ' n"EU990V`zfH1gW_3_k! PANă_"z" gP~TTo &s(1Tqƒ!յ+ROLHm*G ݉XYik\+w?Ddž#ȓ99~~x~mϓ}@$:HaL=hG`z(M sJDo`c%^%!<^d'*_P7ꡐ(I 0S}覸M; fZeiyG8/ 0B`&x|ϔdp.R uixF.܉ X͎Pdn4m(5st1t*1mcteb ncovu)&?j'?ΙB *\P96 RP<1hzh9%eXf;;~SzwjGP k,CUNcv/Ei1{o#qj*I?o@XIo;7` [j'0gOYgixG |a"trxuY]B{ކ @K24a )ԦȅeҴ 4ҳ66_̦,nqvOk@:2nn* Hp)"%hʵI3Xa 64xRA}8]ܫQS>r ڨs1=]]s ]g~t|"Iǖ6GX1$+<3BUVs[b=Z K3X[@"/:~;a;xx;`Aa'T./l>J,41d=-[DM*";0zUnہ5(Rl*N.Ǫm?@ܞpTހWӪ4 3,=EiThӫsS.N6RmxrVPæa!M ak"IEaQ `{*`ѶJ,'#S7zuY$?~+lYe1Y?h%V_X )Q+VfUyO#cU7{|}U4; ࢛&^퀦z_w_ H'1MűD+o, :;)]%HpA`UXӓ8@4/ 1DBboY &d3u^rYQ  .6TBf8.e-<)s)~]f/d![9М7?gi U㆘3.Gr:<^-;,zªL 4BS䡌oll  @IV#HD3ҺMwTQ+b>CZbu)njLZ+r=J!}!Ƅ{0}|#u00 MؕoIOZL>|GO'ғ%Dr%O ZNoMe]&ֵ.^,&\5NkH3llMM ǘބ"$O\O3J?O罦ن:Er'\kܲC^"ɆQx-p|% /\wn+D|"ǢGM0E N{*M7tk9#^na*=m K3n K4Ā["Wg B=nK }ԣS|r=ރqMG"V4.[mc*L[|4^ƉeDmWD<]vͱnViV_t*$'3kSghH _liICqn}ΫjB e3㇜MY"n%UMaXΤg hhSo x5 f+ݗ:&gs*S嵿nMx܇v 3lU\=d۳5=)U+/cmV'U5>f¦4$ZY 4fZ$:#?]Q'9<.`-1\,tAo[+] Voh#niǼ$k*or8?Uz9]Υ ^!/0^=u`Õ4x:qL܅5[>л*]!@GlQ%'um,IKAfh8c8^}\WA[ݮ FK:Yesq KrRCtxK) I;JO_[ߚi0l{p@jcUުp"3KcFU18H ,̋~FXzAOI;i_(CԉY d}bkHU[9|YVF 3KCPb$,72Y}`Njgƈg$X*,ǽ)&{BZ8m- p?FaTkoy4-$Fm9Z~쫢/+z}^mz={%~0#CluTZ6j8KnWxmG)Qtmxr6aգ7fC,L1dU,=DYyx-k֩DP/,Zca~׿ŒJW+ɍ]@GesdƦh` ` Km B+@XOIveHDK] am)."재O S8(ÞIOVczeB`Sw\P-y&&'mRcAW7I7˥EKAC|pa,*Dox! 'J^ Ih3yQώ@HF c$i{=yu! z8\qOYs;I b/ :jS۫Yd4/IyTPڸSa@WXD8 oKAT){¡7V=)fW`0^{!;1;~ܿeyhJG9΍V"p0l}r'} Cܹ7IVFYm_4ad=L!-|!ꐗkZ$85C a6>QeVEj rg֠"B瓯V|%wY[j1'%[a {˜]C8<ڿ2Ҹ̂zwƇX7-K4=9}θC}X@6R]hihxzcELo{q6gR* ] 6MMA9b # 8yhY^[/L@O 롧a vW_gt#-epB1!%{Q<§c SCT(* #G;bh ׏jSTᥭkz349/Ň F') ǔHd(K-L~< ؂Nɾd\DStaKiр8G-Kf5"Dd[O xѢM$WUCިhxKރy&1=sR\H+'߷sY,XML,TXPA34wQ+˜$ 6=Hn'j73pg*u.bNy#!}^4Drd9 g=g?awɀ7X^v-#ZUc:n谿.En닪f4yl!|@G፹算[_+ŲLvA53QeEM `5Rx^(S!p ]qFL:F Ec'x‰Gt{-$v"S7{q ~FLZWz`Ov5)Dյ ;% CD\4tFtlɞ5jP25X` wĒ_ǃ")^YglcS(0$(zNt4K=Z$Iẁ$7_G q~NHk|jfH[hjhZ 0_Rεqc=]\hV&ֱ@Fa5ib@@ơxm>XԋqjAV揸;9>ROFI"\C~|3*qTW[D@;KīL_L v:TVqj\mzʼ?~C}]F#5?"}_}Dff4zhr8E +eqo0:e,A/3c:Abu"}g!F2[R?eK,i2wgVxJlY i$V.o %c~r6:FLrIA_BFY*o@*c*am_fH!ɠi^s}KZyDj$4~KB @AX#n(t^CUja0*K@dT AաL|W4uJԉP-/D K)UX~x0EN ߾@Vr-ˤbӎ)gӺVAK=B7T)O9~҃{ e2|K8>g(Fl)1JNoB\i 3\Fޕ[~k9{޴f!WW;9\DXk%tf@*{%'G(ܠIU-QtUkIDhʛB6qbKd/s 2rjs#c$ ٹV*3#32sKX'8iSXT=9=D6;ANzG@ L %Xv]jH 6,ïTwöj5KX٥~̇?9fJ@"uY1^"6u,\Vv̵+]&%fAT/~Ba Y/#yxfau|~`ό)#gւКM -G|97I Y2seS]17x29pJ"=P lXL{W4R ~G~"UQ=p=roi☕[$0G;Jˢ03^20~*܈7@CyH~;5tsZ/eY'I(w0;⨉tQ̎ǑJfot0} k 0Qq^^tJ.>P; (Z.n隞97 `QU=gqr6})S&f+(ӛEJ]ߠ0HrbF)7D6Xw F`'_ls`P=y㜯QE.!906V ;RC)(]z[`WmZ%=(]7d7yKhL0_ҋNVM<<߬Hs+*h-m(GgYk11€&dB DHs2ƀmΙ;E E*`A7g#ZKjh՞7O~B D& ,&8VckcCS;I+2us9m As ? |XIǠ5SC3ne%?p5A-QB45YļcuKͰwxw!k췆8w@_WX#vy1O:,Gf,nb6t+a2?|˥PL«rt~&E 5ףo@|sᑁGe!zJA.pt=LEX荐l͕ƃm^Y.y )2b»M}HW:(?4!= B//5/L #TX_6뽆5"*c8j=, hϮb*:BĠ( އ79󧏠X@[pH}=O)@ UV=?/MSLQ2IULh 0ซmk-a"uHg<Ǟs$$`9xxwƫEax|ޓ>Zx3RNMY _[\Q.ʊتMޓݷdJ2;<MWtf<7R=G*RpdbsڰJ;O>yG 7_ T=( l.b{:9 úuPtm}쨊|ͮth:''4mf v┞(JU|,>.0}8Yaؕ%ۺ@(ٷMhC' \G6ۣ>;TSׅui3uҀ>q W`NJBH(*+&[oF~+t>P'd "Q͇f1Bϴboޠ, -!VgJ=D袰,%B%&d|,3}u;U N{m8R9F=]Mvk "lpD1 bJrU 'l6HMJ@({洖gcc.ZP}Ê_ w`kUUĚEÐLֆMGxqGQd~u$?8{= ĢX)TjF"vڕ+qĕ L\8`.Uu{*ܖ-i?AۧfsJ;5#Z'nf-HooJ^{ɄAU#t)Svlb C,d@3 ?DReu+<6 EhPQU `Fb8Gďэ-2# ϰ8mj6ɢ VX2,tôl 34y`U+_2$ּԪ@(p.U[jcH+31|Ā~kSd6#xl] eܖ@ϊU " oyD o@LrYmhghzx%'pooshLOT o`$ @qXp^ xiݹ1Yg dY.#la(JμEˈ@ٌ3]ΔZD 3\X)*>4Nb 7ʧl[T3}#l-ɡrNKE˹IXt֔IN*MqXʓHcEg|gvގ4չ`k󚶺 6nQ*VJiq¥k@zIIZ'xtԏdfY97M3'5,;sl_ŝb"ѝLXLs>s2DVQF_WlRE{xLwN@K(.g'+k*D5lTL^(!Ǥ4B`q<{B>ɘ^pMyz}C) 1֎WWuհ:Yj#_2 \T&ݼaPͳklPv)4}>z&V@UG¨]؊ :ST>)V ۄB0X(iIDaZpuLu1 w,FO**]I#s1ͥ9ZԐ-LAbS2rƑA }ֹP=@$K 8pr}wqRS{fϲRh/0Vx/ƩŏaA kn/Ql!|( sf'?V;'͑k-G_EdfJm lu_O.)&D=;m;b,,5p3ɠ7]hn|ǥ'U8gNn#ou lIθ zگ;I`9GdP1:̫pcjw 2Uǹ;+{]KCl*ɟP3z]Bm/ZRmcǁI vC&e['>lپ3ogk`h4RY%_׼uףR ]jcXBF"򧍝cBٸ *Mך 7Jrd>Hls >'9Ż7>uEeD/o\*d2S)=F!)3Ę;*S?.U"1qd{7>vj[3$&b)`nM \uAVAhAϮLFS0gs`ZuuRћS+Q@0(u]cpE !֔IG$9@*~c4%8+ {r- "W;Mzs Ab߳c;dx29 nڢ.*Z8ΖqW@wqjЖżL3-y=/:j3F|k'ku7*2{kX2|}( g`,xk魹y5}Gqz;QGynY٦+^Uaw* \aEpKO$z@ /]քp6f a#o@ֹn:tuhAn搖y9yhvYadPkqiI(ڜmY=+AUh狃P&̢1<jc*k9 l/;Rԃ!>JtW2anɨd㾔ULGbɠ_Xżw`-JԪєD;U+PTW9b2[% h3Gl+5rUJ.d76cXve M3z.H/_u ]n^); Jb g1E_2 Fgn>7&#vJ]r>Ȥ1lgbA{GpKN͠L3d F1*gXe^%WHk\ ߯x-E*wDchffk5H>.NvCT5 +d N J=YA2}ȸV #_"2>M9)<}oHQ fS`iO4EONh'ַ*B>"ۡyLa'!#EirWr3A 1VX>I&1,JpV:*Yrc_i5K3rK%[\3%Lr_An{Ē"̅ Ί"b*Ʉ+Y5spW_+y}WG5%;j%Ɏ]М: ztiY|$59'&R×5PjÓb%#䜏 `n^SM_qUCD.!;zۮih\&v,=-}3VIA-?>Â@**o4q0YeIFYگߪ9У# CƅPLM-/Q`*yQ/eIyB"1r4Rfwb5ʼh?P ȂمRr 5=%.!+TöGaZԐO, țAf5wGO_lfbjdsYZ,J o}V04KAGaJ{x[dt~r s}]UutSFnjx}[wN7Gkf;(>9`|e1w'YzRLKwBfEcd-P|ѽ{FL k%nd_ƒȹ 2TF$ne4#d-!a!lWRD zJ>5Y2<j) Qsd d570 fE /Z#iq cVH>"M,vŞ nI'Q&@Z"ʹs4ɧ&h)jX2fu6hOEAF>lV".ӝ3(آ,F ({, q#p [1;*H(]@ \)( +Dy>6]O,ΩVNW-fPm {MTTvq2\GjE YO+2zNƦg΍70OGHb~hZjD皌d ~R2ݥ7/)hܩLຄ~\&ׄ8cOx-8o6B@}œytvTN~!< Kΐ%j׈WBLW'~īB31!D%bȡs 'F}Ukx8^M`:S-T}#i41M}᳘99:)t^ |\c|#ӽ fcrwѶ6#KQ'(^ ! lFGt>6`"k<TC"y }L1%695grS12"&;K췠ЛJ:5P"oLfV_t_5,,s0|U`91i^4q娫9Hi$īZ6dKhO>ear< \\ҸόTÕpql6&Vm/N5qv0OţmVM7)w#{#P)q; tpn{ .pv^q@dRޣQ6`MxtV{N7Snn C;1}M<7&MP9J$kB= VzNBdHFgO؍9bMPH,wCQr^@X? 6rA~ Uڮ@.ai[ol DNako5I a#%P;n}mC*~?P! >; Z鞀Β !&N[9#LFR,D>K vS7 4c%lty;3(_/uC'O>>vLh+6à{mj n18bK>GnLzOn{=nDŽp&ITTCC@Y~ߺn&V^||Oa#n7G7k;!MW_…?>/Q"1/L SLc!xR01 j} SS-2Mu5l< Z4!|%E[vE׷6cPJwebX H4%g`KR]qP6ء?U'0(Rl(tmlL+CLn:'Zu r} /)݊ {R_++ɣejԤlp]h{v³mZbl&t(kq}Uw-c[(zL٧u0U!&dRuޓy "bX=9H څtx13:o} Xj`r*gq'*eG <'n>u~P,`ETy{ѻI/&`!0mkIjdf R~0DsI~nֈ0Ю" SeQEzA.b"l _x_GIߪZL $DŽw9C~ڍhW vOOQz_ |<3vSig7[jՁUu}ꝸtKrM[oE)|v~Hbur^@,T=OOIuϗ/ r L@Dսlz ylj*Rzy jRkE%+6a}1#'I"X]K#;5gf@aW"%M_JgnC{ >c+/sbDb[,E]BG㟸N/~ڡa^+_*[RذBt~lN[_4_7q#ߙ\VHwUBº>XrIgT Xq_wk==,)6OkrA0^(VK`Urc@ #P4΄9 ? pGaž%Vb*/e yT\?[푛s`<m"S/**Z4ƭ>JKߦaE;N]K x رßɺo5hݙ?++ɻ<|hJDy`/EB$&Ⳃê\}VDF:0{\Uob"ӄ' ;faw&yn  B,nVa!=A&$p|4Q X p3` n^) b\0/}E7V4D`C>e}wq+KP7q$GюP(sDvw0 )dH 4DdWaNnC`'X8l}"ixr奄dXCwJΗ?~@IMfơ4dvZ\mQ!}A@D]4 X* &Rz _n. F ŹѸW:=wAVgՎ$-jJ-qs4 }"lߜFV#(ג\>i2ClkB(u]ĦبI C Oپ l(Q+^g諴s3S!¶%^'*|VNAOId͏Ϻ~ vZ8XBHB حj!0X3CVM20&|2u Ƹ&pVf4VR.&00և"ZK)ûfwxt۵?/l1` tiT#\AcL z/w /(H SS7s+7^>}zoth_D?r6-%z֪z3ķ* H:N)$*ioMP1 IC0ɒi2Qk[E8+*rtACoW$LөlRFȹՎ'QMґbYq˵9b[(k Sb:K&۳.9W!&"o*f%Y)BkN4Dpb$J-da$tW0ZJc\ i4hidM2$hp R˥}H;(U10";"ei1n95 Dz`\orOWw'LYYf,wM}#E~ 24h]?'-fs(\Cd|&ڊWbHT4hʋ8Ҭ8 q?wʵ, exFiTﵰ4j\鱦!XiLwRG!Mw1( *8"<ZHHVoC<@\x0wGD V OO8nm,LL~~* R[r*=rx, 3EyCJrcrv)1g}%71M+Aܥm^ˏwi̢U鐕i6W{ZT@U `{ltmb`aORRr$e4.)HomeΦ| ꔓ(|դ})?;C@ԶͻDߏBiqQGg &i'@qH}o?\xN\%cݴAh[!z yc<` Lu= G)ٔ$Pu`5$Õr+5ZwSc' rt g؅Im ZOiO!<^ܖzR3^gF7d#=,K'u5F\Dx!*i='KngJA34`_)ty~JvO~![MÙXɕparHwkFo'ehZml3h.rÉ<y / r =E՗O lӆ Ip=AOw)ad3By0ۚ]]Vt Ԃ3ikik@B>Y)0s 6^$s[WQ%cFFgNmwdg%jWv  xWe}S}we4xِ>uKo*0C<_~Ț._`yi$z;[v4n'DGTړ2B-we&qq5ڭ֙~(TWD!eI7߼ mUz,ma˝lӚX)תĒ{į Ǎ쓜j)p M=!t[8$TIivV)iK?]xr=z&+?ʝ!ܧOG6+dg)1kGǜV󫍛]J2xF":/.@;ޏqhl8Bg$  u=M/Wv>|NA jɜrJnZoW| m_v"Pw]P9o^w͡?^-]<ٙ>`ǟq_Q}q[7 6e?@ 8zyrA1d T K|1"F^zp='ǢXEH5ʅ hhdm,lϦmCbÕ:E$7SDX5bj՗侾Wc(tu8R5gȊ.+*5T!;W L63v aS8tz˺DdC@F Th$CODUlr):TQ[8ޡ?"2}bF,zn-|r%IeY=Po <߻*{7 ݩ -(UWY6/E' Mk>vXUG: =7Vwm[A*UsƃwU'ׂ鐞:-0t #A@Mm0B^{ |ې<ګ}ghAsD1 <^#b TY#cs61vkC?Z 6ijIf@+rXz}l4yȴ!: = _crQ T.Mr+NkVMh2y*"%9܏P!F_|cXa1oX> 6TW5B<{UmA/3g7*x9޲l{q[[+J61NŇSfJ6q뢿RB;D_Z?nNrőb[Kd {f?תk?@uM>޸tRNʺ]={YH89-Q9R1[sDg. 6T٠.,@΍-2V[GG|MH+0 j9fWpijf  4`[Uo09n!OUNw)QQ%=QgeySߜݺ@eXyp̣1Zjղ0>wH:KZpܼj - ]dz i8aRh{|x+LRHl_4 Ns('ʭ[JW$&4XX) fFzf+Y {nq׊0mT t^9Mct2ٻ*+1 koTX4"beDDܹB+˔H&К',+fr2XsrOT4CWx_sQ>c(bl ϋ~+{ ?8eٚ"s{sׂț-ݾБY6Z|Bmq4凂5Z;mwF\FWt^}tak@aԡ4(Aj9ňRhRSg ɲB(kfCyL#[ 0^^N)xڏ;51vgT,#5M^u8 qRqr w&Wh `t薦RPϷ:RE+qz/c=mD6` 6)8^2ԭK(#*c $[ O73 >J=P ΋bv߳rA|O>KJb.^D%7W"aE쿸"_Dc6 I*R RLIȱPZ{rʵ=99 ֱ +9$j-\Q 8;=xC^aDm4$)pxEOTFMp㚅Y2";V5OV2 0zN/ ZoN `p3lTVuShT$Fe<@SW>>S,X7|8>(ck9zS9pq5yRHiLtfYbբD]rճ~NKa4#m³>,$Hi* $8"̾֠A-y:Hz :bm5+ҕHVYO+#]`GAZ"Xx pPG?YәSA>b"dz"T3lgs>eMN4 7ibI iᎅǖ_Wo/'Xۓ\9rUH]s+oG^6A/(H4b: *sO|ٯKP jVVAR[c[-X*ڵɛʗl,y ŗUqژH#v+QՂ-኏RcnN'a1 {/0T<.}N\8[޷eW{aT'd@TKu$!{a0Jp$|l]fYZVNʛ~䌄rԫJ_gS%ں#kt'z#).Xd^^ dFs|Y<_$l q}[R& cXgګd:Oms+xukFS{zt319 Ęu &I ˢ@M]_!g/^Ÿ)SH . pIGy5Ţ=@5o7L[ȸM1!wc qTU<GdV㢘ԡh~j>lHMJRY/ti]2ltsGJu#L?>J^YJWJ"(V,` KFhRXoj?mM}1ޖ?w}8#{.]0p^ U Mf £i̟;-Ԙ՘Y.5nT2|9)#dcɬa 2FAp74 D œP1YQFlc=@['\U)+%Fai Κ5; E[@w"7fEMu BX)&sgL[3M^РvC4@63at7pC>Ҙ}ӋjX*I_:F5)! XF& X ]A|_&D{T_z6 rvz֪8ċ񩢣M!֮ Se2hN;+wӋ" G( R_:]H~'w /mf2yW}di 0\HDUO0]S& Ș~&lj7.ULmt7t ڴ({)Q00Ϩ՜17ZScr}qC@L8c* 6{JXL `΋_~VOr?y˒p&ȁi PyCOpȖ3~5n#d͎V&$tdW2"Wq bw}H L'"*C"Pdu~U'OrxL&v9URQهʯEV.`D.R]} ?c#Zzh uUk` 8T@\ VnDn_-}^pK6)>T $F7DZxsE)| y }_0yTi'Ri 8|(6iT@يXWt*A{4+KSIgLaݶx_0 n˯ns*Wl9?N:,h 3=̡5{4EN**X@,/!~b`GGeX‰~uԉ^wp\[,Uӎ0d b 8ܯJ<xC +Uwm FTTڄ~!^-7K RAbWnE2|Eh]N8im~YFsQ.9ƪ[Y~pcxr[D2#9c';&48IȒa/ r0݃"ndNڈ$`wx;TA?Fx:eOd#ø%$JV鏑SY 1sC@z7Tn(&ouPxMyzrb +],vk"@A+r[%FW,v'eBQOwL .#!V mWiw\t|i bCG9U$YZiԧ18uDry9B ~ F71D6{'$Iޙ߰Wv>Ï@cL 9ge%;xT(hJqc0Y_`WEt?U_˩9UHY@ʙU^3q95Qg?4ErSn8E3߳iB% Rm:Y3 vmr\^Y¶rxdlji͏\p~d$ۗIPkU G )  G=&\sm8& jMػ+a|kYĦ14ш{*lY 0"25Y%*zJˉܳ)H&4ov Vկ0%nm ǼtczD=p_Xw##Z,~@$B2a1ߍ>\J:o~1 %`ϝXRkk!@<@`rb zdMV*~ݬj2}zG9OͷSblo7V'{`cw=~(b$T4MW!,ȈTA6#a?ex-8E2wk\Zӧ/,0R#R蹰OgvdNBH``dJ8v;{DPTjv\ɇ$ #H"J0=Ȭ\c W Rϒף㠔~'6תƽ#3 $5dr0[bg;\D Fz8ϺܞjARxJ?ٕ GnOi3NY2R}Ծ3߆[6~hMdguio64s?v Vͯq?Vo9|D{-E zNwH[ۈ~px1)…BUAOz =eBEMQ8}>?W `I'm%5KdB uA.A.FXǶH,V@AųX4ʲԋ+"|`o\^;#X^,زTXA{;8s$e(F.!IS-ð JrzɤhwO+P *h Lx"g.&*{et'}ĐÒ*emQՄQ`[ru f9n ?qe1sP濐> 0CG+WhM=ȾB?@2Z<|&G\9[iC\/]hGy=G\ӂH4Q+^7uE;_Zu1{בMKTE߃:m9 } I;L?ğJ]{$  )b,H$?ư:BrlkPv5IqNR4ܥFPVu oa?>3.B (lsDd}<6CMӾͮ '7FEN\˃5s*2 =jz:q3OsiWCf{ ekkUEvS9}hog:0+jp@po8^P!!w5%Wbp\]9vph:9sLŒxCܱdq: b&L (mG?6?rC<+M)p|q+6Y|/ҽ^`0i1h$XDZ]M)G x+3wYq0Eɑ_󈡙떉l"vzeFUsi>62$T=whUWe˩8)lΥtFbP+& .fFܕ?/&'{0Φ Lq t$L$^{* ς 6%`rI\BK̎a{ ' nC!D̅1!MwQt }\I)y_4qyIbB}~hB\_B3hFyuyϖ<) [Q82i kq2șUe NmU( (n !&rSEBAX3xh{0I -\it֣}(@SQyXK+ ?o?EqpU"KM1^™Orލ=ֲ;f0 0#?%:ӡ6v,SF, U\EkUئ \?vh09t&MoبUY1P&\l-J@56sCܥӮd {?4I HS*끄yw꤮,k~V76r٩%+0BZ:%XǠ$0"uF>dDK!Ҽ <7=_Vy.΀*i7ۅx_2Ohq+E)CsG)iɸKNLwzSu|Y^{ N9O3A\0w.|kq827R@~b^q>&>%yT= R_3~J584tXXFG$1dUQh.cbT|PXm:f1PrПZRu7Rl'jPmmc,_ݥV#fѩeK8Eن&݆G)Kk+=Bk^e:mVBek lh\Z$X&Ã.NsfhG[CƝLWL|QbU5~dy~i%VzF+fa5lT0^VlfGsjݠ%'[Vh Fp.Yfk-n?E9=dNG3_Zw 0R#s&U@ 벢Pd{O{]2ȹ Ʈԗ#qD2RY+A#yA2-ݖ+r+ cϣDڢXH0E `B|;q1d5I7kn0I,R:|lAL\>#(f4N-+F քD Ӂֳ6z b}QCzdx werWvf_0ӔT  ɸEԀAmHHר]货@L9`l$ ݭ[cY|XiDRr7ϖɃ/a7Q,4-e=:@Z!O TԢZ9+" B6ͳ.}2aϖ$VZWRIye5"7HJVgK\XGe=wﱢ-O61̀cb8'*'Xe+3tig:{&+F\9y*gwL[gǹ!2osuc$`fTOt2/,xJ{O:Q෻\cHܞm+8$S[i Cj^C602飏,tսT#TV4e"EJt[+N:+^' S<|A jù)0MxIhߗ$szU:JƝk:wͫ"c3C*'`3gnP3ӼT"bG<ą&g_1H I&H+|ȦrfHaQ<:Y. *C]#!]ʾ~2~^~r43X-N:Bl3J&JF5vD\};t^]$[P;N&T>bԲfXm)zALA.6u%,Eؠ$BilJ5W[;+(wQBhZ$1FGzX! jKM9)F.C‰vt׶ 7{拊ͨ~cnX[as2`w}>b<{.eTa)dn^Ų[*[OVL͙.pKZ\ Ug^2\14)p&tLYH~fy"0O, mH2 ^%?c#2go28+J\ЉCZ~o!xmHL =_cqgKL l#NI$tMJq F@P,,Vi O⧞-{u[ǰ3 3M5aśdU'|WtKq`+,u^A{'ѯ!P.Ƕ7#^. K A>PI"IUJU:Kc +}(o ST8{&"23AX-| s (:2&=wM=kiuw,\]J+GbqB.~?6e@urچ{#!D"ZJO_?FzЁԽ^נOVx*!`"^҃ag=i` YGSBY-?ms(}W0]Ξ-qY}W)..Q(pV:> ɘx*i@̓ێD)@-C\˯X-߿25Eqrޟ&aS שD2-O(~@IW+bc #d7QQwY+~5 ^qK.S)ftJESS@;3"h.J78@\g3hr(Nr`lgE] [1&ERob7U="Jp>lURM/ ܐI ʺ؄BJ$xcZÉ1% <:w?ڌjz^kQPD}]oqmKn]'*xVW%_P /R#լYS`ho*+q\x~(q_p4$;]Uu5t(BȗMN@x(xv6%J TFJ9߈`1{`\Ҳ0Fk)QKLW=#=XI)fAoQ)>P@챥KC.7SWxS䝦B48[+.qViJE0n0E.u  OFNDEف#4@L+myMgy?T Je`6Ndby=#^wrݕl+zfVN|z- FwU!:])GZ#5)6ֺt<7'&Do"&]=j#xPNdZT5L'_E,XLd <`3sӮBʃ„%`EW;pӐi?V(Ɏ5%Nw3jFP {eqClLIDt "2\.9ꗞ\I=Ww˓:r$驂c6Dz~$ks:҈NcVNrK^-KMEjvs +kTxU6]k8T(Cr;G7-eu2)R*zKda>?tHEԀcRKwFfaߵõGmn0+R[doCvU$UU7iḿE, L YcHDU{v)f$^"c͵d;tX $a$ɱTC(H.fYz<-l\ &H'r^MCҬZ!pJy"[ qfPd nM/~.RؽIw:< 5- h|F+6< J"EƧ6|6*=uG'Wu3,ݳd3`$Ã&"#Q7(in?{+~"T!.X9 w8VOZS;02"Elݳ_;g))O=h7Te,1@oING1ǎ߈u쒆M[H4gPK %K=hv`ׂ-{зS|AH_Q fai4)1}rMs4$}x1?QߌXobS-0eU>ԱG6c\5QҋAnM2⾐/`X6S`>j쐕;8.|d"V`=gdǤ󍻲py~G)5Y"@ N赁l% F5S/I#tN7}vT%ާyEvk~F4TPBXOj Z}S.kڄ8CziiIL( Βh#X?,FCWw2<9Rs' =p[fpaoǪnsbfYŰ{meFSC8- Z~'8\I|-*a?-FUNA>8WYfQv˚QLBj,-y>*˖,W}۬Hr ]:ĭq\ QNCSrBi ';_:$ʅ",VFp(#W9P4*dM BQc]l|nM9p-W+Mzv{J2a9An%-IudO)HKD04/3{KlWn'3aL}4 pfT@.됩vƻo5!oMK/h%&`&oBVɸ#2(߀} `>5_¢ ЄrC\MK&:%r*7|p!K̒w #u` K{.MfkxR=3KO5ȆB<5`O_!S:,o.ϝ^rcYh]%6fc/!4Ksij]BOeJp)lfyەėzvWQ I guK-ybe #_4FiMJʖ̰&F6XBzC65Sf@Da,`氞o;p2ƉX3תej7'|_Wb?J::`0y?1r#L]q<hէg{՗q_c?xӝ8MQ[GD?xSt`g}pZN4G89}`"`ڍ,bfiau[̀5v{T.uAM6 _?6HOE;ƩVWזspc$c:w\m_Z[[H[l~Z54JF\ai2x32 ,tl`ȝH%|`ff9C%I}y=oCjӬ$f)חكxz^HV^Dh1GQ_^%>o4JjrY9yH;<9ưU5_h~rN~PRf^ ;^GdM>  -J[Hp9ݡA&i}P VLb _ɘ6*_wnթ}N5qixZt46EGgR6|$K3 8GoYRdGo=#P]nu[>tݰ*!NQidme!zwqd4t.S&up'D!%:*PpwId;8 Ln6 J)n_6/TXۮ* œaC|k1YUh"zmN5dpʃdg}Co/a ްI ^YgtDhPC!p=|8|bSDrRk7gW +E!ڐ=W\$g@ QN+U=ڮhtM)_>*Em_%8QpX5Vцܸ~/8/Y VU鞟ȒOXLpY7Γ,S]sպ{'غi߹vK~2ƦJOk̰WYF[\Bo3az-T~(d4s"AJ1@\I")גmyk)HB un ӏ6@]A,S Yw&[H9#b|_8`C\UtLN˫bvF>X*y:s.!dKISDjFK詂̯x+x<%6A}+k4# ?g:Q,RZ{h*6*DVŻ*#R<x)|i,Qhal']ksUM>v͡7dc#18b:Eӡ" TzeZvxHf [s̉:k ’FSIƆ ;gnScvP5Ov_:3Xp$DžB*jg ,,j}'6]\b`Mݤ}D[]tq3)jɻK1oBwLhB믮@'X;O}uL%:zP-F&`bhk|w1KQ&lLE /pp1=?PŪ,lHiOl#rO{WӮR j7rQ3I l9"n:HG|d6Z!bCQtz݆4#;gQ4ٌR[%> !'ڛ7BDh_)9`i oƉpO]71M@X5is}{TB;#CHUЄ=LJI=Іיg˻jz=ǟ iơAX=,fmû1nT)L2D\G1OO=Xl?zYG?/0%ku{]vr@;v}4(wrw͝8ŚR si[8c&9*%JgX)Jo(`w)EDɖxyoPv=J߼uMݡN AsT]V;T)S=<Ӎ-ɕ1e^}>JxsG$p>1':O0;`uFޝ5Iۛxli⸜TC⋤pFHo9quz EWȗ2J ;2(\ylr)GAsykI/p|SAmYLH Д}}tM9,HpMuD@dɅh)"ˤso6Vw z~k_8M v1SBzxsfp!b @c)yD`fs"{2htN%̙/~gã?hON˿ {1wї#m>1,,(*ZrdzXʡqDzwHCZz{VNLȲ8#GfTiRٲj1G;I[S&Pt)P0W@ɟ0[>׮Ku(^ٲLw\^p"oxQ@৫v( uR?M%"<^U35#PI׽L@7|HD<`%LՑsk<@'C LTJ zLF$܂ȈoPT yhtd9xY }?ÈZOs30ռ֞{5.3PrmLk/X,<ڞin8f@tg8M ۲n:ʘ]ig}_Cwnf@ y!xo""s\zgB~LUܭ g?yy X--i,n4VqU ߻EbP NWrf]1Vv/Eỳ۳43tzc+P?*?&,ˢ"x"$lR#f/G$CJA@E!,;OރsZgaq[r%'i$C2e./f9JQj*Lst0Ѡm6Ыh M-٤{V3چ⬃!f3"(N)JsI((C<Ƨ1|5WYZDL,-"5}+ Gi,E%털CPjjrxp:[Pӝ#zb|Z;ukHv._9~g'RԬ /9Yޭ_w7u O}/ It1)@*))dI>ʀjtF~U,vg|K/]z‘Ea/_{$jX'$']?-LFFEI )#~6Ma8ocǨUeLXfa(hadK4z`D;0>{w,PbbJ޿4؂*ƻ'dyok4j]熡|Ɵ-&FȑN  'qpCGREu$.8 ->S_(#- {3_~ڵ'3Zz[)t`-'=toCr?ơb.&I}F* v}~ex V |?nY{VNȱ\/1朶eh:-0v'Nim _pA53eF j Y;ܓ h8~+4}{h^Qp tԣ0=-lj'fENDjjk{a'/lջet˧pـĄpU,~j\VM3yI$*M] x1k}sd|*v{%dBDŽgP ‰(%  ~&DHn ;9Q.إ'*D^-\TB#Pk]i9hx, ut'4\\*#|9 GH Gz1tv ȥqko"3|%sj=.P࣠0mDW*j!yYe2ԤOEHf|?XbY ҪU7finte iX,3.՚2ˊ| זgu jgXG)?t~l }(!PT 6bKPL\㎖:e`*<|KnuDW ÿl*p+'Gߴ],D~RwLL ,1*Fp&&NKZ膔D_9c;E#Z-ȇ6k{%آK 䉝JE$B~85IaRvTގV?ߎ[{>hɹS5\d;qG曰(<a Vs$ g ա$V DM{Þ 7 \Jn1T쌚Z+J\Am|cԔE?SHF s]j|Or51U6>&IFчT9Wї_Fs:a ylBHAmB^!+$$;=:M.qA;MJaES&+Z{Ow^+IA1ߙ8kQ{c,nT<.21{h+ !geT="ږs:HMe L:TWxUʉ{q; =5iy/dQn*'pϐ$D %g ͥH߬|sEz}ڹŧ6[ qMu q\Ԡĝgon'VG5ȱr;ٴMq*ppONHp@hZ뻨&oLT ^?M-n\T+GO6k|ޟK9 3<RMYkPHl(FqǭRʎmMf,kksNSd[tm3m륔rkg~Hh&rf`HjTeF\ns[h8h|b!VoV%Է+kwTA-_=(#*noyC0@ke˄38}͏lQU/YZ3C*6-ýUkfCU:,']F$/+ySaF 3ꗠI{ ˛A#1,E>y\R4x'*W N9\ OX >6Q+Cf=C5oܕIYE"&pry5lj>tVC7 x">3lJzɹHҼ"1v)@7|?4~q5[(j֨9=h4:9~ҶC 1 nu{IH ,/ԅDNǙi(`.[Tywm!t( 49m,_,pݤDLF-~xl7i`::E}?2î~eMp3"C[g-Ç.IB:;QsދZ 6] r[tc-=GFP4{&.7A: 1/}$&[BLxGApjC6U~軛TN%NgEgѬ*uW)45ZfU8ј&h?J8ϓ:Lz?K\SZY`{xO~^ZMW!%=A%FLy|d:w;|(q6%۞NzFKɧv*OkIm!NMQ.n8 ?[ .%7eWǁL mp4) ~fGBj ;,o62 aD<0EJx,JfL.E&le2WGꄎ>R\־Z*RkRqmk(+KZ7ʌw] 8t\~{1'b:{?q.4za`-ͨN*%քPci)kN jk~r/s%oJZ'Ik4orbS<5w]҄σʭd\EF%F+2xeZ>Ϫ J6~uϊIȌĎBjtC'ԩTҾ3U}ȲXeSlh(*~8*{Ņ߳$q1n5;º>H 18)A)b(O6260OiBj#A@_ ky`Tj eĞ_c\1u}BT{YV7Wm˜a|l.\k@-zi@Z873ZF%\۫RCy%?o ɥd%p|;_Q8D,1%ϧxE>7d?Q)w;2ioR byojbӬz64M"&:jH_4>Z|vP$02CJOj\Iokk b#_G7OE#P)O[P~iwH3jF&MryB׮01?/6=AS,֑j/6vnu넭sԬ${Ek&88 ʨH$ ,ˁD%Ʌ^1e6Xk4¯Tm; !wm?JSg˻S$ laܶI a֚wPPѴ`s%5Jwl ^8-]dv! ? ɳNV'7xyg|!Ne~EJn#t%CR0jy=%,$ksCɤSRJfJՐ%00 n7 y, gH R&a:btě?8L6<^gPO/n,@+YOvJBVmwK$`^3njcIaw45iI IeKI\q .ϛyNi2HeEAšbK%L]dYő#d:S[N##3j$gosf swLţcGⵗIe6#ũzm- .9|4CPMƭmI}WX?uy iYڛsƒvC+RY %uDюr 1S ELc²HA+q/p;;s.(Շ0l{qߤ S]|?&ihpo+4*1.ZrD-V)!S.{لwvqfW?c=<=~{ټ|ҁ,DКA_DEL,vjsG̍s[ ?2TAVĮ|nmM,Ǝm*ѸMfk OZyfSU}v!&r=F22,C`Ekdntcl>cYiB%ǒz*fz w2EeUмܶh|\f$"g@T MxGQտp܏t(Fm70f^3f"Q~y m",n MSn3y3ig Ga[6^  L6f 웷t3Z J^ll4ıaϭ;Q=kbZTcLz*kx\%rre 7;od밼֦-q!Q/1J \_l82By6؟N|:Oj<|2|#`^lV">1F+tNyI2ߧ H_bFC`D*^ l~7ĆP]aD!ɏN}EWINZt=^~^EV4l5S~'%||?\Qj X'Z ăb7c\E6$ YQL;Txʮlxݶ͇ y@*mVOD9O:݇7S ?:]{,1'e:B 9H &F+Ed;Blt6S:.'Mf`*Ǖ8[8`gL[;2p.˗+}-Y?>NŅԘZ:g`9D3DSfILD=HĜ%j}5;K*fz "z>ZzU$~* 1n>,VV?"*@-:/r6ވo_a1?cB>o<_B=gKH Kp1C^}HXe/hPLpT=-L8vmFCUIߔ&` )a f L+p"}Ceni^n1uB{w>U_ \ HIAL@bogvnsJrnr-\Xifl2 n-\)DjP΀u-[>A`Kt\)tяY"9F;'ۦ+]&7spnx{fLv3{ .n;(&Q%k!*e.dI d֫JKor7S&&R^AK#8.Tt~}%8dQ?f.W737=H x1J NжY/Xh:?5Q_3-L-,h٘N4Ff;1*ݐwɛgٜ{!)琎q[ˮ/GdhfokfkYg1L[k3$gG# AgRCDԄh?:U5E-yeO^0oyyv J=;jR+X *&:pz૥SУUY{ 9ǛU hc~k?Chg('!׮ *lBF¹M2r\,b-DC9_QomKnqn.3x'PHU}r%gn!CW(zrp'E]9@Gr>ڭ*@b$G,Ym١EMXSU=C wS( p0 83rT.>~WX 6r3>fb'G[nj*x_xoFV5g/ȓrzW\NAe UvĂ (&@EcE'q&q 2%֮52E}{,yNN{s!F#F$;THa2-E_vP%}_dNx{}t )6Mw!s @k,$C72\6&ue],H"ĥu4oa(guyWhν U,X,}<fֹ ~~F&R}~%Z"@j9=g莘bJS0:N}6iZjCyēLO, }PFuP- >^Ds+gA%& ü~l,n6O$ωJ+̪JVD:"G'q-督 QIB:Ы$N!Zˏ;QTM eS?aP6sZAKb}%&64ȝ_*]%׆j^=odÛ%& * YuŸN!Hg[Irnvngn:E$M;;7#^eq~.< t?/(sf`sn[+/Xn{KA^v_McG|0Ҏgqp0h\,a ;;iL~@1MU{P6Mlk]M в&HrUSoTh7@mS7W`#GHRjZVϼyY(타cː[ޝZm8:kaetnQa1).ypGސ8N6i} };gTG 秔F%J0n-mljfnQ$Oo &Ô0#?3Xj_QÃݖZh-eI\h"xkռxD럅;Qܺ 5]YB')E $d-[b[va$NNrfQfWvp\P mIFpFV+kڝzڼ6>0 2 #û&a:e~ ?#| G$U[LJv])|J̓<چ GyK.I[Tgh,?ْ qiZwZ7Fdy 0S:hga7ԄJ/nˆs#֚^S#EUb^%%o\K4 h Ls_yUX?M*GnţQ'Z'-ςFlv*iսi HcROZl3LZN ~\Ρ-iz0[|Ā\9y[ow!mƎwƻ8,< gVoY<!*4%HL I7$3\޻ ﮎ[3>A0(Sk0'= FqH**o_9fQŒO p\f(さ"O\ Kձ`SА `..퓶sl _7anĴ6䥊)tIm-*>9GpH$,/Pq\ەٷ_j}iq1 Y":ܝ_~V5MMR|D\F q9J("7 bCIv]2{ͼhgƹNذ %"e:C_1# r$2m50]ap~wդ#3&U7}՛v;D]e~zA>+ "cozdp+2ԺK(5U$4gR&xY'ɯd%g1Cl|0Hm$OucBҼkw\ttb6'scX:܊V PdWz v! ~_ i;2iL~ښb껫nH0Ѳw,=n#[/^` e?!5+[.5V&eNEY" hZp7ЩW4sY u*#ם^;Qs(jZwGPKPк4q$ÜN:{}=Q"k2eב}X⓽7 ܨ/))Fke;NߦE5+4k &~%" ү^&hdeQ`  OpK4F^L}*D? >z[?fEDA9BڏsOC\;!~=Lm N ?6fziؤP[?rh.p%mfXMF3by )@c{Ԉ\'/|xUVįoHrHjXNU&jsrl\rEyjnؔυ1^(61^4NiU >M_[ܣ,h۪Rĥ:V^_UnLt3```N!5&)+6C*ݮ{F %a R!C]RTb:V*jPmDnb]E޺)t H^*DEJua?5RCp?Z@u5NhEUa!mҢ+&HUuzj)~,>^L Jڌ7IhC;4f=aaw /s*v)^ :z?rۼYMPc M#mo#> l<-j.}6L{p2 ԌtZ*;RNcL1M>Dv|Es!Upk^w' #'Fd#3sU{=S 3eq+Y#7xaЏ׏SuԘ6Zk>2vF@(4 4ɂ}ujuQ%k ̌jmL[7q?ocPj9N`S0}Kj]D җjQo, taXHiZ{b7)Vm/ q;'lD*G ftup>\Oʾ* aaj(ͬ)b@3)Fv]] 9UVe I`>UNAlv 2u[whfw҂ql@:>"}zw;ya4 ވw!=n#Կ0l#?Zx=(mv`5$'I2i#AzJg)M. ER6=! Q ɰʜzۥ, Xr 8߰夥Bc(x0 M^#OZ2|i]#Z 5,J$>nrm=5uV ,{X24l 1q5Z+/;^[C8n!L]*14엻jוGǪ^'.FN2ĈXg]j7~Z[gdOb={LK:8 .b 3˟@m0=M|䎦PCprpDB>NA~aLiA}$e08F̝WX~W$A!1􅋌jve> \wp`y(zziOD`ބ=i' mD\ftćùኦ;"Y սX7,;˭o@H,F27!yJ7~⊞ǔZ[s !R8:=?] 5] ]pgr9\kPh$s?q:2˘ d}u>=ĬA+^~Eu!yާv~IVAxtK#3UqTdd[9W.@m4ι WP;(5G4SO\ma1d+sxir؃Ø0"j~b Vn~*ȃ|",щieݑe;ǙN/lsNOvZxɎ'g$g SIdl/e2i >DLP# !:u}HX.!L-hDPiE[HK 40U1HC~ʌLV? _KMl?mzς Ylst!'܆ In1mԁY('*]iװz9n4`+t&.N[p QP&JF"o_t5ɻ`Š c5`YOTMhwb3';N43 Ot\%_˃QnfMi7` obsL)4wvz=fŪX(PtvlJs/u>~Zv7%?;;H1U^W1Sqfj7e+;$ $<0B"\ڲ->*ZSx6U:yķxx(7 bcZ*ϱ3_6[(ʆK7KNY~'A1/Ҭ4x5٥G]"e=nQAA(4x/*gNjQ6> iFL1!QYyF[B4_{cLq*.l:_=F5_t5 [͜9L4Y$t*]]oes ~CyTa$J_Nss8bg VL UAֵ3Md+ }/R:mx8e쉐:VDjWZQα0󓀀iݑHS 5EOHEvzk&P9t0J`*uõ5#Q38AaF^1H#p#8$LzrH8s YO+~c0uc4E=aLgfSz"*[h4TwsCW*.8[Ju:G& LʬH@&"֙Y$nRC[r'j '6#Mڨ_w-TmY *%Rڣ{r % sZLVy#1du2W AЭ@ ;#BVOV7CL-ۡ[2Dxc=ohuv KA?"z Q6%脗9}7Igh9@D<3o?j%]x̿!:QLJ3#'/ߠG%!c"[n;d9 X n~G;1*.`0trf_%ES)mbK.=/>< g.hH.'|5y%IEo㗙'OP ిLG߰c7iÔIc j*8J\i້0B'1:!E %KK6>˯t^]3qAۏ`dV?Q9=s3"w.P/Xr2ܢm>G>ѣi0ׅ#=곍;+p7*. P",Y(Zof7`*; n5LT)*Tw:庑sC)VR.EyGa(j5Wx6wmDo=qe]} T"hP:?q_z'PH@9a?wR'!O>W{(XARDŽE{T`b'g|Dx ce&ʚt?FMT >pv}}+36IN][K$knhw{U~,klE;JL҆PƲhUyujԠOcnσr#GHfs*aA#i QVO4nn̡,3lAFdlZa;u+IDȕ\W-<fE!)n-b9Ag#Fe!d=zD("'XV":n3wnmi?&O`eʲn $ "ԙ&?a;d7ѱdG93`V)$ cŭcE맟Nd&PZd^Ϗc+R2$b}pռ`+U3 5*=Y/\̓ӭh佦Zwp38zD|?١)òqpHY| Z4oɤ Vg?$&*#jv$y8d2@._p2Wf^%B=zSLbnʬnQk.[aX!>v9jĪ)xt~?έ'0xř5-l:r#Q̅Fӑ-??Mn8F +sEpHşнyyo%nSR nR= L;kZ=rnZ> ={²2B<8ymix4('.zP6vɕ%/-89Acjt]?82${(d۠1oIe^p F@7!` )h5yvS˘̋lLya8+[K; |CY#. ʾT|6Ozt7J$ԋNb# 7{G/5rx29_h7|ܭT~lddgf\7'YWdVj;cæX\3ΪD |t@q]nY_Lx>ZGKYzEoOvb_Zsuԁly.G*RqGFA+x7%E3!#rs 91xsb'}׽TC7ǪZY¶Zr]ZyqDMW4oEΖ~cM Pb{uvߘ*8Ȝ3/{ Iۖ?䨘U<<zR?s BK}7z-X:L:tjKǗ6)|Og rix,.Gec8JϴG=i7L_uA -d7 6CUɸǭ--5<۳B%%NC{O ۿ$ [I%$E wyQ/%Z })V*滺i ROcJTS 6rNy)lJXpY>/"vPWļjE(N; j{pR7q}9#ޫhWBm~Xn-mXctrȵ'ei\'H4 K$̻d#+^\ qSKlKrȓ#1-+dʊ}u W5p}Z ^/)QtᒰrQvf*:Vst[WXQj`jg+6?yG4>ꆓ\'DޗGhC ;>Y_K_ HEeaCV-o‡O9o׃V]2;0%A"Qb+ voF+ۨK1]Έ, ,np6sgE_<^ tm_W۱ہ+Ppj!L?+|,3 GGSb^9h pxVV%qGykxifMQx2E͏l(& ;wU}btiO˳=<"1C[EG' TiX2v&S1@,DB 'q/d+ըrl뵮ieK.45?PJHHlޚ+ƴ#Vg`O!{dA'`x>kimm92֣. F]F*~ΗaZiǪyƨF:;jee #jy3*{*f&k~XP|L fp |q4{[x ;x8sI NS~@0LLJk'; qDmf]bjlCإ)2`,S Y/<2t<&=L &+;PZ2F6q NOpas3¶>IxO78'5$U\QC{X"$Q.r)ǧgk2s0a'ؖr$zf Q7gWNd=[( +Li#+fAO_$me.;Su5gp$ U!q?wD/;ܷER}D 2:.3^3H(X} 2x)BOF۹*T<\\$rAd66 pO/ymY ӒYӾ`k1 MV,ӿoK qD"| ,柣ĹS 5Bg!e4}hqnNƌi{y:guʣ=Y=RJ\z5m gR :ܒ ; qrnTD< g76U:@ 8}2(/E, T襆 ,=kܑy?LtG E[4@ͥMp6)x8D b.,%I+;ʅ]gtwuE^V ~r{N|ۜ[`{`.`prՖX$97+LNV3}4'!lVgsWX<1ר$#!3~T:P߽mzE$/|s^~ϲ+ZF/tқ#لb @-2X_>/! $o戮"ODЦ^ZT >{>C,̈́AvojܮF~U~XzzZTkplM)—I?b݂OALVһ wNoF.!:r?{mm]ٞL8`QnFbC翇ӛ l +~\ `[/HCGLFk(BKʾ sE|ƞ)ͱ&a01"N+ơ>J 2h(ܗI԰4%gh%Tzg:%:[h 9K7bxݑ89,']QV'ӝo)c)QYS~cdeGn FXz}Fw :AcxGMc)[5۪fJ*b'=_qRVV&id-猳CYDdW*W`} IoI? +S57Va%S)AXf='MTģ>vpQcy~\~կ&@Jd}h;6SW ]1b%~ ] W>zssLPˈ:a/f4&؎񇈨jػ&לT-B2j<ĉTFY ~Sx@ʺLRx-QK3݋+veUvge;B ]*Ak 6yZ ?U )O/AYTՆZGO*#dN4íٓ톀E8X39t*;+u"c)](r}V]e'tXy?'=#-K]j,;9tSJ# Q8L(=Tܠn&*v7ܫSU}9v@S.6<-/p >/>\MWA3͗ʴ, ^,b= UZAub/ENeq`*r`so!6DuD8:ڔ 'ZߢdKVU]Bk%B W _"[/QgLh1 l:Q`7@HaQh?@$u-DvM2*NXIzcI)RC$}ZHp z8ceɋv"A\+@ ᬆIt_i)_x蛘g&ia8 @ڷD5ŬZRh*mI=m$}{ 0~%mȐ35p Zy;WwYsѷFRG $ͬAag u9 qM7^ȃn\m+XKW?\ R9YCSKWF,BK>ж4 O3 Q}ر 3Sv^I#D(j3 <l( @ҋއkkX0{ʐg4\Z2.w*=2BE@9J%/ m1lJZ.%Ndm3g~Rz+[e2$\qKQt7d, Z7O9B3C Ŏ6F7y@]t,PB;SZ` jG-u>LOrɳTMTz.qX?A* gg~8-li'jҫv V3MY6$#h,ͧH6ëZ yx'x'FeDA ;>?#,4Yu&PAG߲YQ"d.oKO6܍PN4+ LO~c&?}p /61c<3VZl6XM`iFO@!GkT2)뺫ۢ/B\qu6:UTnsl95:? \L-J+#UWhɪMFGZo6Bg8shwPSX}C`\t*M7e ! 9KYCt#?-B v3٭ZV#}`㼂:J4?4SAJZlw4LQtQ@$7P>\i<5tct2 =Wb?~XF.p82Z ~BcF)'E$T<0ˣ{ʖUӝ& V1$Vxv0}*xDg? /-.ga4}t5{mGMgVz/xo\!OX=K;c#l2vYbhĤ'!A4FM/ev7F\tUxoHT/?GyD T sDA/TyUDdoѤ$MCfJNTZ952flUeļOOv aHJo^+9BhޱH?EK(4m#Cli'ӗbҪ7)Bv>*G%IL_ĉ݁*InkegDoxQyv]c˥MSǵpL䄇f! Ox3b0.8ށ$ڛLS"zȓ9n-O۳sMu_W`X_ZAػHY B>x> v*lH\ӎm<5VB~Z悴+rk=GO쐬lݍɝVDnAo MSʈ֜HS~?wIQ8Iͯb71d'`ShHxM?E7ɢL%٧Z9M0~aOc(`aoՓ+{+(Tla aK|8|`n}챖>Yg+qwe#JmW]%r VZ M~yB+Յ tM첐.`.FuWZ2/V] AZ}ˤ):0}]o|QϳVMA5_H~G9h5Zj&CUbkf mNRa)N*G>C&c <:5b21۪aK"D5CLXO|)D;g+q ;7*W6O>?)A e:0"UkO5PPwo$뒁yp7TASv (jnnȵvG \1q>[P99D]'_j{Ԕjwu\/9괠cGr<8zo<5eZϫT~H06i!Ҳ|}wHULkU/ @Or]߭@P\eؙMDbδaײ#d [\᡺0@)e'.WѯOs&!b]'4{@4D>>9U%s"^n@I1li9K J#\x0G,hlIen,sU'?- ~"oQe2P$sZ<*i@(C ӡsB@ZQ`gL\7LTVNv/ 8*`&D{˨H0qwU!xFd3z$F=Hyi:r _ei-.a-l%vb")Z 1(!D>*%<; hDR\?/LT(GOpHyaZ#A| ~yoHڸȄE3"S8Z<総4yAa/JqdĄJ+f(kM_ v0Sԅd C4=Բ$%@-פb y{(2q?Iei Yݠ4c]+^!|.t )!;u= ށ"Ʌ2C3OJ6RA't0:.yωH]R+1DX+8lZ&ش0@Zmq6d&Ul;ڠEq^6aaMiwƎb}鈣fA>˨N䷒ːBPiRN(R27D1RcVzRK>Yk`|T|Jr#!Dݾefԁ(qE*lq,أm{qǃͬ_ҰXGI%r5Q&CϦh&ڔ\cW\R|P3V.E pRš upjO!Z矂ιν7'T"0ȶ?(T<4  ,=Y)*2-V:Zش(f_W`w1 SfJ:Nt)ha+}hYg2e7 AGg@D~%dC{lw뒿ghi|vn"HMߏw[ە)F͡@ 1,hoVʸ]2@l`3\۔&8h4wulbͅ~&(ۇ7[ qBl'4>FhbГ=Blo7lKU>BNO㭇"-S%v^O@& (mKeep8)X(JI;cq g|one;IM2תբ׉ADv%08Ε6~(5$'xH7:pul‰'cznmٲcu8L9)?9F!i.ܳ4olALКmO \]=>3(6UX;ink` ~˴JN| rw_ oB^4E;/E IV^c،1U~W8`&_$`o 2Wk<(Y6%!I3|D96"'%FvQgZho ;ە0Ip S6e\~No.}.~ Pܳ_kg'6e4iT@Iݡ [2q)j}18jTIr\@,mR\C:G=#,]tܷG,W|G|(-Hge#Me ;xl:!#R|X*P'Vҥrt]t1?n6/':9qh qdsz0[G}=$oinKxF Nw( M+4R7#Tse.@66$"M3P[(BDY]`\ѲJ OFwN7u\l8`fؔGF#b ҎH5jl2[[m{75z"pk5Ż +z!}LcI͐d-"@e %w"mNCў mިsˋN_]B/A˼r\M6I Et,ʝq]w^Q9wJ0bL^VP ;``D堕a@D4tBfUiDA1v-hkp>6ۍp}ѾVDOWΦ(7'u䭚%l#[C dF; o hЫx32"+$^M$Io$T)o`>0uҦyBp!\uzQ%z47-83Z`Kw#ǫ=>dGaiq†hCG|>MuVYqp![s`>2*n}i?~mU9,Fm'<-Xі.""Clϻ5x3ׁD@Վ ; 6.\h1uRfZb^ǽRBq\R퐂IYi*a%@o5t UԵW5J 4((B_KSZA=W9tFN~|%8xp~jnUzMF59 |=/ ޒi1 j*!ntHSi0&cQom} H_RFaO" @ܣ"jo `YG`HQ AjQT:\I`؏EPβ3rN|XU{KkS1P]{AzܝL`#ig݃EMt̡Qd@`1|!9FXuf"D >?}ܷ5Q!w%RjԞ":pT)7n*-ckvA*2ܻf2/"l_6DyQ?}{eIguBƗOU(7$!h44!~rdo{;N?irC|<:DqѩQM>]/VxOPnh2 5Iu, l5k-W+l颅F؉iQ,>LiiY=fZn11w"$4:>9 ͔&Lٞ"jBs)cK ZX6e]1OipV¬eEV,2TǞhwoڿv7U=!e]K(СbP# $ nˋEݟcGU] T5=#2T943* A8M.uX ZDC@[n[*br{9A_S5Iupb]AUeQ>ŕ)؎.*{L+!'^7w W[t7´UBEMA1M J.W'h-kj"Q/??lP-H$eO׎ܝ C|vZʜc^^>/Ε_(Qey<^RX@=.IUOw p,Nf|T[pG6@۬нI (Ogg5˻"L/9bzJEWu*؊+N5x*zLzp1, sC C-?bd| Ed9gCxL>  &RwR:biٳ҂ov6%$[\+c78i4 N-;q8_l(l풿'Az.BMÈΫlĨ4x'0!~!4+:90=~|:3 `0<9#RxI C!l3!9P|Yuz&u~Hx^S`PqFNRt2 5Q"k$p[ϳ 30L:}6;)W9|M+wu+% /-k=?}h)AOI0٫Ci )gY1;g!Zih^i(TS)`o749$bONK1[vZ`AmnAkA Z = Dyɍ?$9u%Oצ`hӨM-ww l9G`Xzkfh4/l5%7@c]3ζz eԾ0sMOgc&ɖqJ%ˈ @C Z=zWwBMڛ^7%-"m.~`,ۿ6S{=,w ^Xm郩IgmR1χ DyⵋT"mBI3,r?5Ap`amNq8UsKZWHXYAUY̆GS$.>3?Ӫl|pgnԌOO,]4Z+2afS}w n1`~jXKݏpy`jDy@~Lr *b~ɓoNH+[%;nhaݔ0iT޵AÝ#P Y{Mj'|5"Ks`ę.Z&| mE{ɒs%b\ߢ鈁V<_bk'AQ1w3s( ڐKu>=Py{UfWJJ4bE|pJfz*)f }T6}f6!i;0T5! U;5"2B"\S Gèf?یqIaB5׹ We.{:;FG[=e3ÿqQ$)ݷso8kRtY.9)=׈U+*ˆ?=bs3yhpsVI>(q&5ltpQ|uC^(|KoiAo wh,蛝?6i(}U. ZLٸ_IBSd8\%!8H#CSgb}Q7{:<3٭hy8i4> &BTδW^! Sm(dGX-xn((wM sH3 -4}ߧF'1|17sjl@{q3(k)˦[lP09IGO FfT~{Ը5N_ˌ\#T(Q vmox kI:!?@Z`؅ZWw7G^y{;|%![pA)T1;$6lL9V$0=))De5 *Ij6숾dt5qtް0f6jɟ\lDBCC[C=Ll|Gy\%җPiC3Qc$ vi!7|J6 c {dmg}/;#7rk^{pBaӛEA_q\H @?~MK%7Rjp'(ܱf'=(d|KbeZDNpm/sW>fPZ U /yT5< Qw_T&Lޜs-m%nvлɢP66%I@j#Nӕk"δcPcz*sj 5 93al:P RuK}'[qVpp%Tz-b'-ڻ/%wbizoAF){ GGԿDg`XBp+)\Rp7"<'ͮX먑 sAˬ7\lZUXPkתqL. HmTuk~sk4%{Ydt=' 2 gxDyQRsLgAbOYk∋ձp Ɠt:f(gMN98b?L8Ї%o $lє}*HZ&DY&aZ1'dB2`g̒ b {=Vւ\sc 8L^t1 FkMKhro0.HAThV6HǺoL7VVHqa3[Q0/j#C= ƍF .uj'e}st>Ie C W|t| .$jqDpU\{V-IvAX5KD)o.:=Վ._p,LO=7,!JwBmLȓ+g4X)Eb^mo^A4Q8#{c hɚ@X|^O^ӨuQV(z׸k[laã'(r"5@/Tȝ-g6E9zKIZϟ#@bV(/>%̓l\xv%Хl)9(x@oĤ:x.nYaJ~WxFuH|AoL@;^kfǰnr=mMnfQpXQ[FPUF䠫2 Rs?4&N7}1ҹG)5&AB-l :9٘OT,oAw-JkZ+Y1rLR8< AO \AGAtRm ~^dE(4wWd*rGݦ=Хc-Qש<z6aeY@r_ؿK|VnoA81OndǶfȊ%p;ԏ'*=_os`}9" IYA V}SP{NÏO⒍eU3 퓪4.slSfZv{WD  ?z5[x@,1: d9x}`JVd[ӂh;q </Rd!eoPtR@YVfߌp.(lce@yZcF݁FnJUQ{o| Yz=:d3)%`c%(v"n!ulϏq" x{?lЬ%SC m9/kp0j<s8)245e{X`m5{|!vWQJRLk})@bRa %1- A 8׹yp%3)Q=eVk!Ia($M:~eFTf}@:Sr5\nwDR7aHp_KΊc!hSGM U%aRu&:Qz{}DwObu'l>[s8etȶpx`Xn&CUGdhedXV"~'?1l[B5Umע+i*uQ.^*/B"G=15v$B:ZrZ HQm2W@R0%hq0*2c;8`Ą\-%MJ$\ՔwQ̨ fsS.&x?kKeV1VQb$5\>_I⼴I\8WcNv뼃g+Ma~ALGS?Sy (\H\?&Rٕ1nu!'TGt~R{%4Ke_~P|n]]uN De\ ]h5)Y?7zMOBXcp$~X&$cpc/B獍$&2qIh>sq1!uXX&+k7{a`Wa~%1Dw)[GJ<`6fƃԶT7P\F:ړ镯pw(i]O!S-$z 5F8,[O\?$1g΢MF]lڃҥ9oNyNH B#}D-く>$[ |>\#7ᇴz]Oq:9pvmؙBD"w_L3e) s49Mѻ%0.W?jzM,fCȕ-P2=}]ڃO8i<,~9,xaf%{zZ8ETK7C3bOb QyXG`W?"Z(u?_QO"l>?O[m:2IȪ|U"إgVKycVNPz͎0Q""JY(DuFȤQ D_]v}>Jg r=w0JEӻ{=4*9("y-X,Uۨ,dU2bIUM%|r$z^MzT&%lj# @#L1vbsX<< n=MK"r ?LRd^7rN0ᝁ.B+鲍pa(Fn>Ve CS~:f3px>ULna t芋L?.D~ZX7{3F '}IGXZ̸D`E#NJ8| >;y^la>‹6h],C=BS/ Xa>c?MlcdF<[IR]mMR:C^~~`qjgUSmF^ISG*蓚%vsgYl[y8jVhbcM7|mƦNqb?+Cpb1P~TTtԈd1vԚݤ1/ɍx[TG2 .(>B0jMEir+T 8ux`> o`(+u2/mgԍXLD=}k ز\tAe.u>҇DF?DciC-Ù/فb0 2ԚuB)rYiѾ$H6.Km2ݛLTwʮIrw?K%)J4R{FPmЮ!<3(ǜ}s>WGƞD]Ъd>qB@ޯqN:CETHc[H`J[]ZkNh6 ʩ,dRO.}ǕN7LG?ӣe.(QNȀznl!GW`ׂ<L t]',Ii!*rd D8Dq)YIx4S}aPæt{熿\msb<2oéj*Nc5&G[4u9/ip1}VOdmr8hBE!+yw#|  ]{*r#GR8ڛ9IKKU." -hnf_ :խ! `e߳~UӷUs3*iu8Sx}{ t՚_$9:@ǞX \"ҥ6e 8^GHs.ZqIv 0h7:%m)@Y"G^{L.2^ͩ as؜(1lk/N VJ[C 7ίSA0s-cOc (|tϻtwl3}Ł3ŮEK%:5 )vk=?[-w %xRPؐLIӛ鲮"CW!Ζ-?=;WkSQJIiDjm,u݁}2; 8nI*fN w3VUSſˏgHGxYē[>]R:{O]-C{Stv/(⼖lټ=:a>-D@1uwju2P Q h<.ע0R A_ҍ"b~3JTcpLLjPĝ> W^LM 0Y|껠[txܣK \-'shaRѿ ko8xx M8B^hǬ${dj .Y?Smڦ12tz%5$D? S}%qM0/[Lh/REK"5y{JX's42>ÑRPZi"}CŶ<`B'g9w>+#qFqfϹ`)2X:sիC<ÛfBS2S*EFn07H^hABF**U9G7%CDd"oo[\FkDHW^˦nvMfYk@zEh3M?qxIr l(59RIJKU03*jjF8,ym@씘zj8` Hzx漘G8\}*Cܲ -r?j@)irJ`YWIR&SFzӑ-򠊫iUPW!j!oN + n_|TRaY&P]A8EZ-K j_kZ;ߧ-|-s؛mLha,:i[ޭL)bVʹ; P5V|CZ3ܮsbmmhm}54oY$CDKk҆z5PN-y[DsV+qM %,)0SzmE=+6\2mG'~>td#MT uUziA&x&YK!:Z1=` ˻ AkfKŷ1Gӭ}apM(s]^QpkUx2Vu%Jpj#ePS)߁Z~XwJ ҂[I)던UsI tJ@KK$p{o-*zpF+=;Y UsIXƾ=]1 K~^$ y8p%0B 1kzpʃ >;}) dh .BZ`7iPN (!A]3@If88mhW@ՄZ&txԏ\<i % alh 5LXNM:ˠ}u Jn9Mu I#`V(a5CHAnb6p"F뙬 @OL{8[%|GmmJ#֪7 WN_ 3r.f%L.{u8 ?(W{Iae?gB"]ɵF] N˰Mep4_^K̄PPŶcG@2z`lSǕ"hBx_rdg="Jzd}^xVs| ̃SjJ6@pƝ|cL.Gw& Ç:1Q9tvј n/Q;Rk" :.?>XT9fF3_E;U?kD<>v3g;Edv?c7wKȵxhJH-Zv%-n3$ի*RvV;8QR •u`6Y\iOGⅴ#[f^SL0SX#C~M@X}?aNe'2g%[\8xù"{:r鉘, H/Ƃ{cQOZ1jjdu)  P}lW;P} IWO4"mg@6E#~`HSiPf[D5ma(! F /QsǀJhh&utBmO-çÏHE"GٓwcI 0T9ptlI)0\n :4Әb1ޏ9J'LxO|KcOfH4=%6bɘWq7"{!uJ<|vދ/A-l"k@$I؇u> gf|oU HFA܉tdcYlv&fpf{cp*B̳kѺbEře{gD |X7oT %fYlmםP\‒TQkȹYZ9AL;0?R"!W/;M)S# o"4FTc{]j(iNzcN%5pzȰ+Ỹw۔Z+D[c(#RNbKvԐ{[|f9bfWX#mȹiW|}gsЁ7^H᭫[' 1[qzӷӫgC٨6_< -b{q z4;Mp ި6o_QQEͱ,J=y"(Ɔ.MtǯZ>MBasJMpV ( lvE$ l¬P+e]%jD < Vp|;]`X+\JKjO|:SFH,ib@}ZK4]%cRc[_R e"_p$\5f׉yʆ'ow4unqn%KcaoviZN4NEwSۨd:KDyp 3ۮXZ"Fp-I^sk9! > ΀* M =cRxؽi)~~BW>S-ЫU;·q}ԏ큔N7c0\BF9`Fxh%}.BeHB"`rۯdQ}yd> xt?Os} bsOpwː熊a]"; ~ʃn{=QfW+3_UU<3g}.ndN eH,di89S]T9/Ӵ.Cc>HJ.Nl;XŬnhn .T`7,wx䏏;lLpt/63)[tb*ApmU\ '!5wQvb6>}kJa'9ƳV`>{A9!?ue$R74X~RS%IUp[-=Sf(۵'Ch5x=/;!ea]jK;Od08lk%zl|+ C?<oZOHhD;|c'͓q =e3Y_7FabTb𜼥#pRuIja2R*$SoOo~\UȹCc8栢 JJ) 87O"t|SD̘aW4i%A)O,5n9*?3 ~Qme |3paE>]֐i !CԼR/DCB6R 7JI7ovE2f̯AyZ}(\AT?I»=HqQywb~yW}9Q ,~>_9j\y?]8fpzjR ӯɺ7Ia6`4&0r~6|ХDBҌ*V&Kt0-?c~ vǕ'\j4Ǵ/0huR|TuT6d ' gfnݷhv sH_%'!DR+ЊU .Š%'J19Ja%O7F -298m&!S 揉qj}ΥF'iu&MSИ^]W9A$(;qP$ ?Y~@SyK@M,p1@ b:n7!";rݲRȆ{nD=dV}5٥cg4*XD'7]3fLPN'8[crWWW傂TaRP`@~*\ ͙Ȱk-I xa=rxT]]Cp1%z{86p<΍3CHf~f݀q}K:Vi) n:9-ÃV΄,arJ!>Vޮz턐a|J r>sY#8{Z`x[kJD!n4@&T{z ;vvٛpT5_@z.iz"G vw7Ps@-\Ol8W= #o)+?E#Lnn/A^.PM\@xK~_jAS}j [C'{DEi1ZYw%FY2T_Sхgn!uuX`r \J˾WWz5<ĽrQ|"CVAsDꃖi<6L̃WZ $?Y޶k<8V{%+Gjbir9ݖG9&W9Xi( /7}J4Oo"2K36fz URoltSK_r;{@A@:#CwĭcGi zRu>L'O!/f59~RJỈXElO>!%/=-]!gpB6da.p"p[%Q`mlT8;Zvb ZTqRCv+mؠ&)J«Dww`\mˑ{݃FFӪ3y `5{ml;~|l73x\!( [ d'S6eoPŻi\F׽2 T3 !=}SF2NȷC%gCƺ7RXw+쌹ygWX*8:NdGfs<' [$ $֢H͙=Ky">4ΐɃK ݦ{5` 3 ~ ovâvV72)j[kVlGMȜzt5ᠥyzйT"Ȣ*1^{pe[ 7F@j\D_AP&8d~I9wQI%f~$ 5x pKtX+726Qi!<}-SZ3z1L[,6B e1ʀLŞ;#Kֳ ; &g[?}) bV?y~? iW:]my ʭ0Y*d_oz\X˧.@[!oT]+u lsĦ6&GD)\oZ+r\RvI=u?e̿Fݍg*jM;oydϥ]8xN'tG@AOp ֭=Tp )v5/7g om.Dݧ4FT/<^2^շCs|RhF礗ސc:XԨ[ni!1p|>U~yܕr:w !8TǺ  t*|qZ끟ՄW}R"΄*8ú}|!$xF?.q- kQ>3k3GVI;t:n*I({4Iwsﱗ&@<"e.;j;Xus,v$}ǁgM+l kVϤK"it3Y(7IbV'ifMΞһBo+̸%ao1u[ڱ[Hb56DQ" x@ml4=fḠ~-7CST)t~`}Ջ"0${!LYTq5#81VPZbhB6BTv׭dJ,RlDz3˓U-l&ϖ.ƅgE0kߦ˙?F ae}_D:m[>ޟ ∊޳/[[q]pT=C!\[:|l]<%ߤ>$nڐT?U&_k!8~ʈ*_ǚ4Q=9=~k^k:rFUB_F&E(-W ❝ >UPɽ>׀b̥!sU3cKtIu u-F Odi틋)WkऔjPEgm\5p+$!ŵL85%U@}YaTG݉+j%0Qn1{}{wa-hR|@p#qrQ)H3X Džp^~H.^T:)6–3;=Jc,`EfFa[[1qx.D[^זwVt#"6_,{ 2?W/L)5L<̓3NqLicT`j 粲zqInDIؼ2%F|HD-`Xoy3lmRUrdP |Yvџ'OhV[m}v?ZùH9x7#?f{F3+` @Dn;5QP("0T~o ؕ6<ØK/b 2>1 ¬0b`$v xϦz詳]Fu$1%KN,a& psctN5Qn  I|?*fl1 w2?a|`:t"`Wǐ%6³¾j" p`$@D\%/cŬtSG[dIhJЁ|IZ1H"U].?(:čRB8p۹̷,dtKg\t4#N5|В1Dr!b"*ղѾQفd aQjgZt"'\9x*(7BNUK㈒J!z+[9a ?MkBmNܸr\4~AdG8Naʗ"Yu6uWM`EI~*0#ӆ4A{mqӗ,%S6tw%D%BTsT>BgVU̞٢%]k9kTʔ+\'#y_sd\=tw3Yf/_AQqlqL^!fpmfT<v)W &~[QHZ؀=ngV h:<{_nv[@nc#QB,8lk,򞰭L1a%>'txMz @5Aetc!8C$m7ut=Ec HbҰ+Zf5b6C r .d/1zh6B vg>\HpzS R;$w3nDOY&WMpx5)6?|h-ZӾ"ҽMy &DLR/ca}& !TzÉ'}/@|81{o!lG/l\@/M侯}(dTD-{+֜ͣ/;b+2*I)j=eϢus9IƸ )%#2}#8|G@7mIV0s6u)`t>:?pOYEfp{3 Ht&)ȱkɮE\P]n52M5XHT,P< ƒ<1QI-&IlnNLF~`)!|'WJ|Ō7^qpU=EFW]ʰLV 1vLIܖ}|f0ŢAq~7%PtNRͣ78Zt9VKڭ2Av'1*8jӃdht%J);݊n0X* SSf^L &9KuQn _r7]ؙ& =r2t-žחUJ`&XX"NfaF0ef.cO¹&aMfyF0L];kˊ'բB:fѽm@P}މ{<9jܼaxcYIOUâƦ5a}9H6r]"8kkG-0iB!6(yeKvnn(ǽSWED-*S%sVV`Cq481%[m ~'e]8_ 髶ɧ^6.)Cwz` r!i7Ԏ؉#D=M}8'F\T⒯ƷOӢFNYphJ@ %Ah{w ,ѡzI+t+uЬkyL{wo0ŜY%}% 7#1Yy]S 4I<=cV^}%ǫ(W#ສ3=ֆO'+$f̭ fb [ g FanN@`8 3NµX!'q&ka뫦Kw$Y2}OBa-h݀\AީɆF[ JݾB5\ޚˇoNbm;ˠhtG ”Dwn57!ۈic}{{ Q-zjB6 0Zj>?xMZeSEsKPjOzvf %Z%eًD%M#"c_R2Te}&y8UCMn9RE@0ǹ@ ^б⭬ K$7($[XMwk wZB$ՀUl]:V U(j|{먕 -%л rk4L85}=AKHuH!ə#"d뢴_^gy^ $UʼRxC.hʳ#6%Pj>9c"z3y7NKC؁5SW=.'9rp31c׃LjL޸2LTkSGvS،Wx`/WƯw~A#'BagIFZ-U~{s@ز&/CȦJ')Z7UCjK؇%{x2AFˬǑ[U|*J9ð+"^Z ZK?s3!Ϝi(T r+V藊-:&p|CgXՆsVKOj`<OaE4@d~CN{z: fNcP7{Wa7 5CWPwi}CbQ2pu9j@*HP fI {z͐iQkr't7'Pp'֗f=`qދXJGJy`K5[{(tbNxtf9^ȵtĿ2`uw_8~d~3M g_*40K'h"aN2 mr{Y3k`tW QMtõ_U*` 5[̰"q]yQ,muJ^?zf!yАN)9i4r7=LH9fqc't\)82W+8ci 3x{%oaIZqeި hM&c8}* Nps͓pH_U<+pv4Gϱc `R]ґ |U "^jyFܔ(//B1\܄s+⋱&zew@QȎhpM/KbR)CBSL<`lPj0潋['U]/g :~S\mSD<ը0otiw0Ù dcg];s(+(#N"VbGlaX $9Qd*B΅| w% n'[3DwP=5V.!.2eMUxdӝy4І֟Rxd=#UҞ6lǐyBBUUɝp@Y=}nQRAZy]"(, G7p93x+i"=/ 7\k,_FX]̻-׼GĜ̒XH&^f/@cHa㩇VjqLtןHF,`'LԶ4rE8Ftn@ڟL 3lk4e?%vNfiPu~S] qF/*ye+Q7tn=5y55s$ )1߭jΥ(Jκs5% ~3 wR8qcSp7]QƛAe! !_t#>3W$oWis$].q¥ՊBrZ/Λ(3i$_B=QQתŎ79>ހ!=Ub҉[~U_Ȣԛu~sOO> J )(ߓ0YʖEОKVBn]Qu\QsSQ]G \X\[9KN\_fdKo-6[K贸ݹb^{PwEcݤ`QႼhCvK'XAKG*~C5rSIVou9E˿r=x-_>UOS7C$#d=֛E0/Q ;W?|ޙYn#yO:Ξ@G%ٔMTl|GŇY2\jv(~վbk_h `:xYf#-}dȅQfw5:,&"] aW%BN뙔]:jo#?Y<o bZfqԉF/Y/;$d+eL#x?0Z~mPЕw!u@RSұsBL5&7*OKYe u r?*_IEb"E˿EoI;@7Kݎä9~Y4Njx螘d^u WZ]n+ j 'OOi$O?Xsh;C*L4HL;T :i" fC$~h5 N}(x,ɿ%T g YGQ0amI*Gr&P&rMXגKYLnuIQ Mad+9; "6^*(aCC bLK;#>rQ(yD߅"NY^ >LDe@©:sdBIDV-6fja>U4y&uk\+x\/Oqyؔi"i*cN\Sڄ/tu#`c9 K 5қo>I((uRJ؁/!T&47ݺ,~ Բ~&r((S1bE-1?FEdu\dThA_|B rU~9NLABVIebr6Zru1yYkwٓÞಘ,~c6"tS5ipa=9`Lq0ܨ2U2͡;.]Riw@ q'"1}ϗhuRaL),_?4u+z'Q.8m͔E|ǶJ(nf vsKgPL:7%8h VjRgGdNmG>Q0pR,}@һ1ӊJVScz+CCXܛ|rf4/6;%H d; d;2|=ޒUؖױEٞ56gX"Mm^ Վ4B@հYӛyJ)s L\iq BmH4 XRޖaa 6]~?% l؊rVdVC%-Y QS;iuQ̩_m\j|]^ 'OȣbQ4p9D3MYɉ-r;^_B[h)J/X(g.,#Ydj_M8KAK䮤5`Įg4uu7+6VJ $F8"ܼ{U{ѽt[+ YIEK*F!A?e&q]˰m;:M"yND;*\`2E$B.*_eG*w_ $+ 7LЎNI gl2p}8`Nr]㠜76"SP3BBCIhI =| K}J6y,qB%"^.Ahr!O&njGݠՇjhFW#$.*ξy38*#oZU-\h(~h-Fny A~4ȝ|kԶIEw._kg hp .pTJ!.5K>JfY2x]h_T"'/aÃ5d%$ĮJ9g7 NA ԉX5v= L/W'FeG_A%7E6,x3Œ ~ GcKhGx6=#.a3U.v`'%O>Ks h&]ftO<4vα< `LT[)$bwޫ(yiwmՑPo Q~" ,b{o4.d㹉7RTp4e4+#Ѣ(_;n=dȒn3q8O-*>sOWNt~&2Xة?,wg!kbqlՊhkLoa \nd:XBDUmi "f$*jPQPTFpbXQ'Q/FQPx nG؟Rvנ<5-2p(S |)`AYWUHjWHV+O%Fί;06OLpZP6 qUɿz&*`5viK`3MϪOj ҁy ]N va y{fk `w-0AUl)sO O嬿ZLѬN/"'ˆMSt̮}{֕Dʠ5o]{ĸqQ@+:7AG]T[M&N~渫ي?ɄӍ "oLt.TuTvp"6H7WҍVkZVB&N9wgW_}]Ԋ6O(Wߘo0.]A'7o4=vÎJ3 `;8 Vo}_. ^xAPB #QS^ 3Pd u`H(*.f^Y' vD2t]OQ(y%9^{4~b>2?ZO{]'qW2(Xa4L H?&\CE|SwO*J~rvv$026/USz=+q NV@T7;(9-Mʝ.A޺ۉNYlWyĩv䢬,s؋I߂)8.z=δ.Z!8Guj򇄪 $~;%% N#sy[Xa4Q0Ԭ1~mO5P@wS~\v*BH X)G۳*JOwi/ÎۻEctSH5t.6}yn3&>Kg__3K{Ffif<~9K\.scZPyTg 65 dҨTca$U_aU.4}r-Gpm5qU ,g)a t!CoIwX+0 Nu%bOHӦ\({ 4e(#\%Nl&5?>΅ 1~hC2Bdֵ~jSqG^h08rwYAQcN8q'6}p7 < S [w|%h3Ӻڰov%ZX4K\1, t2sxGQz5StHS Uri %ZCSM G j " p}C&egd o1܅N_瓗F ?K(Nw̤&͘^f*$>M"ĄJm^o@Vr&hhs12`X;aFl 4ȮtxEIwQO]X́ Z_)Qh1+zy&-zPdDu2 x]b5醪J\jp|lj5 \ }H!+X={BPƳSF yiVRtC&`rcd~সXNh>ٙGG*6ι*ސR YlRK߅,+ tN02]w+ыMSP+MK=I:}ejɔm㫁d٧z֖ςġ4*N? *8IDQ. ®Td,Wu% 8]c-v7 n!r]/ʒH4N~\iAFťlgGQagᓠc إ'a|X!<+~l!*6SX:haET7b\:cR&y.jimd`hϰH'?]CyKc~ vSVF0y#z* 8B$ӳJsq?&XuZ]a4'ټWqW EV?;#@Xr"tO\5{&%\bA%hVK_.Icw`Yqa[&[\i4gr8#_(_c_J6 ''s}r:hMĦK3kySbm| Q KHc39z疠GXOpvwh -ҹ-+֨6f ^nR"SL78:9 C9Fת*Rk42fe6~ o;m%`~wWքK^!*tw6(2Ϲ4NK Ng2` O+p9O~D(#P0Fr_T n5xe`VN!gE޷|J[Ƣ*r9Q)GYN*_qq̉U˖Rη0[_H K4lWB^7^tYDYe ~$υ[V0p倻9:+i"\~$f:cD㵅`/pұgqy1;SNxÎoH|x(?eq4'z q˹O!@ )gx8ߘyG}Bvix8 RTZY؞|NӇcPÐkѶJiNcȮK>*YlBַK]PZc:̘*(jT 3kZs4F%Fm1Wi>sQqlQDb" Hi`N<)q4_) o5%>o(?Mƛ:IPt7XkIƍj6p0lFiJ "P(,Cpo#A" Wz㿩/r#!L$[KNu0iIvvt&\Hf#HWm%L'H|kxI J@q I01Vp4fE4&oVn8s7^D~%0Ke9scj{⓿`.ٜEHm)vv;mex2̰K\O<18{eפ{.(}"M2=/m5}MvHFfFspQ#u\$!d2e7)/| v&frQ0=hR=i>m>w\"qDi5iz k?IeBJ]]B QEhaںy94ȓqt b^Dh2Hʧi%H@< n*E6sߨTZGU0k N9&rp 牞VFEtOڏ|3X.rPu;-uUq FDzeA :z4ஙDu}V;}iAW Mŝ# $ԭc]/R"1= aU^a+fFDD⍂⪡-.a94לABvł"Ȇ5N#Hw@Z6yO0).`T _Pzu[.NӚ&؏ں"h'E8UB 7'@=OZ<Vhz^vxM kWG9fPLpm@s\Ym>qA S|pLb/|KbK]떯?ں8q&]3'M]~d$\uy9:8ށY3^Ѣ;iwH/kygY 0y.`Oh>ȊJ~@.=6tW??ߊFp=7V@'\*"jhDH= E\!8|Eiu=} Ê^ [hmNٴ"=Yz ]JfZ]'#d*:{@,"SQȼ8ZR6Rzz"HV٧$DB ; G=5f 4Smxr:/V}9SR+&uib˟wU[Xsw^H1 f(} 3N3 i>le /;Hzt-V\)up!/Dy{y@-/ lyt>p i:6PrS#iiϊ+Ŏ"Fr=~3@N:B5-i${o H˥> Ms pG"}+㎭8( C7eg?@uԠT"?#z )wxwZPAf4 " ]g H¨E;Ec 4ϤO m) !3Z).(K28^^`"KgXՎDꆇQ% q*1k“Dc$dk @AK{Fq2g_<ʕYRL6r'ӏx\wjugYg__ƘZW40@ 1ʒ~@ߕrk)k<>P W-M$CB*0Y FۚXt1PM0ܣY! +aBKTF\Hҩ>~X}.={a{6K z,0*jMNX4vCnxEE_L+FXj5Ŧ;,;`װ䶋ž)JIh{tm (gׇu .9%RY5gb)YzgEnV3jz(>S}>|Ѵ*ư,+_O}.D1ven'%9v\Iq1k?=#X3͝4pF$ve׻ߋ&'nI@ٟ#f%[/K95>km[扱 }N}73(w,p7V ?$nҊPKO[{!4CX_`|L$M<0DgQa XГ @q+@]V=łvBGboxxHO cԿgzBvG4oߩ-QfY$lێuGfT{ϒa60f=9 bDLzI$ @z{b{a##'\a{6#S=n)4f"-4|Zn#;HH \iM >]FD=S!},;{#_$g\ܳ(VLej+:m|ڌjν!!;n3ra-*۬|笸RVWeVS3y5Ҵ K\ظ彘犚n5j]Yךt pmsZ|B$p`X/adZmn7!#pHgqkŲ^^ro oHS+B`?J^~j)Tvs'9257LP"NºqxA&Ә*C"SSvٿd3[ZmOK!slm?n!otBkf99L܄OAv-%_-mfaK(0>0m>6UFk/hB5j)[7 M %>{#FjO꧞}Զg8dM"$1>sK(di=< y; zֶהF$ QϗS_wqD3)؆f:wIx9.A8+0ASfq ;6q{FA&#_JZoӽ{K qOu7M?͑eoy3 豆el̺_Yb02mL}O*xʣR;lRvƗo§ $ lJ_S6eZ|ߔ{្=qMVv̿}+a"bdxݕ.th!/Q= ݨQ~AB˥Rzlu^^NfOW8 2?l3 IJyﬔTo.{0T=;!"M!=- 0 Np+E^-eЃxxacUָj׌ٜ;y5{Azɧd ILK3!Pa?C%o @켉"y;$=W=IߪfXY$װ:+v*9^ t,QxWIaAs"U,mɺG!{Sɧ|("}NGz< S8[=Jw owxʸq1E(.8/[kDhՋɝ(g/O`s,,\:R_dL}|?-/_::=4cinr.fas(6%ԑ;RyOEyMac?׍7Qp_iO'kq)U;_ѺԝZXVDB_-Odњ+"hw2(r+mXRdUq6z,.jqI2sseK+xz݅ 0L MB]2v5Im66 A* C>%@(y K!Q,^b>g*ɆĆ7,ɯMrϫXҵ2tfQ?SQGMP `2^µ͌b}f>̞9`GTHw>mHmc n+% SY')4PVn^*9ٴ<5KŠdp,ZO81R:\ހsFI]P u3 -Dː%Jеې2#K3N6/ZTmTnhcDR &Iwfy KĿ_mx} 4׭njS ׏h?pe'}c*T0$/7C;JHNf>-\d]-هv$ wsz| ]HN{\Jc>ofR5 ~aHGݞ0ەML]ذTt 0!_ڳH%)X1l1yy;5кz jYf=7$zWebcai[),xw_ҽ2JUsdqyg bm2BQ8ZyS.fŽ>M'PsFJ#!`Z-p'i3L2ɀ*J=&`csn6 4U\+jB9Z@) k5"j̅Hx|6i l)גJy= \cCrAq8P/֋11[D㞨&z딊"ꊎ7zQsxȟ0XZ``iy&aA.v5"iN1デlڕO(Fbqa${h'R-Lx& c!l]j 5)X O//9rUtp6V0^(zsBa?<j~d}m ~B f\A&ޗRޜWq<b[nY2 WV ]p7<byq$ΜGI6cFS*w!!1B?{P`.kec2K6{Urᨏ*rjD:׽xgv/zKku;Cj͠e? _+8e7ڿUY TTryn64qL1a,Yv]JI:=ɜ )Vn%+KbTk\)j\ۗ>;Z&.蔥5G [N>_'4MC[BJUyHF'}n+Nۣ% F"RnK|.gT3OUVԠoGllgA\ Lfέ)[RAEpbVO?wBwcv@ :*t3RYMC%W~n'7VkWə!`ia3CH\ fpx S#U7 >(sGSE)˵λyc(?uA=X'= ,8\<~f<ħON*SKE\Ev!o(P}7bL~ZRY^ylT\+l2}:*UsfkN?,jPm((ދ ;- (Gu]qaIw@_0>(fWCX],ϷMw sG.7z`+wrH0ͷjIoTʴ]S@{<\EW9H>E'vN;f\{bYR)[\-B\f+k71hu@_f.nH6g,u>:|VFɿӿ$S C5eqo@8}OҲeZ=wfmώ;J+gAmUǃV\Xc$ڗ5Wq[kOAk qHl93qCUK]3)|αuz"tnm 'sOKߎqsj,]'el{?vEQhm}ޠj\U.n݅) r֮ivF?E!e5m9$yݛt!;9n GdQ/ )򑏼=/iH> t2;Ƶ <5ljt !#\d~g;"󥫤Fl =Wp7wq又|{YBdI1y2'a} P2[`j9HK|?2Id\^BAV5 | %Lw˓+:<'H4Dl q]lEUx$ȋT/H?ˆ#:_sSZ]xS7^*< &k f"ض9|fEfJj>0.ԫS}rEfK&?t.8tH+(H RuS̖q-0"@)_P[-EhrřJ?zzElI'aS|r _ fm8Ug%il78A) <֔{`L \f{m_؆93`&C5Z^"GѨrD'^_V 4R" ꈫ'A:9HȞF>ݳwc \6qgxS zL*Uh7{dS@tTpC22_ ԩ(%TVvo :܈񖼙8ͿQXvي{TIȐtCH^ u-UHhz#Ѓ6q;$(-F9Q>dmF5@-7Re;ّri\Ba@\ʫBF"J餡' wo F;Y 'j I3U!ANg1Zz`% $]B|YbRBNˍwXRdǂ)~v'ksiLEsB5': Uq+xK ǓX,[a/vgʑP}Lwn/ $5F.bsV-* bSX#;`K8Nb"6?ܼh,]0 U]2~5H7$\Q?%17/5`P'AuCfJPtHUpm7H̚z 2CuwK{ N7UI0w@3N_? XFF&zɵ3rjY_eC%8G&TJKu )_O/dGoh5OOO*pGgu &Jo eIo2!}cWfQf 2}T*V,ɨq %U4@EKRJu6Ěӳ+Nkؖ.ɚ,2°<$=2!OK{E*ȧAhaVCH֮[}ik[=O${,}rJoٖac ,Ur j+C]J7=1;㋭`;kt9eCTXdL= (.}Ϥ1a!S ]X+%2J@<ױCub>Vð} ^7CSQ1IڳҀ魄- e^e؛'N`HSe%(GGj7:s^p yO 'gQb5%DK0sI8Mbɫi=8fc.s8=m bb+7\QTS9`/A1I>$s)cWht/2-sD)?7^ܖ)O$ Mʤ&]3觜F0A*f) =~18n_w zőKÈWK 24?S+9_]ؗ|\#(5^G zbr1H3勆co=S?:(5_[xp_6aO#A^^F`N8G1j(A=ꮓyR鸹ԗW(r/K:v(h- oLJE)ݓi΢`tɞNJ&e~.[0Ɩ? ~"1$n^&^lDA'c~=mAin(Y1Li(45݋wRR(=.ʲ1jKпƀ^5r IOcW抇vd$Kt),&s.}GԄ+V~T_ ?| Åf!LJZÀ.e 3 SGDI,SE6Z_ErS뿧j,&n*s+uLSRg2Ɋsɐ<(CMWd}BI^K?&zпlKx6}QY+j. E׻`2nv^DQOm%EdoZX[ )ju@ث7A-:{~0Qv uhw}PHa$=JZFEa#sCSijg)UsTr9 s{uP銞{6ǺފP-mG<ds͊ G–>qJB(.*E/%Zkd4g{a?_ -=9)s jz_80?9`R@'0qqE13zv>{|y'M6G^BQ4 ?s)iT ޔ۰A;` rCs'W^ѭ-H*ARDDV߼d0,.DCu v+M6d8 i|R\>@+u. CЌCr^΍6l~oW m340{NHh5$^ 9VKU*Bݙ`[P~dghKKyb]6n˦໎ڰЫ HGfEZ p}:='kŎ?Dxm3>/+}1n%g`Q$Ip]HXET*nm`?䰓>s!E;ߘ;/m8KY{JHC4w/Ai8!>Pa<|p 4(5F]ݖѷvt◄HS!61ex8u~x K Jdq,(Xl* P:$&(u^\ |9R峻o8Dо?]2n|"l@Nw@;@dna*>xq?UG:C/=В`RE0wKG?`R +AT<;xZ4ƥx=[ԅ&n6j{c-4?+ޮE+%7  dXbL/p!3{;^Zm]8e}h=(ɉF%u+@N8 B }Š@,`\T/D>o2Q e 1UoA*W!)a3ۭy|Vv?XIT++T yBr&92DYF2!zȊ%C"ۥ2-߷ \s>`>pAуGH-EVsR'^~1v-g|7 ik,hڻH0cjbycВvb:F?(%f+$Ìl$tR?s&Wn>RS4! 7д`/%Af P541v Ve Dmғ*Bo1/ڮt6 %FS8E%55x[> bғ$kyk]s狯ߠQAG+5-~4T6! ׹^yGKwJg뛀]]ja5n x#e1@T9{_ƹ|m7ݪQyX;yچ c~3^s@+aufHh-n(x2ǣɅ-VF1I wCӦIgQCxȉ(?/Ԡfvh5}PGXXH(-/.raQY$fL?M6swcM.~nw-L۶l.S|{ϐ.X_19g1"Zx~Ә Be< quM#0qj<*I_Hc&qkKcR3Όf.6ׯ-,_b4E"A!<ŵ(xü&mm`GKrZ'NMyJx0FIUs+v)h2Of(t, X? SMmPeyw,> ݕ}Jc'f"cELS{@a44%(r~tH(ZEhD2,I,]3I*0ꋑ:Ѥ(栊R[zU[Gȗ)]"7F&cWP']Nڍ#Gd8\cj*ty(,_JͽfԔֱ %i] uL\O֮{?ch'@q8hS([l."&oA|o  +r55M='" 1 ѦBtD^Z"fnlb1G_36:&n}960^\^ H*dy\_wJt>lPHpd^%բ)lNT9vj)RsВ/AX Nc UbdKXAɖZ΋q.0>q}h¤aF;\#-n ؝3Y:,X#:9a'P 9đXC4ng:@9+ &z 6EA Wa 5=:Urc\,(uhGM;5qZ; цG#QH? :zu-:n(٨}XS'ROUTT$h@X|/$9lb_K|PXs*}F#9"eel@LhkS(MJ6rpr- p9^5" ]kMj7hq8J#ҟSg{O-}O3;`zVp:J[ %r:'϶3C >Î`h4NTroy `vjaXyX6AH vfQ"G lG[{$:mvz8:p{}2Ⳋ w37 ĵ-ՀF)˗]ѿ_bN866mT4Ao~_.sL(ҳlߢ~ّ %dU΢פY+o{Sdy@gɶcH 7X_.yOo=Rc~ta4TK\9{p M 41z0ֻ^hف)sψYљJjI[JriP\ē@z$ dفZ(@Di>g0OcA!Cv龅 ޤ Q&?tgfݫċK^NufV0'>~AFr2u9u ,ZUInVqiѲi+aWkfWۡP faF d`CcEz@Q qRdL7DJ?k5P*D 2ghlLޘrlv"|GҖLYL;g +:b(و4h4 Ây0Rl&'%$bUx>q(31Do{a|k ?U`# |mw"XO]Wa- H-5VE<^ڸZb/QŚb|S;{ \a@Q>}:6l؁+E:|W}+#% 6`[љxJ YC_q7 1+ {_j쭩1^vN1L^Y]>:9X\*pq+t(j67Y:~"fT' ?nZ#*OBQӺ ^{\~LBz}w&UD41j!ôIf>Z=$ԲG,kegɂں 5@u(>Q:׶EqGfHFo;#OD DMs؅%Vmp(A[P~w-0 K܁V$ N9ό^bnn]bMKX]۠sclᑹh ʻ)kax<ʾ5r(|&ӪT+Ɂ[g5;;诱dጚ;xzyc{=Gy~%h]W ~J D:b2 3ui"Plw%&nNqe4흇.e~f=xr]Gѷ33[w .g79?1 ߰ASī//" Fjo%w/=b4{_ _srH+xW< [ Taf mzOIvUÕfdkU5V'FKK.^P6CQj}#}ʶT*?wޡ=C,F #+[e3m@89إeFJ•쥬';1eETTVf6MSOVv[I["?C kYMSO,'J+N/vˣs ծ 7G7vá J5 5lRcMIQ/< "j$ &.[R_ysX<.@۽r[ES Xn\3EgI-sv4\MU:|YC˲<B]elGq|f[/Svn1V^!|Sְ٘,u&E[U/_̌e4%;9.lu}黹8*!U"}h OT4Q! E$gܗr6 v7݂GJ A  @{MyHח./Pl_i\_w X-pΒzHAꍋ\]!GlUieF[Ǖ*8sTd"H(a@-l'p, HcX}܆0H`sڋH<Ӕy4AK^WG]˪ЮnRhЀ|MIw!ATpH~#1I†eYtUa) {5Рw>j^O=RR6Kؿ{c쥄j70ۑs?!wHj /:se0~o`06fan 8ŸŪG|eZ:?8D[VY' qIJ*wAa kPAMMōiJ=@و8j\?k4}osf.hkk#kV"o| Jd}U׌Qb4#[6R Nrb* zeIU?UgH?D&G?NUéds bMn=Pf]?"dž{"PCOҜbQ奧X\ fЅfbgt9B@rxu4^No 1Xۤw =q9h|'.mQ %*ΐ,ڋ35%U_`r ɮ?d># v+i?H ^R  }CJHQL4v"A +rIG`A0]/cLӘ(~Ȁ#Or!/MW;x<ɋZ}]LEմL)-orE(s V)Ia>,(t*>YX?*,MLCW ĈO.nB'RUiLi@|f_}2ʽ >B_birg{gW8)'MU}Ȭ@`'];T8jL ɏM flRO5mF*Q.y شvdLX?2P6ۏH)7}ĻGOI}*L_KC0qkz),@ H}e4ͥ,*vVmp*L%jLz$׫Si2Qَ>R:zẌLϘ(;H 2,bo2(3"`nٱ^WLq@?Zm>=RgM)gR9,jQ1Mt1ݬcF *h{u 3P]'#3|h9Jtz}~.Pf8o/!C8p눕]7͆ɱ|"l7P l*r h5"O$It**mQSeQmGGz-֑>e~p<FEE.Z'vNC=a/@󮹐SKqmrA 'sI$"鞨`;B"05!-Y\_m'znkj6ij0*.]"z9T@/~"k1Ov4--{sc X@G%ƚ+fgWֆaՆ/pbAc~6j_ZA}g|((̛ѳ/9Itχj`Nw}hM^>KC[#(T|@ڴ9VC)GFGPerSO+zXg |DKJ(mւ-lM ~ޅvS"I˧gqC{/G8Gh:4m>p0,,L{}UQ>]jpߏX!vpnaB""y=- ɗ*!G6pz.t}\0s.=g+OKjITS.>F9V ghw݂(5YرعLWy.9xh2|8GXN=`)3Ѻök3ו)4𨟯^ZtF{ۆʋ'Op 7N>ѦPק]0 n¿ D5jB:Ufk#-*Lxq:f(1l /cf4ʴjv`&11VO=j9>ڢRȪR}Z>r^>й/$ Pan*{=+p#BZCA+~fkLHcא674}l,ֽHZu< t[Y >I ܏ޤxd\řv*&"D׍}㻫Ӈ!04JtMy^jm݄^-|= R[]6<;/tjЩuD!+V"bv1;"˒NO{;6ShB*5X%^éc'(fz;$vo wNQwma&8.w%$Ϭ[ټ!O1wRʈ p ҏѓRuacGV{s "R<ӯ2X􏕙#aNdqu e} AW)AL`79= b@ռba稺a ܭ!&*ϓ&Ir ?3Ġ+2m1'sQ`7MAdV#V\#T7Fi`Yz o6`DĪ{j<84Tcݔv33@{)g޳IwN0XSگʭ\sMtK $!50 ЫɬJ\|dp[,c.X*U>%}Ͳtm.aΉL)wB`v/%J7)FkXTɤrDyz|_tSmIkLĭ66*[uM>,4%WC=I8u `Z 8YqrK8^4P`#Uyw":.Nܚ $7ʣ6J<,*Z%Q˜7Ϯ;_rQU= Ӡvx"0,;\f!VRS4Hxk PO<b-L*SekiKf05o#]yE!T*Ǩڬ4Odӱ =#|O`nse)߀4$gwO>HkJoZ]kodh-hM>@}%{0V|_w +Y:VmX[dF zfEͨ|`k$>jSiDwzǵKtlsyKƠlfudRY x, 嗷 Lv.+aHX}D?sqNi-,eem GF, 2زo~,e}g.Uxps8f uv!ϺhtTLL$w}g_::Y7sS-"̿X~4C^pfjxjގ>&r%,/d8Щ>}#Ow'8#}EvogG^Ƚ ^bH1dm.J=^ 0'ۛbYwoΖ%h9H40w92屌@B~,PHմiM@m1,78K)Ħ'ZhAtbG-X^T(H. If۱YF{yy8yl\`u'/@o 3Xn5ǫ?2Dr'E˹"0Ulܛ@N{va5C.GZjq>iDޘOJ9fgPP-O34u qRhx79u}4Ԃ>!J6 g[H/s)8hv= wV.Cp~LQ:vI_.O7¼h. ($ȇ%X'(?Qa ;t #,ly  hQC-z;3vFh wC6~pZuS],TpX|{tv$/x=A-Vg} jhN;kfcW/Jiy"avTWA@Vw7G0;dyUwV$ff dVJ_8ku\ BV!E+t{V tzk0a{[+K {;}O΀)JyEBj be(m B?ݲNtAofْ .eZ`H!L>2(M ]\7;pxR׼1=6aSӷԸ ,>?#OijJ6'|E l-i=(liG_!iI(sPN9dycWlT3&&)G#xIG-y.N"zf% B D~r&E\Z{ =yG0fդ7P^bdim@Q\_ z6x/Ji]j[1B$44L/*t:/(P hµ"Dy*aty2*B1V'`X T|v\^kڽKCwmb)C U[lSu \C0FYe,ãKDmN>=)qTM2{i<,պg$M\ZF)v=:Ll?PC._vdU+;i&; g1_H1Yf\6R 7:g&\5׈OGJ"I2&.#y ]#a _1Ǎ_QF Zj]? 2KsUc9 x-h_~@D"O$FQܙ~:mbbz܇*!9/8-ȟ%Y#k ʩp2a:H T&[W{ϣY %&yA$C}F;sr2w4|](8N)8)(7)̙qbWz|[ q-/ē(nFjB0S z|v[ҼJP^ȰG/wS>={A^mHL:;jwѢgy,֞2WշYl^gV?R9LI(h)^k$ՂLAd۠Iu:eO/yaA(A?4bZ XO=f|NIk~KH1뮵+t(8YTT8Et6+mor+ = ȂlŨ67;VdJWذ{نVX(C1 ;MB{?DYs z$ͻNUxno>^-ր#i-:ō2F|u5u"0s@_$cgk:u=^r_ZmoT2B jd@S_ M`F??^{Y7{K_qZzlPF )??TAd>1 [Oy0 ڂ,M/ QJ8Ұ:&CGZ= bwBɍ؞診V "`*O!-6`;NVA;uFz^]vsINs?'.pbD{zH2lQM&Ieky(-']>" {GvL)aF3OKĬ8@L&Irɥ:?烮L]oa)G̛BMWOO!a7sLw}`7 uUC?JEmG"8(_F[6'8t%!XhX[a7)\~4EIM{mԕ:IwM@hg{ vݴ 'J>p"fب;ʐ󰣮 k7d6.Z%O,Ğ0.h E_~&jD[-Tgn~M`B% ,6zխ\Wy¡ā^yfvjRnKE$+uw *f<D(ީW][!XB V"!ه"heW0C;2_hU{ fi׳q}/5Ыr* ZפMTRpE(h d<r3'Kv6s &dHWМ@O,5zJFq^i]~>\Y/"f m0V?pc^~h!M QƎ%.YSþCȖOWadN\]ak{qh?ݶ$C>ID[ieL^f% 1ȈD %88EQ3|ZBQ[&M~1I V|!u^g~L0Ծ5v_4G'Ss~r:5}Qϖ$Co_x.W kؤN|z$"Mc7:vpe;TFsۓJq5ҳ6 uBY`#j·~VZIT8 7`:u@Ǡ7<2s d xtz[v?~iVeҳ yv|nTjX ~nQ OӀVX>CBg. -ŽY#νi#Wl ZmFN)Gj+8A[ԑaNcBĎ%ΰ+uoU53p "ߢ7,A}pZg%eZnDY0[, kH?diļ dHɺ:%b̼X&XB{z씔O4֤awqynIX|ӆ/IS]G$휊Qd_~AЃRjW.!1 WՏkj!$cg(DӤJrZ8]ȏuZyswa_Ym0[c5I+QjyD <]ٽœ݅SP^OU, {W ؆^5f R?r"ts A"1DU.h?^R: 'Š:"Al5?VRߊ- Fz}@.r`.+kcZ* h4VӝrZ&*--._K=+\jgc_Z*K@A-'*uWPj⓿5v%_[@61M+\UЯdEoɯ]~^ қќV\MĦLLV[+R\jMdD*XIѭNxmwКW{+Ϣ}`\ZL- }KWPoQn^˾Ywb}7[tBmطQth/t.h[ֆӋwRYUǺqhEtu Ae}fZ!Z(azޭ]V* O͠-}CCZT\׺dN ޵]6"քޣZM@IRoSy+7UZD$Z_&}&Xm\ҭu_Hye렮ĿW9N6VjBvLLV^֮f%g}Kwt])x^rGB.@NlNt2twb;W}R+*7z/}4Z!Om.Qt0Hyz'J}GC{A~߽}w[nz}CMn7[{}*GU :U} e=w +GLIo@Лv=_LPoJNmz } 3zzz;w]{b*WwK/GwkwQˣӫA1}z t~7L\]5>hו|uYEpU h+zw{B A'=z+Z{Bkw77E#]Ы_{~Iy }}w=s׾%ܗ_{~|_Hyﰮw;їBo} ܾmjۅteDqC^]}c尾ӭl3KuċV.pL8p[e:|cJig5(`CXIls[ ܡp1u/`(a!ji1H0eZmg/N `Oa$|W=hMQj%_ЩI!,έE. njgmؠ \4}H0z>6+4 `-#ި|^xDx)5)bp>PCD99~?75bZC%!ڔTj^y]y,ul@o.sYЭO:.W dK AN6Ȅ"^LXa;G6zjd6v zFs(U Ȭ *J*^OdO=x\4 u;%j  "e?<&ĜeUHj0naKgڮb}-糞dt8`e YZS70^T!vW@+-]&nYVغhaU>O{XUBG|4js L{TaRQ- ˥3@-VSJ_ ,KR(Bk]NRr%@Ap]Abg 35甬 -<˲g06y)S"wob |tguP$묊P")WL}1=b= )o^I0պJS)TP\i*P\n/o(`٬x?^N?|bȁ٧ Xݧ֭kn#eP|κ&9 )Bὗ"Ǐ`a|;z!e@iv>9,@[\R3OF#G[VoYQ@|S4zA!f;ow&@Tx#g.dDq|H,ʁ@==AQ9f.`҄U} >Mk* ^w6(o@=Za;x={Pk@7V,wUyBbm" qa4,R/hA3HO'V½k\bZ@}; Ӌs8meAZC|/(%ܓcRSF*@&8y X+S [0xw.ÓZi ut)-ӰC./;!oi{:ɖ5*.֙lk XCKgv H#Zd6FnߥpPP쁹8ElNa>*b^,gN_dZv6γ&G9TB? 7x}}8i!t]XW8IqS`uC3'dR4'tӿhΦ1©oWpV֗2g>hٙTfy;ae g&V=AhO: 7#9d[$tb7:6܇4 jքFS0]S}lA"ect=WWEQ۸pCv4&WjkiLr{1SCB8w jɫkZ#Blx ..>[D nIt0(Krto? .nʴeTI:thϞxr3šKIL^=HNKUЎGEffiXS9Bxaá bXbdD[í9KTHɊ`G6TvzFaMj]ipc*gCzؓyTVU)`bo0i@/ g5͒k*>0dWr#RFe]XeNd?力V ~4}S8jc>^VLV*ٷo^ &fAP +xxLdfCgÙ.Ztdyjn6=c%)mJXLk-Ui+#' W퇸EsrݸeW8ʝr `(̮lk-&<%%;ϻN;Mqs-mp<\[ @I4H;wnEW|_i!XrcĥƸ'䳹S-ef4 Vh[Ӊ1C.vr $#1qdO}?+n9~yg1@D N{-6Q͇#鲉j<[p:ҌM[ 5jW'hHxCcMըTdS2Е}-*}0GqҾΦk~XT~^2`WsOWB[zKDhЩ|FƠ̴ iy4Ak0hhuxPh[m901u;/:GDEUW4Gl(8Ey^L %٠R#LwֺC#$3ԋTD;;̞~{S#򀧣[j~QU=֊.c8=E).%hEqmmt^} ,}tDyH"8HAvn C1洨$C8v`C:'֡A">a;te*Q-ٱȧ@TcJR)3*7IvM>;uU-x;)Ȱ=3 }'1pz3{KV%)mK 0av6CKk+e5?^%/c)8TwݏTfE}?īx7>%[UBJA<R0V W) ,sM1 8e>5)3pĞr9xJxp"8&x RА 9X-9Z.:;dVZJL=T@@ʺ9V|{jA1?L#y+ ]׈)}:1VE&XZcLuB Tz`d x(! he;jD-pWw9&QMKn1r$-E ^Zتbʛ*Q)b~RdDj]s8mT#TB%Lqإʢ$-+84@P-- b6JW Ht3f^IfҞ'|nRi9Id >9z0peѿRd2հj [34A&4{p定KƝ*t_~VbM3; 7i!w=}tc0pj 2%lKzpF`VWl/vnoM)oTBd@\a&!~嚪K;|WKq^)z >I;Ng$i[]T{V" mf;Q ϓ޹up6qD[ U$4 בDs[L}箩7}vUu~7k4NUF==\)Ih w g´ cqK3,i, f jcͺw/qMQߒP|h+nNLPn6OVOmbo%.C3hϰ%ѝrM>:fMS>Q9<Y,|2ze6[iu;_RN5k}JE^t=a!KlónKiXǮl7ԣ͢g<) ]~,4dEYs)]%vk/Ko{õ.yt,[ޣaBt`̃PWJO%DH>'ZI F2;!)K.׽>Ö dСT])Yʃ=;˽C>M Aܐt&j~tO @p}+y>mA_ɴE~1i]HbY Sx5ԗ2US G336yÍa9t@쭰rPy6BI2\!ca[IK\XT >cqMbzN؂ G,SL-%4l ƇsQCblh3Ԃ.Sumo;ҳZE'2ܪLmPs-L$eO^)e>H{<8QpN}uw6G :l5}S@ f_Yt6c37ٕ1{tL:%Bd/'AI.b^υ-0 4*k>eQ9{b:pzI{8_XD.j)vb|ĹaE3qxڽv0}38DewOﰐ 2A,P˜=_K1 Sڲk[%ՍpOa)G1{mT/_T5H/ +lGK]ՙK (8Ř2R2XFVw?$փbw FH0De_رy5/rpRVޢOJg#zwN Ao큦Ur2fN3 qC:ǶY-~]Tc1jiq4͊,(v9Km%`L|IlS̡:0VL+e#Wu´.$rܧAAJ__aԽ6QdtaBkFrj"x&Eo!~_j6a4 BYf$4My?Gi=CRS3˵̘L t\ZtTm0ƌBaҍb,x?F}=\W ܁P,UZ?#foዶɛ$*JP6X~E;c_8:JW<O+atAD,d>i%.&~8del/Tj=pc}(ؗ%%]e1qx8wAp0F }7q#*0aR'Vf.7FT|*OSI;{VeUF?^l]N.Bau .Eem $7͗l`w-N9{`;$Mв޵tjT[ 4.b꛱M'>6>/ⲙyUq,]ee>o _اXǬ$^C+ӣ;b8L7JC{ #bI*]GDdo>{}~z1RpZx>8p'F NuPiwΥ,޽ͯSWjnwbͪ:Kv/!"%V)у~t~ ub·A~Ϩ-sn0H>O>,j"@p 6Q2V@8|SI^PtJY,xS>~Y|_O11%`1J;/7FA 3SS{۞i9'񊆛eDVq6cc*DDߑ&+1oM)9%ij*ܚ3_#myEqa>;B[jqcdf`&,OP{f.4&d.iDO-x嘄ÙN+8I%ީsx)O錠bՔB|Ƹ=8[~5p"/⻣Ym] DОE!0^'{I.=7@)Z[{X`pQ3QƊi%e56횤AҮݻIqZy/U{ m8nLKɷ 1?Mr9;DߚxNMV0#45?iqkq;b~_, 3t Hy5oē (:Z*eknM>چKյ&X-9<( s0}h1Lmi!H$418|Fƻ3_ybH|SUFBY,:P_Ͳ%I!hJ6~e^a}v)@! )hYBkbO~,kY#Q@"7(ڍ &yؚz>:|\_bxh`!݃%unjoꕕ.Hd<6$'RJ Ha]S!2-/kM";BȕN= Q~ 'JN ZHOαXdPᢃW2 { zZuA@jg.Hky5P bK:*͝OH{NWl ckHΨˋָ)H0)d2^y mvOX5R,VL (1$Б+L` Qc %GBcs.01L/h(fϾy\+wzLĜ/hq2rA9ǍJ{ݼzhlȨ,z,Vk\ȷ&M<$~[q x߳vw.x\gŕ6l3!{c^o8hi0X ˜66evh@Vi6P©nGp<q~B_,.B:(B2'Q9\O,]+JCEl@tcMLlVe"8e_E&U/~?)~i;;" ZL23NVZx\S8Q`Ҋ|yyO`&+ W/FNE!F(,vHn,ag*r ZUV[?fCu%AIWY\ŌNT$J3.+(Uݯl*65mo[,T\ Wr ynd(M 2>pjƮHoa16Ɉ4'8eg[RZ.8n&N]7,|3-8_⾨Y+Tvm(ÅTs!J*ف_iK)-P~!ћbep?ںu GCn-}Y$V!'v.\vDZooˮ>Dx K_r:CW.c\fAښ 8$vۀ7l{+P݈θDXFrHN}c3E' 꺼Ra|"5=ֽhb6C! T{$ɡ|;tjCUĩ8"=aW9o4ld#< zpJzfw;YN ?Ε&u\#O3j;ϩIW~@8d:Ij` 7ʃ?7i11BOg[`AZQ<ݤ;{dIQ6xX{`bU! `{&w}v*/d!뿟<6 V}Q0T6+{c x4hrr vXגIv yYn"5ɚ/ T eڞ94C{4 :n%*f9;7au\1hr<;owk .U~-Q*f!=" @uM._ k%8Jta~bo%pPsGU+ފHt٢uDy"&p^:> d^=Х{oZ$JItx8"R~.Em[8S>5Pk ;*<X sVs&1 W{:@ޒ\jvyqa=:0)ĩCۚ_鹏tAP$AHYʂ3\-Y@á/SAWi{rD`BT!Swd@}y9cfQ OQuL+ &%#SH=[0um*ˌlaHC-}u-=\3g^v +{3 &RKOwoq':#R 򐷦% ϱ7G}ЕlylI⏙61/c¶&b(;IE{xap+#"_W~+U1#ݭIV$BS9 vw؁7Ո2vW)&CX+W̰ `mgV6^))^T(WӖc՗/qIVnW4qBɯKoП9=&#]w܋ǽ`x>`,?6 ~K.Wr6Tު˹@p:񴲋&l ʚ놂SIc9~-nE2Z^[č|ZW( *DZ;$7%F"p ޖiB}x=6tP 4]zX.mdN' ۵胙zodcw kͶB%w96@&P@sp1ēub 5JegFou(-翷ühdr_N5l\3Ie8v3%r ~n6u)*J=2 YE{vuQ7=" 5K@ȋ"doɜSzQLUu YX+7FBުWMcuD׏W6)EĶZX ,$+Kh+oN\=r(nbU|JQb}ta|d]Qڄ/d(sp3T7kr%p(`6Rҵ82w!G$!#JqУ@ɔ%%RAJHۏj]L𒌏 ֜5j{znDkU K^keUbpHʿ(R0%r0~z 23;-:@ Gtmb@ΕEI{ŬiO$+'BZlFxY6 78YΆ!Qq@k{|:BI2ry8!v--|Se(ؗ'~Dr[QLxd 6VXRacNNn&M h`y@EQ9aNIbF i{NO!EDv-$/T!d8Ak x;sɚhe]QF7[AHbךR@avӬSO p†f\*&ؕ&JVE Z=u!U^'ȫsޞ%O{*&+Jy,}(yK 'G]us],[~~7'hʎQ*Z3pu`lY.(&6zbC,P>iٞ*)ŕlgd8y 2w٣~mg;8sz??npA!-\=i>BǪxn -XEF`YMhk$&Vc]gf [,njhN#OU1I>5zjd )vw[ oŜ[Ξ(Khc%G&حsIʹ_|bpDEPǫ8+LxGk/$,1ٸin>s圴,< R*b|@0 ^.^%NIrs9n_GW{N#:j &G.&̆#zAjSqLMd!#@oJxDUſtlwvV:\kN|2e%&q!{}S|-텸v$~-íWlnʫ| ҏfrZZ1( B!b|p8dm@0I+%W%8MLx|rlj̕}띴IC]20K2[1UFfc]V.(EZ.X:+CLM> ՇhMRX@Ŏ"ڗJYe[C%uW6sSsl~~˽?rȑR<6(j vP^oo;$E"a+w;/U 炐<1K׹iuħjy; o^$"k$5ϪVM7"A+72,],(_[D'x 8NHJzOM2m4C T払5goE=0ISzgJۚ/(Gu+VV -\yL河nOLFǖnBvezM͠棷gRĮ7Өȯ 0_#(2$%FAMM DQ`ĘCc!j)Π?B)/$I~zV|Ia"M&^p;Vkiou=l` SP^0$VYaA.qx8vŧ[a xoѡ0mMϓ:"f>nuf-UYހ)ƃYhMLd3q ^RgDH>x1h8kG̱dTLn8SL>7L EUY]@wM׫RUYA w*g]rQN^Um`l #~:^ 0Mm݃ o3u)06kkq~v5$5ָJhyjC5ǰ*EISe]7J8Ԥ}.tgZʓ".| Ka17#Xir(U0;XPjX)Bn%-A%HnJ1VAwĢgszoΥ%:D6A٧Q^7$(ԟ ^n Z $cen,;_a$Jy**Oրx'`Kj=nM85j.blc5|LF6T}٬&D iݝ~pUBCI8}9cr1%c kGHz#8oa=A@LFd/faù8aœLJpH0L TLd&~FiY={?,t X Y-,s~x9{78-6v,J㸳v..Ϳ4 }'5ݭ/wWI`蝔((jЊUr"j)ہ^zM!^ Hbz<Ќ4>G ⮦^d%!]2QcUi]E㿣9J?4YHQqW^KQiq; jYO>d̼iP@U3> Q[XB}暵`+@9Tb" gZ'WxN չȄ,:0; -̙/*jJ[RRCc*ZWٱ4S #Z:2-ŝsFN,c" ]pcb$_уT (R4| ZMh'%r*4BEA{ëlk&K QAvP0ϔ*"-ǫ%ԴVFcԲ%B:=h$]4nӳn;Y?R`ZYX{Q S}eg:V,8/@"qP U;ᦀX)} ^y6Ho<.Xy->^-{Տ"%{+r`JTͥXEaGTm>,@UpYZh2YA `luq3#d%_ wDAg[w?f*| 96m-EqER |4wouew¨/p~i#K5Ɂ6_>'BpoL™(}UgȻ4{Ws߯#`r05PSXB5CzeM;j dT@.a UPa4F 򻛥 ro =d6LRZ%IVûjn؋Je߫4 je\  %T9U-Jb# O,44[\Kf[ҮTRC.p9MQ"PmRGydu 9>i2liHKBkT `W^ƚ_z(/pX3)0ZO?{$0 81tXCEP7X媇XYQR,U)+ ~]bu; SpƧr4&4)8uPVL @PЈ՞aDYO'l|"jBvK4E}@e5eX^dԕ` KŴG$E*"6r{kڭ0hߧ]00|s~Ƭ'"94zw"pyl6"@_<+[/X$U^]\&B6hyU&*kZ3eGpT둆f@ X $vI2|>"SxzALM͔p撠1¡Vnfm_ kbȷ'Kԥ_~utd'KS o GAFce-f#AbaOhɻ0Yw7*or:s`Bnw:HOyUMMAn%Nl8c,d}Sظ*ؑ6b{=%5&D\GUY^+Ed`3M_/81m?qͣQuQxr3:s3>N= WXBќa78`:Q.mtӬLY?fZ!=]٤=t6o|}\uǢf ɬjzrD%^#` ‹* ܏Aخ=gNs?!".DxɧX&nXLo0]~xu#؞eği,YHh<<^X:9zs5JTaIiyS8K ih`'aH#q 蜘Y{Ù儦[o ^.6d oZr ]yf.uizpj{E20d߱e*TNf}Y֔ۤ̌_sC vu#״xG %խK7g<42͵LcZ#[oKwi}r{"03=.2_Xh&pULpqak %]ڥ6Ƕ]M}8ڢ9ڐl9^H _`bɌy"J6|,lN9VIglC+n~=̥ Ot>z*(&&/ эЈ!VH Măk1^/m$Y)IC8lCV0/EjL^/K^gh5/ɥ^+lSX󆒯:=L 1 X8,:C"QQa/\ ﹉/N;NLlkwA\Z:GwE0^0 UpXA|9R/yπ_]ݮV"?a~t,V:b?d f-[3heQb^Uj"Ǭ6kK#aޖrgpeV: %v$#9m)Bh7kw2wQY]'Ɖ LZaL0d@ t*uDqN a+!}rQ90}N={VU)Fd?_yN+4`HX艧RԫJXO)wQË@vg w\ f$6K}\b$!OGI:GSso\W: Sn<7m~퐶"+RCof*c. e!EZ=vF1Iz(wVD$X<ûLа?/G.j֗-Ȗh$|"ѡqb(. ۩zɑ eOwX2ݻR.>`@dDJ-rX Ì0cB.d6>d*/V%Updilb1 ۲?Y+'<4S\ n6"6V~FO t}wђ\ GpƤ6**ޘ|2ݱCN%)m(e`rK[sc,^zd"|]x6ޣdҭ%;U:R =(p{0x"Dy?1ݙn\i߻ӉienY#y^gל9{ѕ0OvHqUv\Ml"H£\_tXUe[>HI;o=N!A.L?mmn\wMQ%f1/bi"%|7-KGxwխUz Yh6W>H ?"' @D慕Hx:=va(՜}x 0|< '&D<|W8> ~DuNb)zIgx&NxIor!]tyήq?y3/\܄pY uE95ڎِ΢KGӌC'I,U[ti|5k,6!u2w#m&vn-F9L<ˏS֪ۄ EWO'mI(?EG=B\($Jz ; {H&@(8?S/+i  D/qW/wB8(@Ay) Gzj$ ᯰ>l SrԔ͝GD ]X8Ws]I6Z)-yz )5Mw@QMTRJ@-rc3ve毶(ü 1ܖj-K%Va΁9ߍ)nTwٟHƊ'/ :nh6X?%si-5')]Qĕ{a#ePvG,CB9jy9#)e]hib}|C_[.@jڱ9 /X񜡿e */y:ח.B! wt (ϣ>U`L"@J\'dl;4''.9GVMZjST,|Sx.y,LM $F!SNͦmSPs"t4ߪM'+:h= RGkQ;^c v\]BEɰt{X.łOy? \$ُ>&`_6G>0f#V_Eb8-7v8 yj٫ [q`c/;5Jq+= r;},C[eWA1.]+s~{EmA^_GcIX–%s *) X%4^6NA(N+ӌWV_(izaB>}[' ^AZ$ԸK$KOkrxV,% XEttnVwK5b5^p9C:c#0Ðg(5]1>&E}-"*V{7D48|QjPLM豯FMh$}Q̡~v"Kwc\ёk-G@Ahy/X/ 5s)X*bd=6)eX=2$:#^ ܖ=-R3Piə_U|lH mʙ/n &lZL,Sc՗iPx)eĬԄ3s%Q܆\ tw|FSR7vPd0W x -B?{q< ,Va-cj@1iB!Jc0U l6@S*)kiG(j4Om R$ȔP?-Oil~iӼcKN7`pI|pHϗ KIOBrk1^evP>llt$Zo !P ٶ ivW]a+Y*z?Kfm_S'h1}.[tm#f;$8o@p6GSС(|ݪTg}Xb~Tϳ߰.1f )z[1+0CR#?EFxnvM?^4[GQ/Q=2rX %$P}9HA3Q^ep%wnm4 1̇w Il[[5W3)[1k rqK :^f4خ%v*^:U31*0J%~x3HJ!9~ Nah8k7y4eTQȋ yr٤ U2g=;iiEu!Tjմ%ZV6Tʹ1܊RPc[E&k"J'>%.0!n6ﻝLw B˛D'h9)g {^r8hObGWo{ʩ6e1Jy pgݳA[q,rxZϒIg=ϔ79/O1aK&GՎx$w(Խ=.xЏEOA0UiP zng`}K@&;xɂ뇐{1QL8J5Qin1,>3sڏ iӖAna- /^iNSJt4L٩Xgdޢ*jzk*'?9m639ֈїLN"eؿjGVeqcWyNG̞)hZYs³i ~ل'{RoTmG>yTe5m2͛&d?oљrսelF2x1N:'l*7IWǥ +3{Ka QF+8OwD6] ޞ;YϽk/x 4؍#l<{{nyf'_{{3 m K%RJE~8p[^w(F[rKt1P["ʯ>|rhśͽ\, l :`㓒#䚱\8ރy=;Sx̏-a!jc/3`F1'P|`ˏ[g~mx[r' =[F?6xSԾqlfeC,`gY!w!p΀vߌ_~ݎp懯Un;!6/-f|sxsmɌ,q(Ŋ,q\_3Aߍvu\3C tnS+x7G)M0SXyŖ26jmZ&a_Ęu-GnkDt}Ǐ\N&' S ;Go#;D5S+W6|R|qIC׵pB=DXZ^IHjxk}zF=b:=ςm#E`{}4ޚ0~zxw~i~)T ZoN "+FۋiSiCJGݘn^6µ$t檲TQ7&o6DZ ,xXi0U>:1z7Ց#>)fOϐMs|!M\$b+ZxT]/6343)77y7߾9^/}Ԝ@la4gMA/H.Z0sqCҷ']E'lÒBn(ZNZ4ϳ -2鎹Vvl~Njj>W؊"~RpCӏl[=~>Z#@)0V Ah2ViZU\Ԃe3s0@]9!;w;֗61@fSz9˶cy,,ZA{ntU#UfX7[uemN3чj.W$ϔ+}$`leJT1Lr:^tF62<`"h`S.rÖ]z@{ۨeϷ;wWWBOFV$Vp<[i'e-Z]~Hm.uܗNEh )"4?,@'q>NNgt-jΕI0.Pgoj.b +24tyrľCڟ(~/d 2ȉ ۉWvr^3Qi_< arM&e!kX *"tx_5PV6xUv\f5w'Gpz\C\[Z/Th4H"&&j\qKVْ'BxLcVҋ5m?zyYNeԹcB熎IY&0,h,;(З`7@,Lg7-j9DqbǟBV7ڊ#$]Tn$5%hwz@L$+Ke)Z|`UfmٙO':G:&{O&(5?73Ց6&wUĬ>Rez7^}r[)W[LyjhM~R⯸=}?ԟisr]h#Z~F5=d=xտ-ac&iac9\UDѠ.I+݊M@dYUo*t`&h6xHmSN^`!R_ieEm`Q sWʆnX\[Ol`ܥA΋3ē$حVHz?#}@2~k[drR5Yj%kr\Wig4'ce녩&F^Sghu{Q>22L!7i("j(x9ɝ,* ٜ9x̘:LC5fBd#gѷGr'?( ֲzoMIO_.r/ï¯{OMۈ:b|\AaK⤢K\6$%$ƀ !#~ ,\nIN\~0,jĩB{c6طaȴSL\,}xʸOBq3MGA_  G] (s]긁 _Z>F1Ǔz.3Ž<]DcS,sT r1OA~}pts0!WN ߮ md:Qg-e$o)J3"SRRaӕdrxT>48%Ϗ1#U 8p,JVl8- ENje<<3zs;yq9={ܝYcZȫFtzi0E1eP++$`kYLE6ڊOYn2ݿ̉`@yz L'pB~!6֬Uh5paӒ gk~[yiȠ=bō'v6$ ѧ&#.9S >#AjV$e^wJ[^O IhIvVZX'_PJ ca;ȓ{HHW"y,#I#xڙ:=Ǒ[(Fxx?&Ϻk䄰*LHMqlVy5΁!λ,e  `Jtm=DPWyE`n䥕U;[48: v# ݢYt.Q:8O6#H9#d9c@#HNvF?M{5S5a2%T L;5AvmԵIqR7:ޥ Gh>w JHk)' =Έ ~)PS6-.4,SG褙xNдx6(UZlCv9DntpY<,xl{@zll`?6N43Du[&‘ PU-b4i%2T+Q(/n/kO =m @/ 8tJǒ]#؅3˙娰88fHFl 3HwFA KXET}>eU8JׂX3!:!JFnHDK?kby!dt4E`H -)^pӼ]8dZpUt-q/8 [ ag'%|]m7 F-ϸ.pA&}s B9,4:/XxX @iyr gkrjX4 rlBHu^Su2{RpI? &vfފ ؆Bi *_6iOyO xɈIK}v ڭBĥ+Xq,lį^a/%kOZa0U]plԊ1Jr}AxQK*k?~4k6PV6T=*F5ķ@5vv&De<oC 6DԼ),(v8Yl 鴓 8Л$ps>5Xo,bdwDy(.6U8u3~9U+786bFFti3Dr;cf:N&N,z{@,ߢ1;z>>)th~"GxmX D3y~e _ b ۅ;1C$[oamFh?eW}HCT}4?Ix2{n>4ٳC Q C&%/Ko!rJxFY=U-EO+4t&%(=)u0xSfGw!LD3[ lvYFfFfNE.0Ek M- l'fX 4Um8zɀ!ޟC藬Xzlj\7qěK HB3޲3bqmڳKɻa3|J]Ӽ^ 'a0\Hu3BGG"LJ0Qb߬dKK+5l3x E&!w` Wrm7"QxI*Z-\"20J͛[Spc¦AB:/ 5h`Æl$Έ+w涜# Bd R$M{)i,#ʅW"f3 п|NG5@wQIw/W)Z8c5DtC7gmx_NXҐ;ơD=aFD}vʼrj")LZx׵XST5qka ],L', >9@p;Dnqo{s T:#iӖN&Ú9u%a^E30EH/@<BjN3|fm"Z`v1;0"]̍$,G#im}_sVΌdR O8bdZ: 2|SS?Ubh${ CYԑ9;Թxw k.= >-"s f9Q0'>3Q i_j(q;&XqzZtѿ)kYX ,+B|_҈s݅E,YԋԫkWSp6db@xٿp*/\IP,>kX~nt4d5n=M@_n6.9&@gCŏIMaQx%,oDŽDn8S0e)@D!6s 9}, / ,Qy(J~%coX\,`uJm.ب[ l7e.=Ehț+#ZȚ מ/;- "p;甅mdó< ?1d5KGiVޣ Z>ҦBB,[vlFhZ,L^JPa>"^Enk- vqH.0XV6x.v=_s4FܧܹaDJl2tocQ-;  cJI-btv<# 1W F?i/lA\돉-†8uqs)ri廇7YH4ȂxR|yE&IrE'B&*u {rWwې$u`(*4^CHX-Wp2;QƦ@UC7{~f/+.3??_CVn奊g d iQ[H񀃱zPDE|sP!c6h~xr_Z/tB8}}IǺPtcTOC=:;jנF aH@7  k^]ɠ0Vϒ}+-IuS4/HmcS&qP7[.N Τvyn+5g/ɺ?aCsz=mJS@S;>X-j1,h׺"ox(K&n )BXbȯe aa-y(3"hApxm#2LlQ=7dh$>Z yϖܰːg (4rZKI&U\GUU`8Gpv!XUkm0- Up axJC 㐻 ԺC M6AE (n3*$˼ !`fط"`C#vQYپ72J kKʲjJPXi2 te- ˃rSpEċmb{6h+Me f_@sR/O9Kj ߰n"茖(wR!+j ]I jTD [&62E+w,*lDDos ˁOr5gOJ\i:Ws_VJmVTr<(w(}uVp\h7 rd P`Bo2#hUgvIb,J]Xu!Wg|۵`nX;vM 'w|H=nSGU {F;irNg"a],]\m(;4&6Z؆@U1s?KV/t!I:ovwyPZ5x8'j(Cb"L^3/vB.g: 6|6iL} nWmؙmn}+e1!SW?F?mGHw2AmePrHJN9[n15N*FGtgĸBٜ»ՏtAs5ofU)9CK F{Ru,A`&&{nWRؐ QmB~7|:aM]u.ӿ58]G'Pq(] ns!fL`0]/}KօbJQ E36CVQz%C8?j3~7"J|ϩգ}= DUz)rz<#l_h>ZGJ+p^!z}7ĢۨK$2FP(xu> ,= \ ` V $"J92VEϹCHZl27B0ݼ^ HDYal`/+H.0ۘR5׈<,]|Ow8I9U0F$gbTed@si!^56 [IQ^r>%f5bb"7B2o DQ;-/]ZT]LKI@b'dPwfG1owS]ox/&Lw[nQCSkԗli ]thU/j\\ظtNH9:ջ4 km[$`WiNQ!qLK# x5g-M\F F-Yn]yVzNa=ڿ=``Ȑߌ} Y^Rxխ.=nK yN nmJݑig<z`DuCJɂn->mbU]76Gc!ls -@ov[T_!T?Ҵ^dV lȃfI_&){ZiF@jᙟ_.7qEQb=SNC2AOϴcmSѭ;{Ͼ :Gw^`!%9m2yoztI}$CbsE$;1 N_rt-ꈲ,"+b &wMlGFA <+*f*9g}}TP0yQ%a^RU!9J Xò5|UA%"+c!?/ 27v>,wwH>Oq)ŪRgmi,,^SxcFulh ;w͘kFe1z!BkkK9`'G^-9R}gs;Ζ %eK'>EK Jm=vunSߦ@ʁld-8|ps@fɿ#q@}?3-F̑G%$~\R/…gx>#G9*ԟ|<!B,[ ׃C[_spQ eĆp$p8"\DU\7لzIXX֬*ldVB|: \˜&$yEAtHxbC- uTC"wtɅFg)u? %K?ofTaQ)H&.&tw5_q߹/^~kyJ <5O+t'+p﵃6P4 Cc#eǽ$"_WȠlWpj9p՘Lf sSvׅo0'ƭUOа'ƝʽSHJx6Y2n&6D"M]u|l"Ag=vZ[u|t䗊*.Uhʪn M{UlLQ^l݈<7$3\y=NM%`:5A K)K1ۛ(@mr8)\ȥpwCϤjYNkG62Yn6d a(8 h4$<{\С eT VE]z+g.Ha> ޱf+ըU6d8<‡q"L 8K7X&4(ڪ\%*9)6uX>$劉[jy,{9ZQ~> z.K̲ju0u&JYZ@!3knT붷ƕ_ACNo }vyIP|MuxWc62MD0<yw{oʯx+ء`c w4*k'}h.]['PB 2JJ:+!~<-$i%rտNkY yrduۋbmq|pd~4\ oB<ьK}PW^xpAH}D&"NJi(lRLiJN7 äQ#cӂ>3"MW ':&qxV` =fm\C!6P7vLmwt*Q-~u,yG4մZuqmxj D;DXl{zJdEIp K?"3*;{>^rPKAMž2ICOy) }=25>lm N>wIhpyk gp Xo`jCǡƪl8);e!Ĉ_ث\*`#n:df7Ϻ9"<\گ`vb$J}a+GX*(9).KafaZ 1uLJ<>]t][1J}_eOhy. ¢䋜02jDaI9²Ӥs|S }aÔ㭝"#ǯ*>h1xw-*.<CcvwԔJ:|mD<\.v 䧇nVpć$|i0&.ގٿ0 ?2DD et*7Xu׸"Fc$_ G2y & E>nQ% 9so_&9hxz_,u@AZ \&˭qF=-Qeݶ!_ib]Veǽ~lW1UjPR֟Q[AsJu ef-kV1HDs{hA"& $W c*U"ܣ=uc>9*@Hpg(*0tH";qwn,840P@ש+3'/CX܅@) 3lx8Ȓ)8̲Iyu"ulA)p\!g wјxwB! w2o?{2JchCMM*$o t6mIߡ ` _I=C#oӠX|q7.B:.}`U4n~/n,sYG>:BI1z-g܅84y6ЀW~>!`3U_໴`yYBtYP{\$9.Jqr3wikSh[D+ L㙃ǡ9lyy] b2WM Fis[EqJY1~{BUg]RP斯r9btX̪ ˙sŢˉL frAzHiWbxu¯^uiJܶ@f' P)2WԸP=7!+yUiC_7J5$2/߭r'@Ž6O OK/][HJ2~"^Q;}/m5~=l.d%ӨDx6sg>%.."Ә-jO'Yw0E:˭jCmk%KM0[@zi+vh6S%p 7fB"oA 4NƷ * Y7I5pw6h Bep"]6&IaX숸QRt;lC34zTtR{tj+-//HS+>Jj"U^NsU?-D4"!HW ~o Rur'_ݹԇuX̱lKO,Y/\nvSzA++y< {/V7Q_T&qOq?'4 %Rfw&v]-Fq$pt`FҊn 1`: {5}8IhRΰ\=UߖpeIgD\솏- X䑃XH<חx֞QHs5~ #iOIL[q><(qVdne _"C jx7NrT]2lFcKHZlc}`:ܰ]cw>Gܩ]><%#Şv"/ [VPu[Dp}Yp_UyxiyEJ^XjСrdop2@km=|IZkL2]k|Ў˟W1uT4咄ℶޮ:UNƛ SacT@)C`2K=Hsi| çGޤ@~It\M`hi_av8[2say)(Nz;hXe< "ꦨ*}XӃ ٞT =var˘3Ac)lP7{4r5xvd&.HD l a۝|'=I3;Cfw1 ?#.FCQtf(OtyDyl,EhӌDz\r"=2D+(AS83rNpl9ƽJ7nWsQ(DhSfTRx dǿjOf]G{!K~QFa4~$N`Vߐ{M'YRA\a6Q>qgH ρSdPUpKO±vIiz:]{6 q - ǎdj^.p(2Ʊd{%G6bM YSꋔDAJ\k\fa6=[2)llMvNI4vՁ}I2ˡ9i tpz;ck! AVt5d]|1K{Rl~QZ=^!JQm]EAn{Ȍ1M-J `ы3> VVҐFX TU (fTAy6gq}&WhT' bdW ^ANʪH2#uv&Hq4u21655O9wamg&*\W]nb)~ѥ+e0A-rf8;D꜍GygCkBUOUp[u9-)SJIp'_Z*RHu|gBIs=`kmß#0Ug-=CP NL6$w&zjdg'iqr! !H|#SцBis)RGg) M@-넩~'+ Vt ł]y"vTOZp qNyT0KtKRTwiJDFx?=FN3VJWT?\sUȩj]{)RڶƹjRUfQM.ӠC `5~E(YgI㍙S#Zj t(ZHTG+v3e.Jjb"{CAGBj`()1ˌA ȷ%B_TDPQW׿C}$dsL_ W0xq  ӥ5ga~Jɫq}*eZ{P*YþS;Ly]{@$-SGy[ڢ{^{׸y٘`3UC0SP8(UjZ}KڋXeSCwo^rdsK$6+pX?CM\R[IafWwBv%_Y`f?Af|ڎ54 N*7;:/ BGc/<5:t*n&s*׏uǸKloXIJ↣!bY2 nOe?=Gʚ40 Bii!C tW*ls`G^>P:ee ׁ!b`{% I]msˠṩ![ iSVeY]IN'>iWt D? Ϝ)k lvdsR2Fz&C #bm[z8p`QגWk3%ZtM&S/]M,NB8r]qrAگLF]cd#Kd>1Ȗ._!/^[d^<[3ԍ9~ spa}^pj3[C'jzHu=gM7Ch1'骋}{52^[gFe &| $*fY2F{{Cvøe B+J8nΚvd`>[bT77jM@ƾn@Bxr"t]HU+5Z%pRyy>oGBp>t}\Y腬LRػcƊӰX?~p}LcXr)ʦԧSO)ub^:kb،`uĬs+s;O~r1-B`L[ymWJpGz RึP4ЇsMD< =*g̃LO3~T0,y+guuNє&."ԓאÐPls]춭H5z C395|itKI&AřRm#>$$'UѸ`tKdvΔuv~,6aMߺ)Q L|8j'z1}:3HުgQb0)Qd6}[n:U_i}wbz]_붫m "T | zZjB?iP'[yf1^@r2{~ upSCĘ`.#u.!"~AiS|Fr$؁<%8kPg87֪y S"m)Ad6"M)(Hq% ض˿#*!RG~pDBG$Q14fvX'uus3YDLHOmx8&٘2s໼ {Q&,)Ȑ\ۡ 7u$͢@[k3JYsV1 ZȺ[mےϥH.my ֬{iFG8P] .KωG"MJU̱)ʖo-a՜:o+|%TOtsn{^f& оE0~W;@-g&c]#L>JC=ۉ^YM̪~̕/n-$w/M<u4]KvOXSeԜc( T8x1CTg;PۉtҪIϽe.bqyzw*.Xhru&cP]ne.*j//?""Ӓït=qM]UIp'̀eICw?*f#,%k8}`9ROu#.%v;~'L ~c87&$ڏ+(73B g8qXk$Ա~/:Ql$=X#T5HM`^%V>a6N.MBGJF^0]u]V`%\qOp]%)D`68_ڤţTI`zE" ?LB"r&K%%ˀAy ͅJ^Sz4+RhՃ@9#*)'Z8jn|Q$1rDU;kҼGx6-9gU~]W;nim԰k#܉Lt0/!:^证\=?lHʕ*9 C.riE H}goƃD&>7=]-&{zLpbn'APEtzсW?7ϵNJezK@`r2(V}4^<ѳyFIGqZ[Ԫp}|Iu65 \ϙ -H0Z`ڰP kďRiş-,,Ԏhd?PG }z8[܈_W]Ob?^ˌ>>L2 𙖴tV;aٟ՚ \Z׍Nuܟ@_.^^vFf Ze[q=!=xqx!^w$ :ZCDʘ af&EU!PjM()[gP> zsra, 1O-AK n'~cQl⡔n'2w  \%^ M2Dva+%nHubVTc?M2z\ $<J3?v6[d\* [XRlׯ[-;䡿@VS~MѼOF.ee&kVK1LfBH2?{fD܎OjB@4fRB2#;!^xz$EpDbt}WNN))V hz=AQTaK0Y'vR,/ WRfOږaIzS;)5T~VDLUΧR>cf%$ߓ֖Cf.gbŘƖp'NbB`g{}&fĒpZ gg,:`jFuAz-6 _CP_Roor?Y & u;F{V(uEH旯Q"P:c+U~w4pPKR!8~:i{5AF"h@k 24 *eN ,Be;% Nu.(C ùшWa$}5 ~d[=:o2ĸڠ Z*-g J6O3BY&C=rԠ޼vيlZ7ߊvP+ҠF/cmFۜ9d6I7I?^ކ'T!U`m}kiXr)Bnw":dn JRT|QiZ 54F˓.Ișq@Lz2NtqWaM{<D†g.' Q~> h] nalJ} LRYi7 D72_2Y#<%}.DDk0q)SHqT'|\hruqntrSGn::GMolJ3ć>UG8ME3~o$ay 靬tӨl#FSrbK)n78tKh@zPew#i5SP_|>\o mN0#p OΦA[k`F" >afPjG.n_ufq1ƬKy_@eҥ H4Rpz>dц<_Q_~zf~|<,(J@}p܆y"FADݕ)Y;vm5 . ,?2>d92Hp5FWޟLGDq濠- %oE05pl{Et$Pʯ(?! Q Mq*l8' C #?5ݣKD*TUdQjۥN9dŒH;"iZ 0v"wvNSӠ>Ӌ~QqͲXΣKM~x_&%IC#EPE}91za܆RNFa/D#_SdU„ Ig&QIIOI9>e SC!ٓW[a`RRU}ޜ?K\ׇFBzbCR,eߧl&s/rϯ:B59fZf^#16}h~-LAqK_M£1fv3tgp$ޅ:Rp Մ"U}VQo7DC3ȢC~ f:T1(WaRQRЄp{8S`]~k_Ĝ ,z$}Plyn[:~e2|Aeg-c=' 47NV^6!ϖ}xY1a j*wt͢܉WF|7]RfT2;Df =hByRiLo`("&`:3A-G-~}J2OP[(;H$*fXTJyJ'?>_~ߓ12Y3r΄ ec3H$,h$o读t:TO0.W9(Pƒ h&^ON[ڨ5T +tU<+?ѤKI\G#<"\> GSN\w2 zIlY!SAE6fQ< eUxick.&CԲbVAJRțݧ'8O[ a31M"PFw@AETN|>^uklGv7s4ܗIo_._["{lh0S]9JLxfs\BeOxFkw)xv@oj}$nO&-#5C gd #if_A)n-5g:!ܑ]D9 =Fv4 [x]O`55$fGJ3ǭꚶABN,|l/oW{;NG淐\Ry ]p %lC,^<.mQE_A̮[MY= Ԫv: zC7~IH-hјB9 SȜcDī|X:RIDgrD4{"W֕~],ɫ8P0T . <%E7\ 'Vq+qWH l$E#'j M uIe.WcwyT:B5T5raP{6j,PW0JY._ˋz0k[S}`ʩJo-Pf(yTpBc8UO3M6R=lWf*|]P ɯEP|Iـr1۽\,;an;]5^jջ5vtW^? Mbџ-KƝ-̏5ĒɎ1I h1oY~+qoWuͅ-n~25c1XYS&j/c,y p"xYkD\Z lH I%=Ef&uNo>(D<ۘf#`{K~+[f>Ń̈́S)8w&I@YFg'?;&ŝ7 +j2_#Z*_(fMKwA~n\pUj9rIخv!9FUf8Ceʎu!5yaPAd”EAܬxI\khT8ْHh/: Feդ+"Dh܊\c(o77 +V|CSo78#ScI (L(snIa%JCL%U%5}l=K/neKoEk$́*ϊEPHi̴(~ܰ_/B4JF$W ė| ڛhu_`[Ra3~U-S6{V4e4EbtPz̖?!ngEJ&N d&P uG"SH41u2bKc3`J4.ZrNa%:k9T5Bs < guaMT, 2w']Veu"fbݍ5"8DpX A[1F22пp?9\+y,X^",X ;MHwBqR). XLrubgJ_a0>b#!&&Ob1IծEX~|F~~.@FآDyJKNp ȎfdR _$h?;=ͳ \4r&_bIXz g 8t&p^GEQEa#G!1Z%L@Yla!VJ%6L]@_K"b:sB7l9(.ZvPgRWOؾA@o{M*K L mNpӁCCXާ$+ϮDlmB{I*Cqt RNS{b}EdoC邊WM'j~ώ^_vO+uxrQ"PވE:%t62͉x. 9|v0D]d'jCM%< Ad2yci^|LRnl txPe+}xm.a-:<ˎЉqP~aJ&h| DV:[1řτ!A|Pn:lxy#mpތ # U]Ӝ -0ٹ5@4ʘ$kd^/ix]rq%]jog|X:n*3Cq٭:^D */Sh }YG(hei`B4*1@?|{P'[#-Ԙ{? ِLvABȼOeFO"?.Sg=mEK&2ZzXeE&WN9S I\^~"I q7{8](hfҥ/5 _+O>Pyi䴮8M]2tߏMCTC~FJ4%֍|Ax-t""O0DQj%h%/CĹÜxdph7<**Ϲ o` A`36Q=2tx1]TsN̄.PslC GL^,Fbƫ$ LMDٜ+y签2G FqWFuֽPu(tku5&D)lAL^ /u۟y>L+6;>R NⲆۦk`P Ҷ: O#/BXz_쏷 bdb "a)иznաaOP0ʯSJ<~TveQ P?_"Br^nX7=NpC ->iWCTTVHXtTd,nd{='́"ZV"!;%* ,邻SܻMf7|c"V-fD ;ej/IJ5n^jۂ-ߕEo3%s@r.7bf`G8 dy2gPB4 v/ХdN !b-Naq9p/B Gzl5m;P!2IVךv(ucYnYwn?/5\o U(`i/R6G BN[7[BIG&Բd()kz9Xmo@pwm~u۟A^$mbhR#ra) z8ڌhE[>vy0BjN`,Q0ZBYx/Lv}+_Q$ڹkFBy> Jȱ@`PatP2 CT-^\^S\΁¾N/#pY1yC-@hv٢մQqA3a>Fg:U}? x:"uСNZ /f\!VB&:^ZO(1 @K/I5c_LPiau̪]Z@4[K Y]Y * F[Hw; ]_iSvr$#~ eE旕jUI8c@Y%2TVf\HagQXPХt'$Dbu!*ԏVVOF-NSN& OrN?a~gX Y_QtF-;KnAO2v\c?>GחB^BEF­wH^5`&VUs"|46`cyv w)$iLfWJ ڹ9( K~7 W=a9*͚_WDԁ $"k.䵆)*Tˠ)\t dh]ƆIcW-X{~Lt/乍"N0Gpݞƶ3P]tIֹ^-nSODC ֖hYlô%J=aJynRHӴ%STDi@h΁QUm a|ZB4JX [ΕQ$ -z{tB$}#U9]aHcܜc#8q #޵Wτ]+<[Jf1-- Ԯ_B>S4%ԵR<K?v$"GݱCPNC>W~%BAVƾ/PtW(mPMicmƋ|:R8אTlhdbyI8nD(QO~ś̩R~0+\4/p9HȍIZF6vIWeĺbБl(dcB!w`S6M}+T зov%er>6kt אR׫XR6l[qóD'f DT'֓Ud+k,@\&Pn-`bf\}(ʃaUI! (b#H$`^|H)5f )\IH`6h rP*9@gRǕV3`SQ"m Ũcqh8GMaf+d94H֚1,m}!R9Sv lZ` 7O AA87zw1*Vb-d^91=%M/pMmE%y>f?j89]EDw< <}g[i<$ٯ8M'T&uK?L\/2G6. ;LW؈7m S-[HH (6;=Zb`iBہHgS+~SS|F=Tt!Uu8#om'/irL&{Kc[7%yT@ɫVNm~rY t:lT8ySwR :,NjH-u~N0.Nsx}F19sn˛xYa3K,$CNvsû[Bj:ڋ6_'4 9ŸK}70)l)^)8yԿx|3OtE,j|3?D"K.aO- ci#`ӠHd#u0hˆ?T`qog~J d@C[e"иOc:iғxM#>WjX%n^uuL36>4?Gw/,_;pxi@{u9XɃnnqs6?y 7<ĸVaa22:ڄoTI\`Jyi)+mĥFιa(uT/MT^P*{-OwK!UUkͽy11/ љ1oLXnn԰B$)v=ECO)'yLtbB֩sBfc7+,\("Kޑ-V"/e ~ \iN2xnC'*Ю;2dN9&KHNnjomoG%&ޛ.ZMFr9c]- P6hϟ:.O$|v6Yq hS>Ζ(Du.5Pxڜ0/ʙ59Bn^wrW۷f-}3$Q1)B%t$v&O\*n.oVZ>X* 7s.ryj)n!_C2w(VO.d: A3 w|t~&PuO̥׊ &opFm)J[ͬ@4p(Q[8ޞZźLPx{>EϪ+6SNQR6B=}'j!W #%T=F{9*IOa~M7TX ٩{8[ Ə-ӜjH`* -U6.gX;3=*-D0p 쌤R93c-/_]P'l26G.u^S+ 5D' wBZ ϟWK2LIjTEhx {}8ve?idiBFGj]%8G aF3Lq;IfJnHz ;j$h]BX`kdR дIgy[k( C:/>ھGS9>")*!4ͤ`A+溜[HǨt4>.);vC@=;ayNNlsC|GNCM܉두UNiH`>v ]g"Uj|_siSҖ?r7BNv9ǟ`uD Ưt&cn JB]1 @ehI/Z``jV-bGuHu$@YӊX"g +17!e7C֗{I \?l)ucvptaPaJ3M"HrFg| ;JNw7eŊ 왼|8NJ d}Epy崣.'}k,2/Xl7tE1R{^b׮"C8l5-K!tȻ d ES? [D^{RrZa~2ɻKu(%aYۃcb,zP9a7CxG+g,ζ:>R-M0fq'rYu*u9߿RJ[1hth8[6 ;d;9'ձ MaRڟ_o,'VUDeH0E(wyL0YUT{bqgrOkQr+gp 9*Q`t |{/2;d-zN 67/Als7Y-'pM\xB8[UObDa_'ć)~:t6C%RWq=>@`vy: b7RhVf7PpIv]~wv9B3w=¼Rr>OwFl8Ob,F!Vk=TfXCbe$'W1>XCkWeTp// ,H{ޜ\4|ʧO]2Z{,}>%/.¥.Y8kџ,..fK#kGOCzM%JL};Wrs~ b#ӛ4v[饑$jmglՐD#&q`? GضTeBOPr3s)$!D YbYS'юipwEAچ$CTԔ1RD'5}l ׮eW>j`b@m&$26 M l}I9F.0n-nv/g͊ظM ,YKY Wʎw{r]?x0P@-pS|\!S W2.D\u] D5~fXrj[T&tseӻ.۷_.[t2g]SĵY{Y]/j2yoCQi L~IɮГ2CYfhUP_^߷NtL\qWY:.Go$NSot'x;xF$!P>'5% ;lQ w8ȗ\^]ȸ 5@tytH-.nHLb츺 kA)%T*ۗIn+^KOmSF#O 4o;Z| T-xOl ͈ s6jHy :(r4&%tbٶܘ-!6SpOtt;*CZLEiHk(?,I'?{WJw^ )N/-5: 38Nh,AbJҔ.87P.3oLu_uqзvЯ@zg\Ћm,S9>Lph3e:F{|@Ts[Ugc놘JG㏆\lNFs[Z3J$ZHa3.K-֢=oı)d}zbL{T$`BS^zk>Sg)Ĭ%%wX߮s[y٣4a[ݫkU]N60ˑ7{]B5z(Ge `w:>X%)e9d!$v̂r!xlCr\_7 =":\gŎ@v%7p^"36а[XK@b6:XrP }-{2Yrm7q`$q6.GВ.54Jo+Ri e*Y3,f;͑iF\> )\(ER5{Jzئ;bיZ.^K6D`1Gh$/rAj%&e֜? oZe2]d9aYzu]:#~i6~Α>!RT2RD>udD2Dȳ/C!]qPk:X$@J=]߬^t)(R}צJIQ&~)J:x܌6ۮ0  mUd`w-B&ps/6ք ^#JlT!ڃ@\"pQ| W-ӬgچS ]jxV 6ԯu*uiQw<(Oا4χxn"F|4嬉J/̠*ЏvNڤ1Hn]^8ؖIT;?t34b(]pWӸw$`e pZ}s<* Z*ۅ,^PTKe֚VVh/@7li>Q!%1ԧ/ſUQ-l5*w;3WӮ8+cޕثIN`<1,qd> >nnZq"> =&A{-Ū jC)?'0H,$y#EUloS1 K=yU@0n[]%I,)B¼Kl_`cA0Rx'ռobFmՙgS( r7IDsK6FŢ"ǂNMؑPu4R0P^f e2^iL!e,FKre>Kfeםa\; O/Ϗbqţ6p^Ij0}d`ҥW!ͯL14ꋍ Ytj\֢$Pi@Û1.wڷi.\xC) ;<{I֩ {cތ ,O"vӐ #W͆'3"0[&JTłs [p}?/@af0]in5HQ'i]kAP̶RiƠ1=7:GBq_)ǘ'4nQi-Ho9'㑆uF>zP`bq#Q=q !f;C~&2V2h-?Y]˒2GFa\lI e7R$Mfԅ;bdrixZdYN{M/Qsme ZpRxR4˔]-*iF+)vZRCx*\]3IvX1 h9eީLD^0hLa )& s1*XN)R:\!OJbZ ͎*e"B)ޚQ`ik%nͪ^TD*b!ZҮe!s}+jгRX [Lxэ-&0{\H82Sw@:[\3Q2Id/Jũ6b(` %<~UPpLPU2hzXnl_bHUo nSFq#F4owrkd:OY.&L? x8Zk`HaڏdR,;,Z0V(85Hؐ's*ϢUrbsAGKYR{jCh )tD-V*؟tc˪Z#J0L wBQ NXEq޸mS쎞ξzUV?H$AA;9 3t!ErnxBg|W;L1UmS1QC` JF+岶BRÉdow?C3Eܔ|Y`2QGߙ~jΩtkdںd Nwñe2ʝ Rwm>VPWrRpZeK0Uxn$Sf1 u(Dq?Dc`_J6.|-UB-Upvn%C e8AvUC_`yhvmM}9ø L 9wF*zSOK㠘 (Q A~Z%Rhgx<{oC7t KMQ9V-yYCW=i]]KhJ:z-R7ɗ 9ZoMw(CI|T_Kҍgtd.M}J.| l1$OQ'R> z<3Q76q^ ҏ|Z-fgngrsh <Ց$xe|w}g& tU6"25c.xUEJ3,fq -~,}' ziF*՝s_^X9dpJ 6XV[Exz~?5B!_"3 %<j5ݮ(-JJT~0YxNKÒQTXda0A-/@'uܰK:hxb;$7Z-oA5No ~j6s)Iapk,'NUDh">HLt: %!1x/4.26|hDi;̚9[E3EtBb${э ic- L=!a+o zG9C+Ip{DQ 7yv 9{} I{vnHv_2OAdbxN ;6r>D{^_'ڙNձ+SNXYKuYg$I~ &]e< ؉Ik1@ۉ)\īWsK6q4 `~;klq"b}U X`e9s"B電#WoHbB/ӫBnd.ڬ:x]5̀\0#joS ;*uIc48HP[OeWMoW}o@bh΁Y!-?o4P޸u tbj!X@,-06Z9&}& l}2챭tɼ lj!#pJpZYtXY;(!Cqc "_"tL'1ȭ:!h;sxo@Swxo`KY`d<%'&93*BR9C]^z~IA*xp'+*Xx_fr OE*jS:走fPN8]>$X1ytbZ{GOx›kAf[t `_,)(7BŚ}/lnet^ʹQ~ 7`klE/:讋)OP*~ QЧ^~@4m2嶺Zf),fߵg/y'p@W"D/CyMvt)ZE80Y@}`ܸ.l G5oua4& ^Pr"*Tep51Ĥ7F+慌zWKͮPE,Sϖ%SsMagxnmicSȩy"rgmg'赚~t Ae[ZJ4us^ImK~y KS~R߄M¼,{3Ұ異 syD>6 ,rcw6T=̿| [,E HaWĎGQ̖ tD؟9y hS3m9RKmaEv$-"L m(Џ^LKUSPWCn۹/$֝ɓ ˡ_=uJZln7g|ԇ;~*4B()ptjw"7t'L-{mc)ަ}|HMo؈;`J3# ` ݾ}pN/eNSƟKْa( j64WX`@J4%|#Kزo(VMJQ%Y_ru1@fO7>6=8(f_>'e8K&E |'ol[VP>o?Bs&wdHYoG{bm5y) z m-0凍:iiU'KDk`2Qq(Ggg$aER6e׿Ѥ"cτE!Ti{aފ$"Jl3SYQ]k=ZQ106~,(߂׆3b|%2ՋEBjkh/L»dSߐw gƭ#^&y$Y&K/3t!j[8ݕ1rCU5`"+c0yNl9oÃtB_m;m^8TXesŕGqkM&~oT~+cMXmߝ $t䘽d=;lx?AW+^7;v0Bj՟[ P6ĕ"uvWdSCBzWEY?!@\[M+: ;,~,7091vaF5e8kבȳs[fovVQ ;Jt(_nB8lD{B~Ғ3@LJIzψ+Cvk4=@"`')}75kӋ x) Ec9aaT?wL[D, E8j"N'vѦ,nQ%#b`a-†D0%#:FWU1P2@;@sڥ> 6j(]fd5KçHZ~g;cQV!=H/l yB*jMj 7, ƫXyM'yvupRKJW4{ @x;r`$җŝ.*}:CG94M,^&UPUB}ChPJ{0hne<}ۑ0qSY_"Dj9!y}e= cL B8(O+i )c?~P j)gϽy1@t!ܵ34gr]zu}4e( (}Zy,ߦҽnAFtXY+f}A6731e$Uدא~b дjit(?j`5vM5(aQzy~oS4jdOo:څ8M(ԇ,1/rh t}p)$>v1Vh&0ޓt[<̆gYP$nw\k>f^\(. Ϳ9X)п}! dKx3[?OIܗPk/'}W*l!f$6`NqCcGq{ ;>!RF +&+CU`'\z)0;,I fs1 O8ug#Ẅi:8цF8io82xklli.i\;v9|8`{\{^)CzbۈVvXRbK˞>a[Sl?2;0/XB2* yN;*Z=zF'Ef? bJ[17AjUZxgodϯmQq~()Tt#:hD/򓚭 u E D:Q]F]椡&όMhtVqȑdl$f +ŚnʑGMXs BB~N#tK)/zp3~u ,1u1c@\|J@]Cl!iY>.VAMynZѕPB]$XN_+ XغXSQ!Ni&$JO<=ÌL`noJƷn;3ҎxۙPp:SAX.EJV`"nĊнBZn[3, UDis)}q{X`#r+/8M/s,vGb*V..S<ݺA{brXc ;o.AVIs_ vpt+ ~-|m\7ӥv]hv݇/;%듼'JŸ'nhP׀vCnD+x~]R,pC.q8Ęaimľ`i7`w"8p26'¥.Jܥ0.XCv89 Gg׎wq69G!^B _eqU|H8 xX}TGU{+7>t63W5ME"U hf)l?c.nl~4, `*vU: :Ori$$&9Z!H; #Aؒ~bypK~uBlV*[rrk]D+ 1 ɏMNHtM'4fVeM"?X>h0^r#tSV3*9 bz#Ō/O卺9FE/5(3Z~\P^.1:04g]U)vq9:a,fs$p_[S_wTeLHM0FhInXK*wrìYU5{]9\sP^+ yMJF.*{mu[I*O-('_O5"#>KI LiIZ&rn0y&e.v$W|ƘÈS> ;vdO[}@-_B'&KLQr 6>bI1f3]0:+FmpHO"=0xZa݃GF'B= nP2x]`~(sn$iɃM)Ҥp)tp$j%soξʇ!e.>Է0s;gEh%E. apQ6pa9+Ŷ: 7Zb1tmQA#z:Xhq~c{`hqTPzj|BӹGc|}7ތ6yX OS __;q]&+3P, $$Vԫ x`3A:J+>*Dyng/U=y~zꔮF@0KF bD6in=RE.zqm4XbN &2,h'64۬dZE ngF:.4UuwcSEE <$ݱ mU֏LC4LA8޿E88+Xl l`V;mr E3[эl,ї/:$$k"7 E+e_{T[YkPc㑭)jw*6f.r?eSR~0].vQ# J<֜z3.R1IGuZ)EńOc W^U{Ꝋg?e!&-0 ȉ͠m"{*"TqE%)HyBMC8q M5N-=Ԏb 1(s;7 &eCKL: 4+!erg7;J|:cH saH ZF@yx^EXuD5QCqlr810iE ޣ+nZ QSwIʍ[+%ޯ!D>[@U{C`.FyPBS7(JxI9W@*0'۲ f:f_Еx{!Co9l/@w"g2ܓ$ՖR+VEl5 9)A`?R\M1X^B^vEqEgQӔi7ה$ll_O9+SU#z9*=M]ۄ}tS;Bbֻ 'dxM;r"=EOYy1jMLIl JlʛD5_ԷfFZbhCiGP&+wBw EvIVCt"M{ԹX]L }(Q}aRnxUCKų@ƕZ5}Ddټh+3\ت0}v9=A]Iٹ}{ 4ă'RJuNHrje/ٜ$fzhpH\ CEO-J&UlHİχB-^X_hт{R;KQOMhNgDճ[guUJNA8p23--E(s٫#O Z}4\9mvi<cFdU$!$tZY|iawowo^g:^hv W9u揗\3 -O#] %dN"7@je(WV _`x9G[ڻH-R4&buGZ,&n' Bo#`/fBT!Z.1VFąV᧴yrLFJ$kl;ȅK0Ԫ3p?myy0s+pld}KChDx6-oj:!vZ{fbda0`TN&B&Ȁȹ^N*##P\V4&Uw$o$vJ(=18sAbAT)qS 5ŋTGnR:2R吤 ݝAkμ~QDr1,(b^tFCrCpGAX2LL1 ~GxgjYr%'ԐX[5&Pp@}RM2O#D8ދBSj嘘Ƒ.&\\iȁ[MdѐHs(/7sV/׺Ozc-ts㾮/AK zGɚsZOmQ;Wԓ_,+X ިt"JҶ(FߛqDk3da;Ҝd杯BoWn7 N2>` Բi#ByW脀9d.ˡȖnvВ"x Ɣ;FݦB亩^#o@3! ,ɵY* xBs# !˯/ `9Q6{Od.}Ĝ Fhh ?L4jruY$ɿr캫ԇ%jG%,e=(/FPZkwn*PmzDߠ7B,Hޜ#4 `R4,,[C!.j3E5켂1֎!|6hEOZ 5.ďNۥ4Պ6oUHVE *`"F?޲K.F47I{AVSޠ`E,35}q6 -慈 f];&WX딑kL |3t;9.޹X+f dN`! _" @kCW VimMaiDtqz0 ? H9K8(*F»K*hVt8i~'& /t r$&ĢV᳹8biQ~3s0 5'շ.\> },dcOykNROV_~F@DtϋpNr?UJXP}`=u0h8anօrMG<ŏV@'NJGb_Y"{W#y,}[ydKe?$7~6wiJ/pbPj#'.p0SoOA|qZwPD;h})SYG$GbX bBmV=t'Ʊx tHaoBU}ۜ+Yp ˥--R;0Qn N}QE\pvAӏT$=Jy%8A1IQ][ϯĦ(E#|b-\]Au3|xE㢭N3ml^"N\>~c+}  VfӨ@W!p ӮFȅ,5:yzO'Ƣ!]U';9[I]ڟ+?S,P$|c!JKeyլ;шt*W`Tb(`k-9GLJeytE1*y=}4_$'|8'& i66M0a4}*G*gOZ{mƯe&djd߱-ӗy7-LV,%`} >'C`8JVZ'桛"p(N?`'fCLᜪ?+[L2ĨΤ{t:TuG w8K5͓nSY&nʔyP73 ?<2g M!U*kE\sPKf8d-@1z3|4ذߦhUmF#% .vS W` 2'QU](x[jo<07a R'NWCVL)TݛLKBRh@[`,oTLzeA9eymZ*]#-˞NyӱjpTZ\OEd۴H&òf0(;K?YHÿol\rjQ?ll7/2B>;VfEdK;ѱRg&a Ѭs3ީP\knuHe%@+RMeIJ4 G\y*jSK8mC)Cn`nW"<'=uMB򬰯!L6R^iEõsuZxYr jMZB#cM8?aUI6bV[D A$! -mF^]ie=GӸ˲HDNA"qܞ< ub{-0ƵBbwFiTIB =8XLU9ӟVA (L5U~ĩM\qSنē`OٛTv`ʳƴxȃo\쾡p\GE8 8@wmso=P|_ 85EB<ț!ܬP-$v1Oyި!*d FI @1<䵍sio%)Tu%:vWU9Qw.(ڤRgFDo\u@7%}ZQG=̦'{CR֐/rX"@}-l?y? /k3Rc~ nyL.c'^F،u1r>dQ"w(m⊶Aib2twe6#NDٳMuD{: R; T g'nf2LQB,2MδlA|K5ϟǜvͨAF2 ~iQ"I%fVZmmm(/&y,\^?^L1ʳW@ZG"u[*k 2d8<lo{aEw( 7~/yv-r]&:,G*N$Mb%,1̦0O꘢&`*me$V`g' Rc%]0jbH\FNdS?3ig_2ҚbX]O& {"jXBqhcdkfP)P& ղ&Mn庭2BeDqͅ5Ӎ<\u p6OT4.21"&pw3x"J7%Sض@#ctGb']Cn-Zٓ^:{1DV LeF똎X'" ߶2M;fdžak'g4a6EPs@I"5Oə'a^؛Fcj% YqͰդl5XlmoδZ% [lxfi69ȭw3d|ZBpWZ>d|'yiD$v=%aT!x'JvabBډE ;iU}<n߈6H -/J#_GsMՑܷ< R^cw+&0-+6)2hw8,ȕo\/'Ѳsc53ojeEWݨjB[ކFCJ*ΟR )a,;C+VNVVy ;k v", " )_L @ )fj/\5ת]PU"P <#,>陊I##rlCkD.^m>WKv!!7i"1/Ei z e)h vFY[ #A⫤Ϫ&IYUA:VIRJ˘2]CXsvPI%"XvD0-/%1dZ&|gyWBwU0sVfl(Қ?k6Eӯ`s[H΋+wSn %s¢ZOݘ4ay_;\mTh)s:L@u P ry` Ha;Eg,&]pwCh^Xq~wC%enY[sM =6<R9CСzUzdR7R"|q}<5n@d`Duj&uC$m(9edzͱ#΍dcv@OQL=p`@u -`&OHiNQmћrHQ1z~*T78ݡ:!7a@QDK+V_Ԉ.WtOQ/("% k]CPn+TGk3Vd~::#;7uvE`3@IdˇX-:懭ף§zD\?wV(RwwM)t/%Öwjo'`r!K 7}0.EWN+KM97Ac↫&o#1M:}"0Dn|n(qS'o:J:JcEjꐟ [q4& 1sqJ+]! x[&KU>csA$JI.sCH9g fEݏ,ɃmK]+֧4Cz=Az H)"+5ZarJ[L]T&y\1:OvBr5g8ARYBF**<[@@q 7?`?rR̜ Ot<ڸl)yaP ~R]09 W)A[eA(x`/Dym#P*9~8Fܛί621) 1|.Uځ0zG ZeĹJʘ{V|7עdM+:˻y׃D3@Cd ?ՙ{n~zS?y_xP㦤o-~,\TZgͯkzQF/Z}AasNa+= +e,>qOnmMVMDMs)K05,Z 䵾<ӆ/G5.r1jR )lF%q5[W׳5BP^ndE8j vO<Õ, q0ٶ% k@])N\}>$ Zϕ3y1O$!*#C=d7IpKElL04vPbL52(/yf!$IVgLyHC5Q^لBD,q!н5X-4dr\Tc-s8!WPRо8L*-ctOҨ]o^ ss)k2 ˴Li}f-v-afH Vg-Vq3qDل❺]TB+~\ߌ9#~"0O/Uy%\>_q5쐨bÑLZ@Dl&O2\UPWiAτ'\ݭ|F]#AEXnKH Fp, G'~ AҲJGH{G(u!HVYT-ae|.j MGpۜ\aQB)% *lS, $ijX|>~ݤ0ЙlJf7dYH:ґ=1NŔЋ߃zz3Yg|wGE%r\ wrE/H,i8 rp'#.\ w@ k"!:.m+:Bc#hw1Gl (~igۜXo]mjF^@= m4ߖJ Au0 QǢ,}b:fCzr$k¼%) "d9\AgS0 Z-l%sƘOj߃~#[^0qӪmi 9w1{O8^5|^'T*T Y\/npJNj/2e (xj6Ē|_gڀ]dcg,x.[зsBp5󗎓p8ީ_4UjneI ʗ7XB_t ccH5V2[CW՜FUlxpW4?XMu# nk|`FFu匫'̨Gm&ȏ9`^-};]['%іQ&_&,feAd9}`.T K2ntLGX56ȬRM hsM;=ˎMؓAzѺ+XJ\b`]w ^ 5}7ť7l w~֟ƞtˉ'χ.QzE@*˘R_3PG {uE1LXz{۪EWK0D kC$*ZKƖ;~{*`T4ѕ/o?_$=-jdzHޮۅ=MnIbbkZ.xL'б/r,^}0u`M5`ڼc6n9.I Y+rmcslcopjh_CϓI6mwh[qJ~.a|AS_:YjӪkHWsNgiТ޷"kb +;=S=#UwÈ4;IdTvF &bH"Se#:) *QhWřWjNcIh!'ɟ')B<K<T{2#9K_)rLk 4a1m䟠@(ɬ{paTdLR)x*xz`Lg(=B[60XNT55`~(;'%.FmZҕʨ}`5 -ow󜨎m+gb zdj3GlGv{ɧX҂$S6*}xT,b)d'^ۉŕHM{N$ 1-HmlwZsf6=\v!(Q:}9gc]=|4mFGdfSޢ58kSĊ}\~$& , vOq;[fz7@ɥmP=⎲`]RpPJN˿hĐSGXQ!H/f|ćlod0He:jA  }3S3Z"U/2m[ڱoMŽaΰ[%-/s8uj^l٧t[EsU jUEvUSOf"X]B JڸW5CikB vSG'F"7F hZWe}&[ {3*@ʮ-z=^N W/ȳo VZp.75Qd㽺BPEfn+>WBZh@JI>I5MfxDzKY s{F]֋upҨJRV}X%㧤nːŃ ~X%aum\g5Ҵ?z so$[8T:aۖ%2"h8 5V79X1:tCƌVm8DkXIf'qkoTI_-іr` 7,ټ7SԐ>xx?I(p#r+%%8TtY&{mHp'P*:IvO}_1QQI1:O:'+**~yya'E{cV`D+#W@+u<Ջ{tZR`ܥhk#"r*jS_ zJ m G/wԕyx6Zs3>>:}NkoQOT@|Q~M׌ڈc.F9Ϣv~5TFGRV zŜƚgnFmz|݁5h &ZxyO2P~U3Y&@Y>S~enZ#\kH<{b pxv> X4:068񶄞Jd/\ir\t[֑Bx_DDm{lACxVE2t2"Z4BD6n䦓Ghi1hj 0; UDԱ,7:!5}x *R?rnd%`}eۉDqvQ39;qXۼ} ة[頖I9N}$蜔F{+Hi=JzOF6z4A-ŹH@EG򯦷 )p^?BZ2, [ )-5guUխD9.Jx^z`W'>;B?뒇_nU7Yx*\u:,fI@Aі/ O^nj% NҎT`^^bla_AvFc/dhQ]Ljyt"3׮6yŰKw:3!8~ç4x߂lpJ-1Ń6"aXQzUUm仙_cz'0SjO]]CJ|m<.u/dMXw ݨTV.oUBhP1wvPgl0uO1,>!-bn(3uїDnHTW`1EjQPb_"_׵Sm#sT=L8r6 !#LV]NK0JۚPB9 =䝖b&ܦӇ1Οmn(ڬh/ [|JNZWh<{kIP<ȇU10Fpg& }R v_ԙ,;ˑG G\En_r&9LJDj%uQج}f4׺ `Ôurxf蒠~l!({J7RT\Fm$s{i<}JGA;Ŗ&CʑJEcbTO*"Eا`)10zl/P{Zq-,ns#Q8ܫbטত+zX~DkM 5y0moסtT X<"/{J^VIG-_LҰl7ϣ< Y(. MtU 5hVO+v&)W?VJ OY',"0e}Y{RLx_Y ~!W򰙎ƽj:匏Kcن]A6pմ+(>X775vr-K(^r\:֗ I"r\x7v )ܶ@GUj+a=(QPD9:x[ ]I19=ZtI-`jjCGUžFK5ݷb:P%w6éwD=B,Ñʡ%%-4 8~yIcwE(ڎ q$!!"CFk8èkwI k}m]EA8J[ӝ@^"dSJnbT+Tz{oKIk: Ykգokٝ\Bvi?,mD X֪I>w9-WKSs7" Y5z _Čg\(x&OTj*@WLyOZ.7M!,Xnlռtlֿy~YJ˃ā aAeRզ<3m2rP4cgتj+M|PADI.D \b>V7p9XAG0tQP<>r,ͣ"c#*{:Ξ, ]rl6gKJѩ8LI:8YGl:JkF>UТ }eX jYf?skHw.-4U{LSˉEBV"LL%m]w0h5<{8g̷jNg4!.SR=* 㕠ೳ4`}p0}#-#4T'(cER"$r0ŊuqW_N>ƌ{J2ŧ$obCwY Wpl8m?X`Qxe\F-թc:ք{ ĝT~WCʜ1 %=l: yAJl=AG>< N=kE'Nc Wv/7Ѽ_}w5gg(y)Ɍ`}1j-d23~*lu= j)x="}Ae #e>HFk+2b#&Y,v_KF8-f-`.0dŋpW Af|3ئ74Ll|SwhK)JWRews@WKT<P7<'n^-=( & Zߏ慱\gO~Gƭd;cHl\姰vꔇ]J׋԰(࠵)iW`3oCevi1%DEI_sSvkˍ+:EIp.FѱGů> 889g:]¯EE N%k&HdOhO/О?F I1>%J;ߑz:E"w-|Z"2'v)uwv'hXNJ2/9mh Mi[7Xγ0%=9kzm^rMcZNe)F}@1=^>7dp,R(ѓ׼iΊpH2F0uJ]L)4i80_qC)3bFMFa3@DZw3,JCi[$ $F;~!RTKS )?Qh- 9ԳO*s>Ӝ$w5)%_>&,sN 8N~}G Y|QeZփ3 psbX$ p(g-x/g.:MH fz>YvN/W/ wTVӇ3!Ny%/Ddm,a RKxTwe$W=J L P3/7.wiܫ&nZS!*H׋vo?,1';&jd 1Hn& el1sfJqυ‘)1-u@`ݱ`Z+[#m"je%}]cI]3WV,k.N@\ʟ„ec˵ƅ]o店 ZЯ"Gbw9Yp v@EӰYӣA(~x.G vRCjT@` 1+zg b"9'bș HYz.qX9/KWT|yT\Gv k}RTͮ& {(KP?8;.R(m@Ѭ2 }eォcFǫ|<ל'(Ja̖9'^ d&w(dlgLd~ _a9 LeK:^ Oy-<< dB?|f׆6b?c&а6Q&n2yUQOFE%KzlzU|wS,K ~(IO7~LE-A/㘩ݵ@R8t^Q4AehٱJ7輥WVYrtO 쌭y< .ᝯs2LO"R0++rn ..@,ʈO`J u?O|59p׊ɴ] uJ&׎Aj>V1vsXLmaMnJZ>$1ع UIhq6d]W_Ii_o -z H#Z2,z? J aEE%`-uhʲ RG 7B?:I>;$7.|4+v 7O2GoF;bE2 S~dPIAG%xri# a0Z^[!ht1ac)MF*VZl-::0]]q> (gm敘1r4̗9cVt>x e4yXP_nN0]D>;ՔGwݷ)V9[Xqqn6UDIA/5jCR RDWȾ<+_;pf8~,dX=>@_ESBY ^q/g$L3wHVCbx4$ԯ@P`?"#μ[yOEnYqY׶ѬDg|9樵+%}[*QL/ңk|A}->#=1Fw:q×ǾǦx6e3u&Q6 CpV/ӺngAX}ĔVFd2 QЬpu4QJSFX[xM dpr֬Ly6d!$&K)߃!n\;?U>R_WŬYf=Njqv*Ρ[F3u,65Wx/* p\༉+zfdrtr#}NDsJ&Dj'thbxL 6f9=!1Jw/ﺝ?音kbG,w(/8C,%.JF#JY`%|r!1} c\w+]s?j!_۱7뤡Vq:OZ鞮*B"˺58<1 KeWGm#>"NЈW*Q\$97>y!Ե66p%o~ōW4'0_P{q4|8??R48.E31n_CDZY@wb*,N2H @p5)wQ!'ʱyS|2 IzmMӓAp@\t_(K2#; Kw6X@&XfQ>D6'煩H#昱z^+ԐkMjC;6{Iz]?mLH۵E,/|28k0G5 J?$Cn)Mпt:+K ]l6$ŝ*L֝f"tFUH y/Z~I /^vd`*DOAI@T݋J05SR t h\'3]ooIT&:M^&Vu[t$#m,d4Lr-vMs91:a}n0/R[M5U@nP`C}Ԥ揨O~I+(:*:Q\ *ǶWWZԸÓzZl_J{ 86(Լ~~ErF.9`RH"(o>5'gd2Wj}8(hqsJESg\~kfQrߒ巌]aѹ+O{/E|<l `ɲZRy H@ jx).׾jp^ߠUL^pzG@ TØ az%0i˃L#>0=vLcpa0Pȷ,OXؒnX`15#$9% 8>Ao4ӣ^X I% X!9)iVwDm ~gW>SP|3c^gN_7.2&KY*SC?7D>wPt;AD?0E2'8:N1 iRް4V7oq\$ "IhynC}2>4F1б_HtQCN/ӸBb\ZE─'-'.: \VaR" Q38H7 i]m_GV4%y~IqD> lvZvq Tø̽` E85s`ӻ ΃P|IO'L@3OpATzۮ]sF囂3&CsCY>Q/Om=yO}\7 }'h1yH&YhP@Sѩ$@?wӱ `aPa#Z{>2IH]_|z!c?ѥ^QinN`Dp8q+%]gF4.sP nˁW'0_-FNR#G6 Oݓ', {GG P+[5&(prG_*K$IusswIo( ["*Gt5`=1Ptq9p~3{ӝ[L}m9I,"]h$ 7df oM:~ SSp\G2Nz(sԀ`Xqhv#8vHHC†)k|%i^B%;U`ZJXRUBY @ bF<βXdÇwf9FުŖ32tBm7L4^V42I[p{%<ZŃ`ȍ4 4r6uh"T_xH4B ²5Yp(=_:uG_X8<l-[55\I5 ب1Z-RW"(ᛆTd,jI 5%\E#` =|_ PW-jٰEP^OpTRe߷0[;%4O)c6;?V5NTm)?i.!:p3!GBmD0-sO=-pMBV}$I!\w驧U:.YH^]H:=5MC[W?Jj#U{lbg0YŰK_TVʜ-$H,^T<a}Ah Qs Taqa?%݃UgHN%1F5ʟn.bj]F 8D.1jRܴC.['TCƸ;LKM-mXZhtA_@"Od:HJZ̪UJPHR[+s;ۀ0X uۂ5pG,Vλ$x XFh [{ɱViI7(!ZÉBB } EelxƟN@̨ ,5ºI`ޅݩF7EΛ;Iߛ ?#G:},z{;.Tk€96~HMf ];UL3۱qMlE}C_o`s(tLIEfw bt+V5/癇X3W{c':nXRTh-~|3EGvќd3 Rd79;sc0ܚ@fT ]lR2z<ӵUYw}y䕯dw0ckE2cf|g*J2|f>k|׮ w`=՛❱GҋnG)!sR 2%B8<\<6xW90rl0 ,;Q~Ax@\闦,7V14FS*=Y&eUtjZ@M+& փ'tkOfI GڎᄚVٞR\8jAcPT {CvX`Z?O$fBI~ދ[U@ƌd3 \U~g2BI?i+tv,1~X[%zʿ䞯5s@p˥P~p#یNQj+;⤝FaKĚ`$"kP+ՈU .Wg*4[3ߥ2׳Yz@:Hy㤬-fIOO;i]ڑtRokfMJ]#%rs\ Mg^ CäRq4Uz% `qֲj> 1p2^ uiZʋ ]CF./s2Dn,':FME$eM$vY$F]-2)6Ex9K4jɒlWT@WN 5k |FE vgC-*9>!T cOꮛOo?9B'ϰqplg-%aoqq)C+%f'|&bK/y(7p>0jdzu|JV^p:]cIoMS+ N'*%jXxH3茉h 6u|VEi9H9#|frh'lwGCH]oh4:NSؾI`YLHQ hD٫:-tERۂD T;)rQS0 :"ۖA&ұ|JBsCyLGQlĭzerA!܈ Ş=0Q.vbk'@h{ !GXqv>/P+(kl35DŽ^Unjbgb#0S}f)~/u\S=ڳ͏CKz ]rB7ۜ?jz>vd̒W=PV[Ic.kNWsɢ9_qF0۴;U2F8iѱ_<Ѭ lܿ%" f 仓%&ʃe"ϑO81@mK*zc|$!\PC0ҳYlqTyۗ??]j!»JBFUoKCM%0بi è}rAu0w XӟQq*uDfoHN0-SGƒEvtO' RiE]=7z' W&r0Q16ى|z0{A ǵ:\mo/YV%H&L@{5[D *ju!{ȹ#I g `S\jZ=0D`Y-5L YkDB}8[m ϖ}iF}J:X클nv?= 5=$H 3c~Vh6*H%gjB=@Nep1dYb XKmuDPr^p^G[z.b|[RSqB/ʦ!c2كjS~qZɕ4{GNb􄲔 UA,+L?UL h twtmz`>SE$S,|O OQ@Jjf9!8r#3k <柨a8*DbwRŸ~|Yeh 4t < Sd a?:E* TH1]F C tR,!_!p& !n$pr'-"0f:XP/QigS?Vp喙G=` I{z2U}2kANr&l?JQrf~"<&aIYl{3:SC/ Bs%D+Y+݈ (,wys0vҫGrx`{m[LanI4{oakr4 Q LS荁/KFOPzCmD3ʏ c~[50'ِ\u_b(5*`uҙOW'swe֩"70g.5W;zUΪNU-2Xzi;bf``찬3$U$0/Oa`;$5[J[~)Z. ( WM?4IkiK c `@*t^K9ABTŁv ~1m1IZ<֏9[P fY}v=[1G)͡_~hwÉ)˻1q]XA\w(teq5[A@> 1jI|~<1䧅m2JKq/'ELEZU>b:A{Q%2D] gזV{~_9c}j+xx}#>t ˕|^(9;pBFg|cS@{E-V W.dv.?Ɵ#"aON[~$70 V`LqFire =߲"Z\Gc,ܢ|&Y+ "kB XЩ?O2K& I@["X{K BcS" p*QF9T\P]dQ).j}1YBGhx7;#%ts5”(%cQƅ_(ǑҼV=^ogCpBX)tH;ͫTa8H˷%#3?m,"އs6v ž_uGWyrwڟ˔ɠc1'|%G`W]ȪPKImIuy*<. 8zΜf-&Z60pEG/f' 0j:; {֝](4t'9{1ȧYcFn XJ>G] "#V:WV^tܗ3-{G^bw ̴ps|eX^ Qo6T2[څX][/|mϻ4 fXɨVQf# ڞ1t ds|zA6͉Fp2I*mi -rWAp4\s)FOSYR&|xB;=\3=i5@=Y&ߺm xݺ82@&TgBΌ8wd3y VR}I$a=m܎)k0(9(-. Ԃ/p zYzyx ,oԳDU?)ɤV 9~9-=jG^X8#AY&FXh|[PʁՈӔ6oaN49Nw_sRs&_r>NKCz&DNuUO"Ѣ޴D\ 4] ǴD|rpw@/w>> M$0콉7ߛ;11wZl$QmLP^yA,WcO,KO.o_j#S'\.{?^χ\^h.ʅ:+ԡZQ(KAGLI 7)ZNƘ4-CFICLVAk!Q^IJGC~׭Z¤6)cTeTE>^+KUqO[(顊+0{D+XZ1ބ&f# o6~kŝa|FS% n:JvzɤU"]n4^ ~ z¶SHdy.v-vrΠۑa3ky܅jj3?֤Xy񅞉عTI *_uf+0]握w3o;Bw;[m4p  eh3\Oْ_wUǛgt'XYWc>39p@cւF!*S6gΗ1X dtXr he-mnh8 ?iQ/>|K},sp-g%%#qAш+rLkN}z)WJ=! hҠ/J} X*J @Y'9lRsxzsɰM3Uvyya#*jVx-&gba\qV R&w15|zҹ=N0%-\EYZQc\!(غީR~nNrȚ..54h4hߜ B|YOs(vF T/;6P?'IHvޙ O6 #ňrw~JH("쇺` doan6w?_n$<|zI8X'&04ٸ<2߫ͅJ @T#wRofb^\uzm|v絕?ӗK!_q EIm]4MN^&6%v1/^wL햀7"GiQeeXs*0{;a:t6ݫ@D8!|.a//A^£9Qs+Ե*GF벒"9r[s[f8 {ImVvNZirQ{m)_}G/ezֲ([~=¶ ,`chƂj^(`t+5WT[;˜ԯ)D0M0ڳ.īʧ#7{NS"0_MK6%dW)!\,4Uʊj i3**T# kG l~^+d3Yw7\Ǘې c0A|ẒrKH~NUα.$§NfH-*0'_6nHy%C˺Of {Q* t4CGC)*uyu˛>*>Е;\ G?ZT՟=bLmw=8 QBWrԝ$Һ@6/EA\Vn>=X?G!hWK\Cg`yy(KNƨcco~S%}ʻ7)iwzx̞K7߃FQ*!8s\xuu/;QL7("?@ڵe6}P$#2b,d<1O%:q_~RA0^L,,NeSQ_Fpo-ڀৃ&7JX~>ltmJ^8d@{>ꨑkt!A `/ә7mo &}&f6\kc||u][Ye0ݰVWtǵ0ciQkAA4n>bٍ. K |yPr]vlk/{ծ%(oI!V֨DWዢD1ו̏co28㧗.z|oiC2רR;ɒ3%[W! K.ܚ/ԮҶI8u\}H-vՉsp렘zٚux՚,2i)K] 鹿!zU.O?и*"C'c+#f7rx7`(K?p!68Q uFoYnT4}6JFu(] {"(q\[ vNl\U!zw*lž~q9Jj6銝#F`[n'!d0NqL "څ~@MeK.:uuTt<@VJi hhS51L+( :zwMػ= *-\\@=f5g98{1D ͞]?AA*L,)>~_x5Fh=iO/xx~f2U@J;` .;b VYXǜMY^Df D'R?Y%|זhe@* aֻ5|%>7tSr@Gw۪԰=B/?s`o_5U'h-yM#H3ƾOIamDH~aq[',61c꘤ Ngb BEA;* aɃ ]/`'/_|\iͽ[Dۙ #{v5PzAo)!1y̺3Df2Xցʡ6-k]s Or uɫFoTAF&YY1SFe~ffGuPF.=wm K Y8u IEi##Ԕ^~b`tw1ޅ=(nvh=~P;}0u ,j +g}= aG~<$H5/2o^_w8oiz>hI:lIK9;\iiLu=Mܠ^yC]1]AcMJElͨ=5D+7Rc0 NL = +AD:a4(1ZzG_*;mZkLuOQ.႔TtXEXvmތԑaَO0?$㶌mpxڤϻYn|ekKlk'5q/yy&aeb٣'9ӖI*`8 OKnܹqZTR5;{661.gipk"G0a!wDvHX nFԄAp(".~06D ~.Z&熈 Sf~1XaQ4 RȡZf'-3<0d0. `%GZY.ѱ7E%X#uc3 5|+`*'uCଔ|Z ;G9Bײ,(W1[P W\`PIK6vڄęoK¸vb/mo=B7[YS)/wY1:VǰEQ4FLwHTO'qn`0\#̌" /BT56)0*4:68l9X.YhAh=*d[-3' /`#B3~Yq腋A'K2]Kc/uSntj> P֓IIB}4"qڠ {M'ƻ·[]@gz3ly+ 9/^[(t8ŋq&5VIa#죥ŽΉ\cm_+);'&$H{ 1$'dՀa"As4,IE i Ұ5h%qi%^Rs5|v{nl1xKӞ; p4R>%#ߌ * CRe 8t=.kuA8xmE/%ʉ6w{-;E 9"I">naep6PF {Ȱ)Oezivr(*Z"DBވ!*DJK +p{@ZW$?)z=滯ͮY"fP>A8Wzm).ikt0u^H\L!jQgsORBRŵ5)"q8M[3hH1RP @ s֎@IM~a謤gHs.9, @-jN.iFDx*0; O: i,9Pfa>R`'\ Z-1p3ubO~]L&2Mxr- }HDZ5,lj@ZZAإqkD{)FjT kjpm'Kk@-ter7T? g+أK ^M5N_*"T"G ye=Ğ x8ԚIѕpɩV 7I6Pk6Ux$H~PFLXMPo76zTVC,yUw%m",˂ܺA0Ңh?,ҥOj-޸"F4Ӹ';0(}GrRFou U-+ol'#ݙB?>@lBĬ;\oTY<ʢM,^!۬E$F?=((3?Ҷ-Td 5<7ю"98E߀wEߦ j Q91[^un-TDn,,oe±#S\2UX!{ ďйd|_l3I(+KW-G" \ :*% 5S +Y?2"`Qm̦cBˏc#>e'FEJ%8fR[Hmkh2w+ 2^XC\񺃮$?-a( 7BC̛]5賻pW-YGS_ vT@N{Mh̔60ӐiO/c6%bc3>]+ ctZ|f…Sˊgc̦7*,fxκ'k=0@JL0c5[lTnI>40xptz&'@LC\=x`?)=GىWF)6> #:oMXB!V$0mBo2_}˴A ȹU95* =I(H"hFm2JTzP+u;FEQHQh-'/lÂKJ[[+(VVFd&5Ny"wR3(CHEq˦Y;?BƬD61eoI-Hݭ`v=lbVR%xHg;?Eg۸Z}nEͰjABZ۾?a%N8Fv LM$_?PY]޻P0DXo#],TQh@RwPn"W'B-b?3 lm5_ctIՌȤH1xh, ŨNJ "hD[f+!((Up: Ⱥ$V9)+XMBQT,1݁P ) |Z~@v\Һ1pӶaT vg@}Sù`rml Hug3җi! i,K3+Kl)ef岳|W]ㅖNrZK3+]#2kN‡Fs%縟*@-{ﰖK-l392ß֌cllȔYE^UUKCt};%gw{(Y֔fud>qWvX?>Lꤵz|[vrN[ g拤ٗ,j| wѿfZ͒FG n?ٜB7KB%iw ;gJ"JD5~/n`hWК Xn^?gpӋFEjy.y\>f#P#;yЀ]}C Z8 ekK;R?ZQz5˔m·~,/U Xbe.ٝŰu 8W3j͟NJI ǻ1^BKZ/Y )p삝SZx~wx43qcdk^"y D,5pjKk cdpZ f+'JsјS@y=# n,!0=fa_T,/>g;R;BfWy-j En:RSDvl& F !GX^?  AL- :̰.ɤ;RXC' 9'U=aP*k'(kM=Z[)QeN<0ڻ>i|0ʈEL=Y04d 9&z5~6NxېPqMjwA567 Y,_o"Cs)NM >-s $q'0dWC CYfa),lXT\29 ;Fvǎ"]kƱ[JfxF-~Zi)S>2YQos 4m@4zzEF%mw#8 F?vQ*ֺ-OH;n.h m>fAvI(JcLa,Q!qM:Jo qXw:<26* ~$=U ؓN la09,ᣆAvUPo?EpMo^y#:&ٿLEcnhPbTgt٩I h)B9QR[~_;)/Bת.M(}ڢޥ]N*' LWB84mIN?/%njsӯTD[bx[OǽC ~WĸH="g<]< ]m)W5OuîAec[Mh%./=N:g m~qqGۤl$Y$$g@zy8i07}SVM"0)X 'eXҕCc~ 2GɡC-h 4l&RhoR&Vk?fLs:g55PjzE SI2l);B+j!=rmnZE;ol`ZhC0$A0}:oĩj+P.1(M|vM{-Rb0sdw.-_մWxP5lЉjz -Xn0ы-]Xx3ݗ+f $Z+"|a8_D,ӥp]#%%QZ3pȝAyrrAj3vi)@{Ί#|9fK4@yDU@Hܖ5U&< koba H8^U0EZ$7?忥fFRJhi fid9%NxgooGbWL+yK+zZtǰS(\ |}S<:ĺb/^)c dlaݽ/}ɵ3擊%3q\927Еw+*m14_p> FV%CyޛŶk(9 sI H0ֳ. ɪ}HYqHt@P~=c36,eY7~L_B \. Cf?(ڇf4D5 LB1K9_\94^ |~(6g ׈.(p:&CJeHrV[ڬAzo\ol辢f}iHif-zۤ}3. go)d-t([G>k "` ̔}˗ƲW* LJ󈷾\*#ם@OFHgYR8cMdfUW'#LLsn ;T]cz|sc_(a@C]<*iWnCR 037 pKݚ}6ap+O);U=) ylBwagBb}+{=Ll?*kGRiPv7n.VDaiof k:j ?r?[n1~NfîGs=ʇv*j nzSQ.5q{ @!x'L, А=}6QV+j6rgB[šp V~5KS $\6q4:1/)ԳA4@w&x wl'O/~ YxD_P=p42hEe;k|Ze0XQYy\;4y%âFW4;s 0o5OUȳXթ/SQI%ΝwݦRŖ+%<+۰ ݓEL=HEFF ڕ:=E}7esj@,7+kgNmG15X[@!Ox^-Hd簆.~-ٳR޹/.CSOVh B&=PB+50"R*R9d!'K5fdFWY@Fe(=o >M5l+a܉Hxj,H뉜?8x/YVpcKgEu0Hx?LN Qbk@gA!Ew S ci0\YfXItn3PXF h$|ȔƋv /1d3eq4{ u ^}m/Pu~ŴW۷JÞw9}Ʉ8_vYLu{p}C`F˰m&JqVJ~ĠlKβvBH)_D% gɔ]Z{UHoFw_<#WJ3hŜ9a~$'<3Y>E3bE@V[r7|q7J]4-5ӧS b{E+A]ɒ:] t/~J?C$tPLRtOP1:$vryG ^&lw rˋ!\+&J5(fĶJwJJ)B{\~&=yo5=GsU N% Gpۉua! l08k6HTԾxzP1̷u[7^HU*oF-l<ގg<Ր!2{7% E$ʗTAOB6l SYHqv G[q0r\qV`:ᥰZ.]b@G[ )- #=᳏\`*v{=SZTG+-jmP2`uXZ:=:,ޟzAQ"|0-q&]~րGfxN73"QT{8`=%k(ƫdMKӽ݉OFԞAti? 0v@ I`O%>xYN-Hݒ5pe~E IP34bg95:-s<0JeXh)Le [-G^Msեxd6IV3o7񏏞 LJV'YhFF-I[Ob?Q SQ=T')G#fs[\cy&]{)XtmnEu3Pdf1JRdtFpmmIQ;7^ZԴ峓kA,$uyG Kdx< nx8(t;?S_ww*!D_DnRPտUa_fNM+LCr6ŵy;18`2zfvnP5Պ4SߒVE^  D:\'yT]cN;w;35jBޖzԄHw`zS'O=au5,f2#66@ӌ|Y#05r 8GjI' PM z]?~Pxa|!" ;jWxO. cav)NT teKϞfǼaz6AflF;ua"7"zq` Q7ϻX/) Vp`a& ` } o[WQcWYn1UdD2 2ӳmِ=mskHU7pdbhlU<9_>\h= ?shAA.@;EWm VpcFʟ 55;ƜsNwR鍃͢3AC’M\jWG^83)e/*n Yqv9zz3W%͸B>V:^b^]<[㮭0#h~Va,N"Ak**wn63Q* lIu\s475Te&5z&U0zr +qI(B\vJh0ܞQbk;0D2/`I\V fK'Omz~P A(̍zX&Ɗu@Y(=V㮹GŒri*ukׇyS8ŴEp:ڙ*$o;o2ZSDH)N&F*2*]Y>d~îRj4ɂڂP 49-)n?,S6  qKRDnEK>u2ݽhFVћ~Lm21\`c|-|XYxr溶?R7L (A[s8cۗ7 )YiʜN p~7>L!,_փ3X_0(L,'IȬ̰Xѹ) >yb}UgrY331 gT*f(Oܺx@''ed^4QH',<%Qq.g^ΓL|O^b[m:7+vm"M !Wѳ*xr51N }LYH=fmvq|>fS_ R(yxuѮn9ZmٙۋƵpEm;t)Af4aKL?{jŘWqW0P<zDA1qZ{.u唪J@z/`bCej"%?$?kj(NzX"oo`7&>w4¼5,CTYMx(j_-.&HS|z]~4S{/0,M?bMsT 4\7eFP!(l6ᒤF2Db\ܵ47EʵΕ4'ebrY*^*]HPD*0?!1&LchN| @{ZsD,g*OB"F'D8ޚpȂӃ;;ek|Of&A>c t4Vf.[|ud90a,t Y2F^t\VN8oˠzgX`k;RW F-gI: WD:i{Wb G*n_"sZ<[!O9K ͟ *9P[y!j~ۍr2Uagj/STs _U LjT[ R-%՚7ōZ\1kQ̧_ 4i2MV"Yr:8b[:-BӏJnp Q*oqU r{wBA4d1;.ZUɨ'>b|g=JZsC<s TꅴB5nfPjS*պ4xqw3=jұRⓨ3rkڲQ @9['; \f@$MޡOi@hnꃫ'oe\ 6.Ƒ|yquDkdA&O&͕D-}: pH*Zh|tɻ&g=A/UOlPzODgޱ3*TK$d 75b|6nc , syu6f Xt}&UԖ:A@}Xf2#zN/^'Jb5oGXL,@@@B7!j*Z|gBTebt1mV3-8VG^o=n/Q&o ;z߫ȫeM4^Bw+S4 ڰ@Eۍ[m7U'p[[E\D_(F %$?76oma??F3Nk4U/„n9th ^M}:&ba ۹xZ"U=ɬ/Ý`);b!)zK72 )R5s%3Eg<轊cUqohֈB8mf:RpbM-x~8)N&ʿuncwr H5nmc^|NWir\yL`amij=CR@U<,Ӱeit8eܝjH\ŲpZs',ɝ{ o*9Ut,KWN@m.qu"h9ohW{MnDSGr9>n m9RIG!=r?^ERegj):瑖`})X#/y>\̡T q{gy-ϗbu-'oQ {Q Y |8NjF.L]%T^5Sj91@TqE+D| "v|D-K&~!pP)[ w]l-YxHII#GЏp\t\29L26 ղ9GEV *V]-2'Dq{OZJUGClr.ҨBܨؑ&Ȏk#AԖqw+FR4 3]828(27R[렏  kriVJ6̜5O=LzEԪOVwb )ey qIf_rK~2i3&6 jۙoAp+춹D-F%77:Y؀m?^.Ll֢xߨ8~m_N cY%BL=Q1]-Hm ^eR`M{}1ҹ+~JIzAo#Iґf=B R{9>Rf]hopLޙoqH +|D<\`ogN d y~Y\:ھBR^@n@hspf+ $kq%[#Z/bM;#2 P㖚YgEiZ&z ;1RFעˎ2! <$iT)碿_ܟo?S vٗIGU|C+1jpll).N#qv %9CZqZ6q=\"axjڧ[[{ Jŧ1?}|?m>e1]x吧Γڋ7nC/F4:E$v@eDxw)l:4Co?@G3q)єI!~R EUo #'瞅r=W*Bj@Dl+o^_EUŬ7P~+)9{`vEt!G]YѮqI»plP~沟?19L55WKz9+)ǘkM) 4~VǨGCG+`kڽN%O (w? ޹čד}zpLm^\dkoWn'KB}`sh# uY[MfIY6P/2mTpuOFcǰ58ù&A&1>Z h7~+ML#QdEh9dr)cP/ ԕ8O \* O[Nȼ0B{Rx%NǤ!a IPv#}'MtZ"4Bɝ~ڝ\A[<QU(}Xxx UjIõ[tNOM'ezϣjv@!)LGbDW3cA }6&~Xg5uU8tيv!l0 ^[!t=$.꿕;`14É4't]' CV8J%sf1jUvbrcÀ}/׭Mend<[jH msQ`arr2TolNw5:;Խf W4+ 0%l||RT,8M{:'E@0ȘUEEjц6is1,жMK*6}1{J,c{Mi߿ۼ:'ްI0,è-"L)-#'=.94ήX}EFxG Dԙp{2M$253au.P(#@Ii撰o{q v 3Nֻ6LT4nD eOO) dj۾5L+s"0``vppmO,W/1w%MRY N}{rD+F!nJ˨<%^V~^a7e: (2<:'v)7I]C{/$­ӌ2D4rW.mWF̴j)+Lg˥/(811b' R\i唼5JMJ9UCsMU"23ADlN#!%d]]ہqCu"W|ay G"  Ӳ[o>o@;XT!rxppV8H~H[@+&̘t&I 5XZNa;DA^V ZdlEDoieR#Q ajʪ~H֖:~ ^> 1;zoIzuMv996sSg{KV4\&8cګxcꎼs 'Nb;Bm"3h ѓw Zxo8FA#֍zɿ^˨lGQd=cDGѾgWWOaNgoFqk(YҦr,e={l:TPT_Їms`8T] ( uF𵾬rUsMFؽ)AߵKA5NgjMb3q<6ΗQsc2.|_śLo _eApqW JyƮP\ESx;UvPp5~KʔlƕW2E7#{]%-I<%[LxC ͙] tT.bxۉS@;^MRb"IE;&2j+?* -gGx!gYf'i݅t=Kq sh]l-9} A63)}PX9Q&(WD~eBciq_<6c~/ %Y 4!v ֭VS,=E(&Py'ќ5ŋ<jSwnUtC Ƶ)oΡr$F”lw/H-[86\:<.SڂȪQؾ?>4DFG]G3^sR_@ŠU% HN@^7) .X7lQUrYqUY/ `h~n-mNw<[ժ/vÄApEƧEL}R )gx$!R.I1aհ`,4ln6fjd0z/ ^7T7&4`:RH?-Mq~ 殔%3 #/xqi?PbðvelV6ڹg6^XjkHL/yB^IVjQʮN)7D6W7#h>rLNJP]ӘtεD5IU t+w Y!'\ﹳ۲0X_D @L$C;1Jy)ܕfԣ/>AO%JYMF}ÄK]'5Ue1_h,D LiVf"WΒ*WzAgVA&m ?D](!MAt׹K81qomR℥Tdf;SF.sCٵnyqר#H>pWHhaUY[R!g~1Wn"蘘v gKi (ϖzFKY<"n/RܘbAyXlguHrL.XT^$_(&˽y8/ y8jTcorW \*>lz{ATG=ދWs&&4݉r\T#H4Gy1}|Ię7>QXml ālJxo3XP_\T-\Lk7T;~DN&X%( ߣvz svGnpݖ~_XfdಙF8N ^靥3}ƿް"I'nI7|#rŸN Y].W)rLOrƻIjx jGL+$Jc'XNA}iêv,Enг\PT-Q m]ۍdg+ GV?5Þf ʹcc-)ϟRe**ݥz xKQ:DavW>!77@#ʗ ' wȅ#P;˜ ҠϫDT`D=>z-'։r0׮29i!AS 0+$ft~f)' FPA[—0Vx7ÎOVmxgvx8 x]Bwk5Za`QGAoj)MZdhjOSJ21PX2])a}{)iϻv'j = `Z, N2wMk>L_0=Ssyu^b]`bMi% L׵BYC>zm68?Gd*-mWg>s~uC8AhҜXU\g29|p~XW[NHr@BOSə!F вAʔ麃11qPtԧK+tIc@Dhݜv'+(hDӉ`9mAos6bԃ4Z#z+yT՛=5> (eRѫ%gi]ZdړJ|THߥ2$N`ܼAI`]>вm{4k&sq2 I 0;V D$.(}l3ǚQM,$^r;=1~DK\R=b"{ܿ#`D?vrMBu)OwLɾm§qY6?ԳfQ)f%u=U;|YVS;\REgF Ǿ"aa8֎x&]]7#[?cc(;_P[BGɵ-ؽnh.FȌTүXX'{%|?6 aanv MQxfg{;nƑTAϡa[a`5bfO"`t~| S/N\S2o`sй?;sܹ5v١;SUatln-~n5G"9B.qNiQxaoq& /n9RD, svHjv|uԯuSg&*5/xR(f#:?ΚcKaMU1-Ib )ޓΨlP $Ry! 3M<@] J·a];?s 8n bv:@kVTY_(9}o{/U_8"P8:B?2|V{vf~!)U|y`:` z 1Xbcqgr2 w߀ d$'_M񋗼Am m۝VJ9.S%.wb7{Go(_a6>d+윯 i6^qG;$نQGQbn'v+K(; գʲ,2WaG Qi=qY؏}N:,\ْl4pw#E1],g*OŐu0=VG|D0֌S"DzIRbl '@Ͳ\ x%"zkAcΫ\GMᅦ8@)OMV Fk)b;9%1GDd"/mMDAiػT0JڝG;{$vOxQG)@UI°f8<\Z*녓x\QB&JMuR\\PLI˃*}{=F[ϭJ4dw:nw-б]IlT!٤ؒ^ˁ2Hp!7QԀ/D씥?EfpgR9e{uFÿnFқǼM bxXƒZ(Qv!#r/IyE ء芆y֞gk(Ġ!"Qx_hԎ XI/k?m%lRx aJ{d|P_#+?k;:I{g>O3ܷۋ..b3F 펧 mKQW,/-ߓM|Dv "Ҭݰ|,ϐPh5j:R0)ZCD-B3ni1eJMM+9_\EU_(7>Ԓi!;{r=}Qq#MLL|Qt" )"!>! #b !>fq?Eh'@M !)Ȭ]5D/q_ֿVÂ_U{vC #F↵_iW$}/w$)}4[/6QuLuڒ=/IMJ|_m^\A>s6a^[ȋݫZvHJp#L]b| Ǿ.=JcKrrkl6Ln)!#r 7O:#=$d]zoM +4 A,p?|$2FUkgQ&ʐ.JET9*c;n9&{&ңަϯLv ZL;pkɞqSKu[<R ' E*ڈPp⬬x`ҌP2ugmju[ݡ yɌ{V $rqiP-ƐDbpOUR|W[smBr;{W!ʓ.c1ltFy*uiGg?S ' *СJ^1gN.yJǰ4(c <'eXo]sr cms5٤(A&kpjA:TIecf#njP58Fsf Pq?/1 n铳 ;}p8|nӕ_Nߙ$Ǫbjϡ#hQX0E] Qn֖g[P$/H2ɼ::z8u4vK}773LG]8tg~Z\076uc"tJ;kgAT4osu:bB,QRZCMF ] &ĭ/K޹`S.mMJjS4_cA,Ex w@ bqEfݶf@-O` }E[Kp,c\NvĮQܺCq8˸-=}(8]l߶-' ̄ãѼ.~#%$`>۷ 'DZv(6Cq 4[Qu`hȪpr[F]j ; ʹ2x\" bFmM#Qt(p,N'6Nq*Ef7f=9g資?!87ƕ̵† .Ey9ߑvo$D >;9Zt+d"T.i,¾H7 VJҧ$.ķdrD!*. %|MR2H9B:rӓQ?}]jPҬaIWal+NecF˄}mzLGV›#MA$ܳ ($>x{޴D5FM]xL_^uZwłojX"NVSN`S9(24D:v3Vϑ߀Ԗρ%\I,0܆_-guR7չ>ekʭzka5fZz֌k{* W<8}n#NUJMg|l=y}rF;]>I!eIĪUP7gŌd470 tWfc& ^y&5\ۂs6Akt5֬;IʧN[M,ɂ-fYYCR GPq/9+tB`3QmzɄ_ysž)X&nf;j@l?)qKB,qRo+TdUό]a2dhÉNkJ&QBd,tʋD?u|4wFaZpC!E؊&pܺ5 3Ii>.^.XDBwCxAmV"ZXao(nU GgP-(9٬5g=|z 2}[y<;Z0?/'.iW|Iҕf{^;in/;6jbK-ը3DQ\[Iȏ^)~`g{pAhEɓ.m 1~*,@@OG?nN^qр:#"\*<{5*RC8?}8$M|c4|\N>c쳋UI:g`!{,DD0t^FҋZY%ӈP{հ7 Izz=f ilmFFѓX =0v&)~=U" oa1] ?Aj^zycfB 4HUpu>qL܇SyMyiSoWOk P,n gO׈\ Ihp QD5"oSkDm'Gn3(}Ll;UTtq'[oe3/Xkul%+ς4.5Kڥ%H1@×cGO[%6-؝*ouŧ,r.`' tq[ 0T' n@6Hj#[iBPN}y"#4KJrQ9[2b𫘙>(NPP'"BSPnĥ/Ų2(U$1s+ծgxS%?LK\!{NN^Nv'XZ â'T`7f^l*pdsN)d}C TD1 3Pb'T YT8m1l;6X6a8L[(޷XT ŧ63wB`h/OejUa\tzؓȃy(WׇC3FLO4m6 qsGM(I>|+cp#@#Ead !T,4AtO~η̕,?V.7>R C`1i]s0 ݿGc% FܮPo7 hF՞H~lK953ZM"%Ƥ\=Tp[NCDz㧔xռ@r鄝McB y?;"$Yڬ*s{xSg c9FPZ.dg[#iƖ;rFXk+1<ҋڦE-#GEgſX|%,x3){kZj籉갉!7"UH;J,/hg|JNt,l=nRZox%!;!M`4qPéEBtCXni\l !M޼AlLU.os#&R)s U"?k&c2;Hҍ YW.֪G fwݬAgU]pXT*/6BfD2 o^YIг&&Z/ly_Tl)+:-*8"2C.Q=Yzy佖e9MDlYF'-Lzo]'}/\YOuaybzǭ&Rp^I:q䐎eo\+RpEmY3IؼN*3 ٤4F 7Yp%%5Eס;fzo2kIG-f(]Kxj}.ݽqjFi_?ᘍqeֈL+Q ڗSJ5-gvshl:NT8bXt EakZz 3@" F*Jr`n_[BzNc3GI *6ŃQn-o e|'sS , D`z0YCGqttq,xA-$[Su_L̊75V?:JȾu~U}~=Ѥ?T& (`ܶ ׆1YfR;' _yTEchӀKNno _P֑e'lOyB"F>_<N5~DD.92]8>7Fͥ3_ϯ!P׊C I۸Ān?ZzaLӉuO*9h V6A-Qn16v&B5Wg+%"S>n@lJ2aH,{jgD\)ŢOB k6JiA{q~N7"a=3 >5hK-xxt2nݦp*@϶L*>gA9`F1UxQHUў?Sʂ)#r: 6o,Υ.5`h/sgJ5>XG72ʇm#d1mQj3ľ¶Q@#6s'}J)0%O2ȵvҟ/w}4Ǜ)i:_)E.:s۩qL!JZ4C{@qJC>|J||ʈgfIɘ`qɛ]?wiS1/ZPBB*-<3lV-b91* NڦDׂ)R(NO @wiݙXg}ɰU3ѽmw@4 5Ѓ\wfxJ:ꦋEҝ S@HOV I dW/x_d|A&{V4pEƓR1 lHK/vdB^(z)_$=4(Hs޻ V4jz>Ey׃簺ʢ]ZaPTA퐕H5(e BG.5 GxWA"5-DeMh$pbfevf܄n0*vEIKf[ J׽94SJy2pYrKf~Zƽ=CP+svZwegB %'·Ș[MA1O+Y  r毼k40woYܣ0WX}攧|X ~qIҙ3` uBdBFDQfs|RPxZJnDpvڃG2 :?ڀT-W[&!Uհp!^طἼS^3itp᲋LvFJ,/Q+=7R F8MX Vh/~}~=1*=`в!۰?17QUvvB#Jto_K#e'faEPaU=H.Bc׀1Ȏx<'ps`}Dcǿv pRKA;.Ӱ"n@y "a;A-z'nKi41h_HqJkڅ+;sUtmʤ mҰ^CWrSPƶU.bIzҊ܁MٺQ ghrp $C ΄^࿹y$͆߀4gy?([А!mZÝ.Lh^]y;ȻX;{2qYqGD0!H~[ht!q^7mgjg'&c,hsBdx!UgʼpX9Gr3VZM[$C`:+} чzU6Ip;"U)6oR.3\ԈQq(!u_:&r/9 Oтv~F/\kBݨGO al9v+ br>^iVϭ>%|BN p Fo|-\TPTЎh76EdXp | :źs60#6a8ˇ] 5L">t`02_fsS Z[ЅW9%NzؗfsDz`~`9B1p{Q6VimBfYKiR"JwtQa"cNU͋>x ~!&BP3)W4 E.pTq8D:A+e4 m_kpXn*f`U+1k.8Bo=.D]K7Bl{,6B2OX*w@eJ N ㏧aĜ|m`<'W~;$FLw/V`s&\b }P$CʡFo@B\=y 8$2:(>jkP׬cxP2Tϫ|zpqF t]T3- hz{WˬY4δﻯi 9tAE,Vc:S͵V={0CWWcvdiǿm*5<o9C>"RD,̛@WVnv_H+}n${alWf])˷5622FT4|tL eAﳠmiR$ٌ"Wgre=yW-nf5X4Ɉ56]Pu!?僘݅m5`n`Plc| q(|UIƺ# [pR 2:X3a@ *GaBC W?GW/+^C*9iИ>!&usX zJIC+OifmKm 6kK+3f5Lyvg/yW,q  K+祧p\E+WCbB,c`(6nGo6Nyڱ`STH"M|S%O'%ul}BkSc"0=V_sɕz[wJu| r$3Il R#{C'&6)goUZSy+;$̌w,U]m5|ww^vZHe fS1ĿD~2YlX1I7kWꯞ`c_FAOd۵aA/Tda؈NS`ӲS^skam#Fk5 KmL;=63 K%IWe mr//zӓF:s@luB]6RzIW[X`dwlܴ0J,5W{'?,:v}yy<5 _ӑ9~Ȫ*֕v(<. kmDiMw&]t[ެ]Abȩ[/o#_FzM1p8^?ph]3_XKFpLt0qj'aC=֓8S~qO 40҆ k\E5|sٽG{;C''4y¤c{R8-fN 5H-eyfnAsAwW_䨕L -Y6/VNRwTT=*eL0GOyc{xJ/_ 37/}]4!ڿx*knCl #ӧ3fWc^ȭ/o=ڼT8d$1 ѾfIP~mX6/&mX)lI 3d1yWEթ2uE¨Jk)+q3 2|­UA |`$k$i A]SECCڜ3t/Xpy9;T]ˆx*Zhf#+&19ڡ$6nt $|$)YzmS6ktugV5l^:l#o/%cOøz|a!W,}+wˬ 4&Z˘Q3P yI,3w#zb'ӋITy'6BC$,=.6J.@ zƗJ;*88%9nׯ[ _f#Z[ox;A\kQPM0g⟵U E}?dmɿC+9e$b[N=Q2ũx+Zt.=YrAgcZ>T[ՏY`x8 v )=}#}S٘*o$s^?`%,wNY,QkV^9JnCi׊ aj-& Fgt('? w+q?#+'}Y\Xq{Ti4$=sPd8iRj?dey)"0!: KSpaީ}QҬV[%ֳi 9-7ܱkfQIgd5{=='I3٧m:}7ܷaKlnR=/UPɎhf 15GF Y&\3*J}ESJ0%3W]Wc?~P0/2~;ތS$)CL!uْӄO񛋋_fH,h͗]0uesCSv jϲ"ww K.s%tPgi)Ja%kONJG^V N П7VbM|1kΕzXXЇh7A |*zzl&ra *а'0fR68{4vg:-:b6/Ƿ.)W>SąJTZa%'[ /G[@qki۷'3Iq^ji ˩eD!hQ)S޲$5/=^|p7FB*oک^rJFb6 946_٬E3@ LΔ~u[2!CkS[#Uz[JV&L>땮8 cHOݏWd&ɧ`_^fXti&4-~>u'>+ "` )ŋc IE12E sÇJH,kJ.%wLUL097[NRFt[NI~~6V(xP&ܣUmQM$Bٷݡ 7< ,"hG$q~թ6w,~ח,aS݂"? NUaN^lřK?8g4F9!dQT1vF7ƌwd A;$oy\hwVC4ֹ6ceRU{6>h~2ۑ_8|Os?t[6v.[\'.g!R-+~$Y:>m1h BŵN5d?@ ٚqNT^1R~&BBX]~PK.:}iFy>m-HjpqyoE^s xo=-Th[m`BI~`$GY*>*fg?Ts;%(F' \y*Qc&GUF~%[Oǫ+ⅲνI$$R.iykwӍm,6ok=nOr⫌ꑗ`7 Mg'll$lׯDGgnOzC^fiԧK?Su7hr5D…s[x6Yp|ہͮHG'"Tu˾a%V3(ǝT7BAsp JIFh>+;(Sy8*=S`>NmX$ǎ=U Z9.;7bCi4P.=5D!` uG/;N0TM4JKTL\ɨ5%U߽BШB[9kG ꎻ51"p׮?`dn}X(7G;}9ďtoRkpz::0P??7MH])vוS%SWƇgzD4kXUYo VjYN;MM m(@b7}©R<wNI/95n|"I6eѶ#31<Ә-BVxuʧ)wRַn!rX@1Vzmdfwx$lX!yG6^Gҽrqm?$Xsrļw.8%HJo%;:p론 & ߛj͘dzy,?NRӅπnG}كw'Ʒx&bޑ'Hy@'o-v13lZ8`SMSsj>ŹJwQI i$ #RmFC!dLh|9MGv ,&Ƴv"ǣ8܏HcX$?}Ba8ՎYby_ڧfO-{ic\.PJʘi/;i6ǥja%AYg'R=[7V;aihՆt)[i緗s>pC%Iw#@N RMNT+k_W3zq#_2>QG/fC[mAȞhnhKIW 1 ޮQ.*#.{z `){݁O]J`hSZS֭{hI Bho 鲚^G9oǘU>Ez}SK-#p̫Ʉ|f[˲sd 8zc!hQYo }B:zE(B!fI\&7m,gK5rǚ~@>p7Q :.+wov3 f"6q5 H : ÎG%NI<أ:Ox\4-gTdD:,-Y=;5A{Qd"|>(nJϮo2+,^?Q7hӂ93mj}(!VJme0j]"0дBԄa D)L(T\l$_J"PmgwhōdZ2F׮'c\df6R4+ӑ8-*U4RF$F!}eiY0xj! j:4ɳ.Py YyT>]D\A*֍S/\94`~ᱝ ʹTW]:P*mCh2.c "x;+UO!3]ְCC  5^] 3뭊eYe_ dQLnRf&+@@8BK~u6dgB]Ga zk5*.L=HJV~x|2iC_'=&2-?< )vbS3Ud+ tc"| w[E@YrP]ͨd4 7& b٘zF|""J:&,t(^WFk󊕗fȭ ?05}X1d 78[v8zwTE.2i#RbAǙYE/2J>|@^4 ThMYwR12j'LJX$'(&b 5:2DPڞmX+wǖ/^&L { ;Ѽ"|зY\uK#p{KO6<=ʵhш :?1KpH_JS],PF(Jf>4|]Lo-Dvz&NZT:[Yk16 ݥ*H)OT&U={d7REFJ1p+ L ڳ /b@JTKGZWT~v^.0W-q+irn{@ p*=D#&L׽t/ vN72XbFE읣Lbb^5+[T?O9аj.0u߾HlQaQ@ZL,YDts5]Zy )4ֵK ؘYo$'64jR"?uavRIv߲l?kg&>c!eSמ\v/ݱJ/p;]TS[< J=״ߞևۆ)p(hz7" P6婾"_m&d(b&֏4o٧⿚T \ԀFfZt՝zȧ9F:RC! gmd*\2A{( s'f5d ťAG6& )7v>'^xG"@֐?`XRoչHwW +LAYQsh5e7hVn}65wT`ٳiȹp0s]\ҎvNP.R_f62^!xqk+Yp,hFCp'"%fDq@%1o ri++v59N| {dnLE}_v(Fl[y,O +5#6ÚҫI^B*#>/BLp|MpZfJ`eR%"ރм5]#6 s?r,-#ylZWja~d8JdQOffܦDF׋3-ã1@`ł.Bϯ;՟ncIɹD S'-I}P}Ppsdo|  b  'YcJg H~=VZ-Z J%g)6nЋXsW8z!3SHxk.HwhHq] \)Ȓ|ſ. +6ͶA^en!N(Pкޣ[8!a$wA#aKHZq@ȴu[ D.h<6>toKE~ '/e Ubb%_q4ɸVB0i/B_$f;|8?j*̨]nOθq* q>%Qw] ,wn;1,]qhT-AN^%u +ŧt5q#8CYX XmծRg- /#.WT o*4. jE'((N#&gP (,`G|l~iz fU>KrS9lŹ|B4DI,fV0,BG0@iT*ς-^: ThڡhR ?sQ'xkydӲ Kb΢{-Mg8+ǖbc.DPhu?RGJWХܵ[xB>re,p/HALulm%fFmϨ&:+x)L?n!^ҽ_k] cSSؑZdPU1S=>vlˇ9@2PQo a#nmE`~^r-jks 1$l >axt$G-ґ:E69_*(_q MgUKM ʜ !"ScJ_N/pP>EmبL&C@y(%֬x%wi-*&ayo]~FwRx9{<\$+-^`o5>2@Db60tglO'TKs[CC%\PŀQy7]z$O`aS <[٘3篿 酌K7MAC]S2 4,W\4^)l c0&级X/# hwđ3GZ w?g 56Ģ虀 KԖp#ıffE(YpL+?>) ^qfYCSf*WQXFZdkv`K:g=}{;wwLSRahsг/s@^lGV'~s45dQӕ vE!3uX6[8r?fB_ o6Xt`?zN[`FaUqnު? .@AWۺ'K U{09Na:w'C%T-қT=MgfSj|~yP!9%Fk]W~uEш"KdRksҀfo_6R[Y' kAU"^5,76NGUuo0TNEmps eI}? jW4>_"ᅫSeӁAqh%6]K$M~hgG ]uj)`rYu-8$wbE|\; ZJn{@: i2.ciDV ^vyՃqjLu]+T.bb%<y-W1άyW;^KO+-iEYTȿF7h%F(vl.-?JJtzd {${@nQ,*nu>=OVBG%50RdLzW%903Ʈ8ԡ ~Mx W0]5jI|= Ќ}&#'Qo81;;M-K=@>o;XuHFD ={1ٰ)]5.Huݨg!*VcWT e/Y& <ݨ / #FO_KO2/̋$p>g DE& Toxw z,CiSy-g--_c+D;qVh vO'2챚ЄV>!,WmI{k"[Z,g*Yvs{ 9օ8`%y35;1 U( \lx~r^?]P 7ҥ%XգX6ȵZ2]a$]DNKI|"Ǟֻ?c:ϋ%YT`~^K .6icR.8"HG:|JƇGQ,,ْO j |^|J6v+>gH[lRwq[e_MG6B&IKpBf !^[غO>'a?BWT4K.fp{H盛_enüQr8K& 7MSQDviɖX>0W/^g鏋"9ruzl}-<.dTmH#Eo`5]̋+mC,CnIiSYz]zg8mջQg'YiCӫ4%(㳸dG%skS ^F}1[|/ "Y"6^ywmkw_W=[2&1>ryJU,a]Eݕ>`l.Ɨ}I}6MtLn/_(elU|yx\k3|HθMxCBٿ@sUHjiHfcЊ3j?fRWm -Q/Zy!F }rd?%ToB8F kD͠*_ee~* K[3qӈբo'? Ly(y;$*,,xp 8Q[~j0$._&s٢U PݗW>u Sd/]r _lW:|Q߷n ƍ>sgm<NmRUVa A4GW>ЯN}2݉5P齒BQoyMbldJpYBx8=F.:SFCg {ر]5$s{6#RT1i`fw}SWJnй7 $ⵢ5.r'RuӃ:v@`*Ԇv\SAhs= `\||jMyz:=Ec p1<" ;A:Y**XtWш89\( _,:_&QA~[P4%i!o>KR>R* PMdUuj{m>Jܲ"s{4nH]IZ+0/y `jpg`&bF$FwlZc~[HaW=VY$=;#˄фL~L'1 ]Ɉ)N(($=Ky,[hL\> Bp >=3?5T &>eϻw_X 籤)d/>K^28shp1LWe[VGm>_y^G\T~ZBA.{;4GH~0v{Euܩ"F%պA; HGnHa;qIgRb.~S8_;ˢ*_MEH.鬖ùڃvV8A['Ր?oԊ,DϷ"GVou3*nlZca( Ff*%\*I]SCbk %f0t6zJVZɬb93 :$Õk%3'ךF9_w~eoڤVUxl0?I0Ow0NȝXhpX³鸣@h^["r'fNnM1H/:#.jr"t'%~Sm"^OQxpk_XU82} Ips5x7Jac #a/-+knZ[l?gA*qBS^Vf%hR5|wG~b5&^>?_?Nv2*2w;I6tq(T;7$3/rY\A-@%nShɰ;`Lcy$>n2d Wޤj@NVL0M=긵}jnfIr,螛,]-elHr+ސ=+*gb9hM(gQr3! 5:<’?$z$wDJvu5cމ|zL@q&dT:hFӡZe'I2af(?*T7 o7l6"Sփa#w GZ$PxYZ:m@D>Eei}E) \82#c.z\tuo #=M7sBXe&@h+ a%5w59!_"ԉȠG'` +3MLG)Hd/5ob[H- 5n{f5C Mzx}ܔ.6)fЫ,ZBo_'ޣ u`PƏL#rٗ8݃xu*gգT8XXY0'M\q-ޕOqj ymG9]VjZr'Ϻ-D{ř?0n^G&^iU1$;(m4%#-,J~Ws+rǵw{ [)x]4zQ".o{s"EuB$*&V]V2c\-lWMO}.L֊6/ RR.pbSSҴ?]N5;`[ fGn[#CnjN6\"J6Qv$@<Į.1broa8gl߅xh9H=9n1v:;w!9&sePH[8H㎺7 vBq}F3ƫ{?SqOk-"l?6SIgik f.,yTϿ4G&~~Tܲ0BkOe \r1Qk^;ܭar:|c" ycMω!e}8@d1S{JQMC ςLs76OIt`JP:>tnM D(Ad?ܜ-n"%\ ٶٺ^2eFWg?RyҌ0K(~/歺q  /C HqoؚLɄsIϖT+PJGh8ifŮqƒ^y74n VGWz8]#jΉF` %ݳnP+]8~@ݱ_ vaPy r0i19׮aFr{C,PhM#sD%q,*#LX u:|F,eﯤhͥq"'n`ҐٝwO/i@g߾eD>ڲ$zddކȱ9AW:oSGɑaMTu<뻍nxs[}nX᾿:o7:F^]U EdufLiLO' 9wR$)'n&As/5zLv 7v$adDxrl [٢4 JKO7lk V,\FA&?# nkO6@A{T =fꕤ5HҤ.}S;Ъ,FVyJaZPDY9\g9}k/.k?Z`dz"Eg$ U;^88E]~̾تm7J֩%6c[IٞK%Ȋ4ٺ} U {78[s`j#?y[jdFIp5M8O?Ϡv&GGӇ;QgETFHdREMҺ];Ym*$h'yH'Q"v Bx1ҷ ZߔFc!阩&6mwf@ '&'/vrPkSYm{N_ljkžq8[Tk9O%G[s{S(%fe)^T<)Եa9U K&߆) Oy10흳ʼn'1VU1ٓ&Tsp\yu&\s4_[Rj%u~{zQ$]֡Bq+\Es&4oT +Lk}%36|dMjǂh2+ |#pSpS.*8L@joHXt&>$klհnVl)hڊP$mˁI& 1aKNh͜ʕ,k<ݟelqKO6Z#m kQ`>F"t7=nE @Q@:NӚqJ9se 1%o l"}(Y B?x_8~K "fq>c]vq$*pq}u0Y6zOי/ Yzc$wfN?^F٤_hi4WG^ONOwC_a + y}~hkl.ߛN/CPvR]eO%Ǎ|w_ALˮ VIw*%:>P!1jIk:`[ jY堬]f+m3[kE^Im# OAV0VK6_gi5nP&O_;5l\]9o`rmv磋[7([0Ő~U<0TOF>,*~ -%6  qipC)a3vGӊk&$`5|%{V=c<8E#= 8oПU'"K23c:2(@ldiE/qwOeseHŵꁝ{ŨSSџk&hh1խ7<~ɣ73RS0h .rqO/5}fm2Xginro՝EFz"C ՔA~D{ݲrfI=;JѭpUMbmkY-}jtnn;o͋5oAwb hc _fC]^e%VǨpP{pXimA1ewk0|-~t /w;#%@ #V1t 5jB3䬂v'-b?3 o&\L-cmAfѡ;]#K.u⨉R9i"?ŷwu!ԠU=z5ଙg%:ΩU:,Q:\`5KGwXgylS(n{!)Bgm32uh?p4% DQۃ߷"'r>rX[!YB{1`_=y}IcEuB­4c6JC8oт1.Xhsi{aN`iB{G+'BУ|igY4p,`6$mZ߰Y{T~RpĵU缸ĶVȵ>4ۻGS0F/ 7y~Ԡz[sa5ϟ)u׾8^^)?2-hj#ɓ/7DcjYѠy`2ۮ~-M-^*p p`:V,"hBFaNܽ5C]t;;{=hn'ѥ S.3II)=9c=gw??2tM.3rp"[LojȒ>GBӪAe;ܹ:5$PUVT}f?~pCur Ѿ>-c7¦޼DD#Эpiq@@끟^c@DK݂~%CxXɍ{ n>M=mk*^ױuU&NpD(h8l%v~}p DaS?!U8If7ˀ @Nd2k{9Lin`XfL>D7 {{S#o@BV`M-ʄvX10ʾ8Xĝ:ϷV7@f#ɱ;5lJఢrB= Ug^MumOs郃'Q$CbTj4@ #z{ HL>"촫 k r˚^L@q#CqFYtC&}X~NL|[SgVjaXinhjP2@}E3`%D3Z%KG8AHr"eP>[zbվbQ0%8?SHvX~? +$Oxۚ2Li3Ve¬N0XnA;=G06d@t]ћm{ʧK Ӟt+Yڴ̦IQMvO1b ϕg] w`t(PC_0l=LZ.j^doS- |WO0[ă+sX9l]mdGO }b Nhq fM87Vt*7"tF"vvp8g Jȫ?3VNe&wevQ+ǽ@=A~aSe '%_)Q؆&&6T l]xyYR)FpUy#D'Fy.>ҒЄ i~(~5L4 bM­j=G_av"@'8`ulQ?蚤rT!(4n?3پG\IK ;Kп5EG/[DPdΫXY;uߟOREՖ;9ϲ4&r$_fa2ߟVU1+{ݪ kKTмKT1tQd !'v/s=W&ѷRL'{"|Cxa&gq%CKi \hU.VwM(!&EGxsXbk5:s!1>F_^5pQ7-(I`}ij8|!/xg8 ȓ0pgx%#kZzq;:KL UBp{^ jg#(7XfF];kg?LCCѮaWI,UĜ@({?;``éxK`J),T*@FM3  MD/m qs>Pq C%ُ2X<NJ_ARi 5Y \6c2;}X:] L4%QL]-VB;Ծ4s8!_l؛leubdCH|!ۂpڡG_ʽA~C-S_UrCl4$IlAdxa$}3e2_r̸a]l]#M j;!S&/Π5g9PuS' ؋xpkCY[}_ u)H#ƫ`+r,./h<6̵A Rqu˰}t۶3^q6,rpz]^!1)≠x&7SџK_" q@XRILU~zâѹrJ,5,:qm',pa*Qϴ İ篕h[\-Kt9J_APtYv{٤V$@j2O<^ypMɉt@j᪪$g{?eyalIPKLvEiO-,6-gBnkG6J$r j_ CU|Mi_ktQ!MaTDDZl}QNiK*6لPYAz}W*5mKn9ΞLLÆ$s0μCLJYٖ>xyҳL@~%P_AK4G42wQYF qb0:z^P)jO1`G_Q.-Ĕ$3e NANkA)Y N;]Mjx~ccA r+$ǽȃQIYOM69/&à%dWROGOKaL"B[UQpk~aO >F"`}K $d;V溂5_"wGX`xlg-h]E;N'gUqr9բXEo,u{U!?y5W:c M*pfH7jXj#STSE'M DX綈{cf]|sVr-;Ut.zedRM0+!n=gdi1RI1e9-l`j[ ]ꡥH5R/.lPRlԋc%dOa(me;CGy"ڤ b+1l-0SIlyrIz-~ܠ! L@mIYPEewzyh ̓{T%殾%eMY:&D04aSn2UôQnlB2DPBʩH I&1SLq' [%1@%z] @8$5:24k63gC^i_fXAjP5KR)褕Ӡ^򀫌ZyA~*D;AvFmy =C<,o1Vt4-]H,Js逮a.֐K.-"ol+8)5AqvI+{D}X32ND3b+AK;قF@){vK Ab\R#ܮf$lM^bD e(+əHGzٵnV:r BM2*Ji1/ٶ >w"]y `;l7&2.[ ,Q#rI(4Y8t!^p;aIvPPSF!Ü*|9R+ui}j(p:;"2t@ wjW+?|@ՒXWn \KB3f@Tw `) >_4!|6 qD9(Bw0vB;&8ZYQ_YM%Qp堆&m&:&}Qe^jwoPH/w z @~usi{VQ?~fNҥBQ.m[{';ey)!7=E{qMZ(]ص,zWN!BZD{^Mh"쎗q2~o_!0z2Bx@P]C$ ˀ/.y C}0% oGYn>hZ '.A1r<_Nnxhf2sho'S> UUA%P'r.k WI3++?B+ DWXx~M-'yU|jP𣏋]r?UbgzQk  8 Ԇn#낂Yj`6Por6zD]/%tK.B&uW7{uwN}+Wy/ŋ*C[Npxc7E;5;kWTU[=O^n/Hྖ^U҉-dg%6.1@m<疭H *3aj!Z.$!T5u1"_kte6]7pia]W8d -ULkD0<, AK%;M`US 4% ɰ p=>蚽nՍ6%`Zx 2mGր+N99%Jk F=X.iSLY?}ui p+}5 ӥpA eÄ nO7p ] \$mpzIo^i_<Eq ժ䀣%k2Nø'\?&&BZ5bpcr][62=^1/?MD}Uvw:\E?V Kbns܁9E'!3@ٮW'+vjZ`.ԉq!qF F*zjo@ljbz#bbrW\9V2MFæ3TbsV3& ;@).zA7GPķAĒh#J? zCɒRWu,v\*Q޶ Dcзpzᮺ7:B>.3{#' ~o d6)*F=Dt A05gojN0' [0pXQ d. S[N*X5rMlgf%Ji~m3~vmUĩ3aI'$}T/mAZcePQISIz;TLP[V٭&$:+MGuM%? ײR.$ۑ@t-2Twz{c3:;=nZ 12Y"/hAV1U(=o< ~ %=G"48%/(Xke<ɚ.R[)0ޚ,u ek H.h+q7}fk ]Yeȧ&G1ZjkتDc2-2{ߏТ` ]f37ʄsHhjz͎Pk A؆}BY#ȿ`%Wx>@sJ`dQ_uwsUW_rpyVJ6*{0sLu9A.8CV0aaZKEu;~D{VE,ŰQZd |y={ ǫ7MJK3kz6Y.cUG?g#~X+P,` 0·lOHq2NJD?&ˬY$|.CiNIdJ>:AGB#邞N#z2Dd#{{{UI*j ,Ý7CׅoIHKr!d̢cZdOh-0?P&- jpIFwGW(y?QiMԬkg8ძ%v{CB"8ZD 4ps08WLş 62jZiwm@Q Bweo`Q>>Ej 8ƨbcyY@j5 1DeN-b9ţr6۶W}]x18eؒ# x+|[ŋbAL0SXd n|T7\7f.-(G&&4Ū*5]efa|RY*Itbx,l7"c"p.̂Own' S`f.1.DD`P/EOƞ PB(H*B8 OLiAȋk~`mۡr8T(VŠ?=6*] MZ~`P.H"@HEgi" 0xZ+G;)ry ;*l'f/ۓxkOeCѝ2Fy[FL#'w{Q,>G;g]UTrO5DWfrKr#_m5ï;&^o^VC)VgIPrV{bOSþ(T'rjS'v>{{܌gN)xopl=rj&D%5t̠3ƚœY$D!0 B )`|!L@cSΙ9nGqUҞ 3`\hsƾU\7 ‘H"jb4[*ņ8YlA]ǒ#8x:'u?yo ^ՆY{6~N#!t\LPE̤7VYM;t$bw&+*iapALISJ9W`mUwk_NCXunU/oh(ㄅ LƽbD?_è[RAO^ L##J U.A0 f:=ɞ%qS[[B!-.3[7C#eVY#Ł%؆M pDև r >ďv I>Xk;V-(>g#3^#vH,ԶrFGȔK A2/^]Uv.?!p/?̸V2ņ>j_C pR&IV7|gѮJc5dB$F̴L e4q0xjFdK3rLJ !(dh 4SpA_*B"Н{܉{҇#0ð ".'_)]~Yn -Ƥ.B? Rb_#"'bb^!|/! 7  !~n0P (JuCXkWC LwQ':i- u[MMF!G6 *MY>(mJzNU·olw5e=# ~SXdU?(2?$#{27!?F@>/PN -`T$m@r *?m5Nz8UmR5Zqz{˝sUnkWtMr.DKEeͥܿ)|*Oj~?\o\v <7Cu,bԎ0!F,_! ^1LIKTUQW+f0OjMM]-V1E-C[ qc:`nl ݷf̏2%EHʨ9J H֗7"#< aQ< AǽnUʚtfvR$5VjU%za.5je]^X/4C,4jZ!fcXQIǨST&svK :,̏gudsdJ :ov{o忥D:;I90-Gϥ{J֬$.+e,U'0Ʒ>1yg:a :6P%M"k*Af g!Blhv|bLnp ǟ?IG0l9ƭyrh^K%gݚ^nm%fŹcvXi^)Kha+0kxͼ+Q4Xޗ IÂ9xk?yl0K*c@i yzz=\f5]+բ&ʨ??A5#"6nS[ApdM56ocxrV)ׇeQ;N=,(Mפmf*ERpp9'@*ILM[i΄c?Y=d?fr髶9{[D dH"[EZϺ|>ڱyv+/>o^y-Xx&kh`׾D# aEN+[cGހg6̞]F4ή9jK^V?@\6^!ʑIY%r uCǽ@8{ u dZ:FJϮ*$郢OFjբh$~JNV28u))l>β<ܰQ01,_8Pt\S9Bry fBr6,gB;}烫6Iwkc1`^t>kn찲WuCKuL:4V\RСV ~<uX[*+4mI~D(*-aq ֢i"/VCe0D2Z??@%B_J K~(腸NK'V#~Hf  ڽjvaV H#AI,sqjtr\^0`1&YlSS~(L U'MٰGSC˪33[4*Q`Cz[3q_bWC$g*r^AzϬ/ "%Y>rIS]9HIEZ\A5SJmK:!G::7=zS:;1aX<]D)sB$p)+;եDK@}ᳶ!Də #|4" pBCtZ-iju̖ V`GFE_cKjS-+1* ZjNplі}}g FƗ28pRf!T7\u]<֝jzi֘UI>![ˈJ>CrJeSw :TY:UlH2ɕbl/"[ tGӇ|ea hdAM5U7s#GpͨMuT*3m\A-C̳s;=2^7 zU'ئVCSk㭠'4>n#1BK΃sphZ Cqf$v7QXjeJkޗgYvKhup]G4LdJ_[ ץQo@?]!DڦI>x@adoqP LէPzsZB\/$-3x *М8C/ mӱ$7]lV&B.lE ubdfݏSAYO@&eG39n֣ G !wYNR/o1] \xfae>MR\C@ [`MaBypv|Y|Җgm7H wtl.KԾWI9ǗYHi!hFJW-09OFuH~(71w곷1&&Z W3$X/sc, [|21Mg J &IWrooe/ͺ)B"@PCE;,|bD-_,u ';}g< )5_.a7q&̍y81ճكorZ/Mjn81Z@WWn@Y>"L%gD-"GLi-DGzB=`A)"wCg(|~f4 `=}HF ^UUCzHNcuj!+ᢶR+Z/:Ki'ιYѐLO%M=/<~vGHǰ.s j8y$F_\!~<8፟lcPr2uMd5 ZF`! }"ZBtN+}ߟD貞XމwZ a3%dl3ΗfZ .L5`0c8 A_rEJ)F@+ںuo.SRA ? *M#y윀ےM@3HW{Ao#^Fez[Ew0y(Uα[EEPD@wMNnd4H.%'fdtrJ9{E8R+ \r8fcy.ޢܕ`dHB1랬Ү3D-`J J8hγ!n+K "]mGհS_Kt@H8k6acK (RQEO XaIګ5 mH72{6!DdPL>bZT';=v18$z gGƢ"BU\T,ƚwH?xOpt R֦¬%i`aDZ%( Zt32Ra `a5ŝ*<7=،*֦N2dLOwu`>h!E *N 9 bS &zSpz$L|B/QALmT w#s߂ظ ;u!l;\#>*7y^_Cyzθ)UaI EVN}m'CGv#U} Fҙ;̉oV:`We~|<z-y_3i#.#"6 X݂!dg++ȏJH[[vFg!s,LTmIĶJOfaF@љ^7 W#>P}"VlS~Vv m#ߧbIrJʣtG^M EG gBg+E>m;6슪 >>USQ >[_Ț1^xZHK!?I>4 Eg0~}2 aҿ2z,٪L,ي~WיIC؋YOqQ̞?GDUuTm*S0/lJ'5O[<)serI WvM4W3OV@СXf;bԜ$oSpBh_t0m/=tt]E еޖbE_Ij ٤PYvVNX4/aL|xFWW ?'|4tPf <*`.ӗBy3c$&ZfFW7\H_v8I)'YT-iwCsF/WqĴiSopҐEui \IܮUU hbü~gu=y? #ó?۸\|Ps+2,]i]8TVWh"G"9y5H 1vC>kt^$QWۼUj_3O{uxZXxhR 9` 7$d Pw+I_KKu(]Uv.M@B F@dp>d MT817$Ama3kvxD/8lwp,'f{Єkx6X<~ B׈ oͧѡ@LҪzLnC;]g[u-!UA76bhB޹]97 ڄlSD(6L 1" D3x5;ēsӫ(T컵!Q:iGyCCraĸ|eww\l𼝜X#dzYU@xއ1< _]'6, 8>K忝mazk 1ޗb߹DW2X=U%<ֹpHc4dY'v-;įdAgjCl.`sVXe Zq}NQ-ٜtYڿ5;)ʭӵ/O]$V{w\95eEjl[4-iѱTu3R.#]+e@H2ի2ZԱQWbL-r~W@&5ο \2yY[ LfĥBc)=k kh 22ސ2|k_9c1fb{8K2NEy!/* =wM`5fEs&ti{p˛Rܞ_HRz9SmTdjq qQ7b< Ys` /afn\|J:#jqEaCz@ADi}UTGJŇe84pI-iF_$TTe=I2oaٟ˺MLRCb,RN L%_`C, ӗ-#9,d^#uRh$6?a:v9<DC{"#S=O$ԪT%*MrrohAzU6y'P?2$@l-1&QBHGӇ1OL:@V}quqGSPWokgp}Eῄ*^Se>uD3/ȫń1Kgi52a}:{ mԈ3MTښBM>WC٬Au2WnaK GhM:IH;0eC"0uXMM#q^^ѕo,Mh \ wOd{KwJdQT_ǸE{8y~Sso`YǎM+td=\c[b tr&d`ݙκ).NaREޟ‹zIkRJ\) `$0(dG*oP/6{xf*:߭3Sjpl PFܩ?XM0qԊ?DuMHawneY7Fַꭜ[E%4c0/Z;(q`@:Amef+aFShxC*xLbQZOQ1arX_B5\GFqKˈo`) 62*BP vΥV&|\y+SF,s6U@)`eY YzG^T!,{0Ə H ΀(k %u4F:(u_OUxyRMf;`WgZEM{Cu>ߓY qʺ"EcϺSv&`y+ʣPV׷:/禀GH}rBR;iJG,hfdZ.˩O]_wGBe mA׀E UiCm'B~7JFN`, ^&EJ۾Po6^.^Hkh7PZX(7%QU>K~0pW*>7EdDuZt[jao]7v,A]w΂H|,uَJ-Q [lNW4흖``ro0+3r ǚ#m+'|pDp?"LR2{~60є cYJ[RKݧ㫜, w[ $csG7dx&Y!g J:§odب-7ʺg9x3"&[D (pbēI͟hJoc49. opu̜3\BnÔkyq[N wdwK}; 6@/ؓ]._iSB r/4NӕGM-qmO}aq.<\sFbCC<^}MgS4w6䯑7\r兙:c"`YF[ƒ,<1c('r>"Xp{7ILv$$‰鮝xCI5m1G8<%(}C5rN P2_A~cgEM^v)}p $"7`1iXA :B /ҹH0FaCΔ}?bam÷p)}%R.q}>f]^kÓ])U b/ xE{O_&U$/>RO,esѫ'<=pl[Fi; a'1AoܻzֱwC eԳ0 _'2 iOB2oxJϲJ*zoi=~g#8ņ2c36-z|T ;ɥQl(W:7DoJz؏4 "#p+/wQٌm<0U,l \z5 N&WX19V_ e5{y p3ƺ< ZHdym.f /BY"vl%#l">-Y DpGjO6)Wݮ(y,` +@Cu|bjN+x,oS#Z);R(!xw)"b#N Q/6ssa\fePcʵx{UdP3њH(&XX9%1Y?;8T%鹽.S>n;}\b"=9xT3/6Zg7d S7rbGޟk&yv7/FDBpa4R^Rcaet^Y7Q_%VS҇Bwer txƕr~AyRA1(B+;gG6O7SƦ'IP۵S5)˪KLm8]ΧCBQtsҾoFUB@^V!pdh䞗0cH ]G` G2yv9z#G#9kZRR+f>X9IW$p1ѻB'JsZ5HwehLW(n6/@6K^VJA1.gC71SDiGpEΚP&@O5/%_aX-;ZFSͱO?5퐟/:UҁS>l,t-;4~(p䧈潲1~1ry̰&9 l opbaƣ&NG"O%h$ 9 2x-IjPf.mԁ`rJgrPBo*߽{?b`?=;hI%]5؇Y'uĚY4ȿvh|64he\!α NúMDhәl2رlMa*7-G>}8q"VdH&K澛6L/#jWdT^,:Wk7 j^|2o2#G uInPR:O.=hL"!KM՘P9a_>Heܱ#ȂX]$k|KTZ6쭚@k%Jc[X+}Tw*7\lE|vewH`rwTA :>v k<)x ,oi`&u:B΄?k{a[Jl,spUBIJz2w0!tl[wypUX*fd~}"ԔegZNv3bG5I:WU@ZcfkNݱ8\z#)+C$2slO$7 8? ?9ѥj+ԊFh+(EjED/Cg:הlip/P3.؊03cP8zن3잩C"Dnӻ8eBƽy-b0sz$Q[k8קF>oS\> !)y s1熓J䄒7 E{쬽e-O`A}ڢw<: jeƀJ)pS_߄x^gIMX_ШlyRVw7ʗABcU}a{c; Τ?Ga6yś#`76\mb/$Y/xQʜ1p"rМilJၨgqwMkL74l9**d?F'yE JBH:FQmr`W*!C7j+XZ_A Mlx%t}=$Ere _u'Qϳ*.Co&-IyM% S]>Ge}X=cvh ɡx-+$y{M Otx4$aƾi1)(C} S'E =:'V?ߐ` f}-uc6TC+( tʆِH<}/Ǣ̾(mQpniՕ/KY_ULޘ۰JD(ԋ񺟨)RYf,K}}T*S,@3( No*V-ռu:.I(4sqLR|M伿(-Pg@~59xVk>4% JAA٩2&(@I RU | =A0!H Dm@ go$PkS%Kff "c~5IKI5utJ0# !%zCL f,YB ӜJX:fPhN\Pm55(9ԷwWqi0-w# 2%PT:XrcHvo-3בpxՀfXU(B6>j7$o!Y> @uoVqloPFN)^ MoJ,`xu(ICP8HlC{9ܖW%?,ehf6[+aF5 jx4: 0 !o[Ijͨ.(& RZ6e3#]i7L%PC- Pw.+*sX$Y\C-(:ueTҊ';={!(搒n]Ғˮv[B%-pE"5fGߌ]8iIt66l+d});&Tm@tUqtˊw"L0*7j{$bVgźܰ-L 8l>kFyT7H4z]~[m#XȊ8%ʎ^h:ڗU|JDg*L  '.͵0[|YQ_ݽ<tTgozDUyRQm$\c)IwX , ]Jd$=LTQa PЅcj..]C}@+o<'7EM=@U:PdhփǓKܹg[At*OEwp E9jkZlj b)3%~G^RDD֪f?[NJ탏_7B6پxGΠ]ԻyM_Gs> Jn"N(=K8`$ٹ68BCF|۠_X"F̱FKuAT/+k3YPUTybv!=, TCv.n} ݤïc7$7tPp[m"$H?\&9;.)XV ,gTlP/ hR2crT#LIJMFn){VjYRVtwjց2T#xyع케ga;K|*,a1F2_׏ O6: Hf/8`m'_56F#Q6=^%;+fwX x%9dq0h3aaJ}yG~TVR ",ڷA&O)Q+$RH87*3QK .5mabuh{eJAʚ BaOUC:]+C@ԟq gl^=n`/&lEY<-@\7$k"s$K g=BظEpR=1%O4)2LBTU)g-'> GpƟJ,AujtopxIVײh>ݦG0^8tJ/A,E u*,;M[Y,F(ƥ IRhssHݎG$$XxexZ CK,C i^<_vT!hl41JF" eDɗJ1σ'A|,$vMxzn0)_'ȏgQٱͭbk,*-Ku@zZf?@ܛaTV]( 3C8l)i=ͷ%ktCQzqTofIȑ*c`T'cnV]zqu4@G6 Yӳ!7^\\x uG tYY #LeM2KagA5u/H3l/>H'&FH3E޲j촟Ug3m`˨Sݴk !ډR[$l$1Lsڤ ^C'IT; TQ;1~$DŽ_63On4ſb0cfkN?}d,'7/=⭩4DvYHdY,(00b8YsZjL^ {$nX-0}0k0}$]m3:0:UF2 zbiެ8 yI=fw$92WN2lMj ]*yJ~  )M }_{r~ʢR`RК SUvq)MρE< bL۩;>_*tRogwqXՒ(+J{9z%BlG7i1bP[,nR0:žgY0`ޤʫ9Im_ȁw섣| M U,y֧iũ<`l3ۧlhC\W^t!-jgo\ϡh"葢̴3H2eNx\X+烥 J)A-ފv"9'R'{y dƾp<FS&O368[mQkj&{ƋͺL[Ek3 vK N9oj\= ͂qˉ/-D1{0!_\;CZ7rZqeIɫ]5#,_`)K{f VNeY16ovIS-/*Ȃ^`mGzABxPlV8^g'X޽9vtd\WԢz3e3qEBPFx |@X#[E7FF\*Q1}E s}崥0VrO[vV[F%!I}Z{"fmpYC ''}q!?ZO&{ܪY֏D.<4s7;x-sԫ8d&4Vt"n6v'N*r҅}u&}" ؘſ= lnOvCzVuygF5+uB$FWI]\׀%;%=龽EiOS"l H#8cǢbgest0@u;H2.գЈ IE4v{52-42Aޤ~NSDpDoKS=Ø?2x8tl6|%#f RQMEB/֮"K)('SLcv" v"RT.Q~0u> Ar2{G+N9ZO}${fHf'B۾TTgK[-{/6(W*R6\uw-@etqԘ^8ƈQqLz`Ib/e t<}b9q$~@Jm;HU+MFK j}~LO8pmdS^ջJ_ ?piCPPFk\#oWTQi_T3 p2~>!{͡1l}? ^f'sL78 >aC#8o4VK4^NnωУtEKI Ԙqd7.ʙeP|Nw"/)1{/lPW6gH+%:Ͱ-%tG>4Ghu#PRT\Oك{2 IRhZ Q7[RC`F0 -^v1D%zU;1NA ʐ66FJ'nh4׋`Sd۞Z#y̦SX|˻ԛNB*o6[dי\<5z?t Ԁ4vňg}rhsl%1R_j LT&J~U#tVhVY.Qvq`u,x%bZD_:u҉ޝ}+p0UƇ6]dˈ9At!1K;>i-OvrqA`8brU)W#B#[p J4|Yq5̋nTNH -!q䪺zʛ߯3/7FM`LbĈXCߵVLK`,aV7$ɐ;wbԿ)pP-@0 eÃYIS\#rq[6/!0 j/W۳w,߯&*\&oSE% 1ݒMddfwzl.?^!nՓ閎IJf޳MPS#C~'h˙{c jBtQ`i4Qbփ+XS˭_ߴo~c4I!?p/Z4'Ou ,IŠ^䘹\Cek+7K 3yq.-2xvbqfM$*0͙"@ M>KJU+{ w$Dm)C @7M(fR?5C ssf;MtĤbctݭ o#2Z;:n:U(34E= t[PE %n0':&¬ x%z3Y7✣ om_ڵ2DmѽtC-N8JϋyˣU0e[{I>WXtdDWќPt@O9j =S-ysl&Rɿ@X[f=\hXCf Ǝ~mof Fl*  [80VL_νI|v9@r=,LR#!dы}#wUǜ!'z2JHvRaiefi !!JLUY Fy4)hah xа4T^?PVx dK1U_/55 -=VM/$TQ?9Lw27j-t(]摦UncRKL)C+%Pqc$@ccz!{vlreϔi}EFUx4aNXGh>mZŘmv7 hsY:F܇^):r쫑ϳ3P jQpf0TUuw֐GUiK\)/IISg(Y .bPg4ƴF@ Ϟ@xk&Rt2϶o Ej]洂Ϫ7V>qdR".>d,@v[?&-&{f'g VO9w71V\+ٸ> zo9K>_;b IM30< |S$ζ -a;#{jU?;Q6<놟'MP[c{dצ,Za'sHQl HY 1 .\y=~0m6:I@v8x ;!\B54b q0iO ]$?a#_,s >ݹ֝53CXWb=;Fa:*c~l<ᒴ>Nߥ-v)r`O Y{̀Ç_@CB u{}S1}W^؏"L(J#L".1$ ap9q-Zm yp|IjآP؉̺1o 6d0nYdc&YJڀ C(D5[Vi?⡶*=f{~h _FX@2 Xkb\J¹y7yCLMx5|ܽKEd{(p4%]P&_H+PVCQkq=(ql هDe(RHQD)%8}²".,\ %ĽVfbCrFxsA޷ϣ\7<6nVCKݟl 㜍 PHy޸Y9srt^-SMHJV1zdk~iv9 OuN{o{[fR7sF!̿6TrYPM`~]ة7I6uʅpb8@̀O冉%xŭwWڵU6 q=8@.}_zilju{110^g)?^I|.>|_~s|Lbw]@HAOnqwf,E3ZW )U Q+Sl,_- gJ"қ0Q{x.3,N_;DYtIw/0Y|^ nh(\5!'0 (.i1yI'cˉ0"J"=` ؉v86JϋA=q~oӹWyëc+^zihk {\Bǿ0lnz}Wϱ]{|J  ԡ/_#´"V#Z<УmZfx#(c? _J,^4h xon 0 sx 3_'Lvjo..`\,Se )"4/ιYwteHSp8K7pÚ+rWFZ'FUoH|oqY=LtbPHhZƳ1}Y;\N X/2o|ֹzQv#'DLx9- ukи!ig! 2c{ ݉nxz^b'd /G0abyR맰s`NZ09;]bRb`?( }Cb`渚eN8 EaW+T8ύ|iIu MrND\.!3lّ*,>׳>Ҷp!{=,#!ě^T!LX]/:~I:&,~l3[͊7_WzHq},WmJ2W ,Y_ѯ,(rpZE{Z߭xϱm<w`vVGZhx+-y+ٞŁZ*O$޵a~&vMuL ݽ#}!V*x&"?.jKХTDKs&F2igϦ*v544w&7jLx#LXqU(wVgFc9+#AmѤ7sR:"5 7FV'cy歅Vjzl)s vT}u;֕Lkse }!zܫkD,/Spqs1ON5 Yp9_ /tR6![>K74u1d&FJFX⽛8!upWd3z5h#i5bQ_+ em27qIvGIePrSjaT۰oE/*7)p+9vu||B|x{u-gPMk!̷eeXB[$ dq;-H;$O:H9R[]{UI횃Ai4{痙mEJpq5A]e:}l2 ̘E 3v\Vˆk%9$13*]c44iT+gE On(:V`(ť'Aa,-;wU <9<BE<&EvkŸ Hْ߸"S3F25L<,K'C/p<@3 1?4#/C!N}H![*,9]QVa, 45@_c~5$Qp7/*VDI@{ Xi+"q72p&4?(gPˬ}MF*~`@,Ll(F<'D9O?Lti9oi= ٗ^YWLIb@ 0쪕TjOIR&ǜJh-iЎD}7%X`"2OetCi}ycd& 1QP 6]*_ }̯ {(`=w>ݽ)UK}8$UtL\REjy% v~`\hYkf]c-P.p]Cy .`O"QPwa ;pG~J w?2;g rUQ #0vvjp>0V-*^M/|& -@" [ɋkC:q7N{[0׬-2;4Tꘄ9wzckG.ysiwnvscEАwob[S!QmU}sl H4U<(#]hAx262OΧ<31ӗT rkC5ȧėBQߟЅtl)@3 Mw;Σ;r 'l˿!(cIL.4ePN gɭ$/soΗ'J0<}}$;ܝ$F#CR zv`i)3vtdiַJGfI9*czPx4 ,IOJzy#ׅ4I|ܻG2b)Q*o~Wm}ؕ{[,셈@=JU mR8Д~&r@VL\+"hƸVT hQ?s`_c:8AbQ1:*E]x|ަdGbH)/RuoYP jM~e$n|t ?y~e9ݯve$jQ{V#,iSWINl;m# |Ţ'ߞZcŊK ,S/U&;x2hP[iEHo,tNW6,q ̌/#U5xxpCDĊj~ lP Z0vÇչcF`dLM| Pj|%mTJX-",k9 oRDТկ>>t[J9J@""qO#d%ʌ}x.N.@su:.1M)9=,q;<7p$B>" gB |wHv1]x,ӪW_jMmiY).Wٙ0BN뗮6l1&.}쐀RM=Qw?ЩwG^`ŋ g ¦_^m!`g[DvӁ{޵Ty?;f#@[rm|5yX՗ u8[y:,]8ƎB fTph-IC,zJv(=KKuv+,MحVc0tybBчo5Yw+CiN!pq4l(\}Sl1F Aө&<ҬU`?Q2)O`Щhshvd}@S>q4Ýn#Ō< >/|~2G켄 !kޅAt.{.*$vJ]nR*\M6|gˇ ?NjK"`Z_`ֿJ !bFϾ!oaN9.25nT]๙Jcr₌cͼ*T-Fмw k( *Hr;~ƕ= XCWqv81z{ē g5h0./LbMD+kO{tjo븋$ Sad݂,d'mF;&#zGYIf2?|^)=t=ARy*H'9@Wnm#hA5JI0++?١fڞ0([-{P L.A޹({A$^thsU۵o 30WA6䫴K=*uxWP(a ?-l3srtB C!pi60pI[]š̎ N9 TstrSzP2qky Xx8nehD$M;Rڔ,PquP^16'ԗAPJpag5v[y뿳vF)F~h3wGl-V  [=89AP5wLe[?%p=Zaf5Axqch%g9HR `<|ůoQzCSr8JE|@F1;j_Z6Pc4Ƞ_sr~@HiEpo=N@(&ggL&(Ln qoHf|FwxHGl?ԝUv~w4l ʽ{,#D^Y-8I'6Ɨ1>d0 */WD{G93ߩ ;mJZ{?Ko6UmKŢ*oÝ% )y`I ?lvvUtقˎ5ju{?e/+7#O_>*e;{=~4<@!M2bi]<&;}aR_ET5@e(;I׫s-RKEᬮ|\dW&?FhG/] 2?gO?mxbM)WXu~syV1I>,׌ izPsD6|8};{Oeڐ R3[uV5gd8`A[O0Gu$T֋گ1@ި͍*;G;nUn>lʛr?^1gNM4sק&n. O&lf5qB,P?^\Uf{֤cRMN,Ga# s*4[^5<61-aptLϦxǷy7][xjTO1(x zhRikV?cFލ^XDba jqcykێ?JNBx7tn+ arB^A J>ݍ՘6bLx)n x%{3s>f9-b֘]QXz-^LiuA-5G8<׹|+屺|%QS4#K* "fk,<}%gҁq.j #%T 9k I0łպ4o&9 !RWѓ\Oz@p/؀o .!ǐY3t_r=:yB ͚ϾvMxu홽 \$j&d'&UD Ydu :dT=u0i[ǁU%` +M.Z^w[OZ^uK./|s%Yz*@cqf,"ҡ1:de?6\ϗ'C3f)vT| bpB}Kftidzx}&o:)b Lj[V3UP R`N{%L!|~[mjo<6 YjDg~mcG0j@Dg0y6ߙ{<Jv$pʙ{O/cK27ty-4a*$wGN |]{ 8 ÈvZ37TfٮdǍGYI̾zP\;9TئIA"x<[?VO03-ݩ]){E6)(*ٱE VdYN2ډwFu#&w=ZT?GyvȆwrGoL:Ϡeb|wa"o MUw%AղkNh֟>Al&@(4VyZA;`1B8w:I5ZWVJ;%IjR- tZr0API<¦oRU٘Dd#h\w될 #/qy&IeŤ@/g`g6tWenZYC-O'M^jȈ>jgMIאWɰ =+U46a; zWEH5qc楑V^<1ɲ[6L0N*'޷ђ4+=0晗l"%_tx#1}Oҟ|r$v:: \)є(h(I9z _` ЅQ J;wRd*3MON862{&2$Q)7rs&K7rqH\?B?wJ\*4B XJ鉍KX nx 6cR:WT 8yh7 w ckgd`0^3f<  kvC7[G_='7xO(@ _Uo$K^f~5|:x%ʵL<&M)ձl 'zxU&d`eI C6K?Ci_I9:"Iz{/CKDxFd[$FCDs+XoyK8Y k^F?MÞGe0iZ^$Lcw NRrH%"* M9嚃uyδ40h$4'H.7.~@Vxi^_6rc!-;gs}X+݃=uplzϽK|FCMA Oc<>!5»b)]}$ ޕ֟P rdڌl3F:md!mhLsAM#2&眎AupnQCk"z% "0O[Ljj3UzʜXT(\zU hآk}6䬽r_q_2=<# Pj.TLiY\c|s u8^+- ![~~k騎r,>w8Gz-;?Mȫ{G"?Cst!M̻nς?[9xI+KRjfؐK%t{;Be}!( )'($/%HdHP' Lwk5z}1~Kq i! ioҵb^0Ҡ~ĉpHL&…PW`I&#fRF\VZz3JAji1v)x9#v 6bl'3 įnb޻`_+jKfxQ#T՗1j%vil7)6`"/&FEZkŇH&#2UJ1&qO͂)t&F&Ě<[ _5 ޤ*2BS( mzܔΎvĕK[ Z|םߠ$ Ӭ\ 4JeS5'?6]J7TmY_9<@ <)l)TcjjMRqQ>WHegK`R E9NlGBտsoeQA-jĵUUxz1~@жv%(өV оbĬ+vj͋ w_} , 'Lrg^KoJ@D}4yQk S'3_'L"EWaڳiK() zΓY* !W]~"YlW Ed%+軻Km&ٽVU}+J+JשWO{ogZ{u{/_L_Ze.os=kzL[Տz=į/Nԛꗾ2!_C{zk[=EkB޷=j_2WWn} =z{7zlޕk oVc*ްx1^_Ro_{e寧:v_[{۾OC 5_i^==Ⴏk{Bz^D][ղtqwhew_s~ _R\۽ݾ^?w}ez2#ޕޥzιv^;;r^5ǺU}go{_Rw|ׄ׷M{ +vw.ҽ{޴%/$!{gްpxOo"{ľ^ޢ磮xBW=sRzҾѶ}}Q}r]M+4 ==}z" /z}!^{aW&W4][)]n\^_ QzkzhUzzz{{-Sz]路\;_wKRm+uږᬍ[+bevK ou]4ksvrnki&]kwm&.ֵ-%u}7mQޝv]Z^7lݣ}/uF's%ܕEoa/C^sڗj\ {{۞ ދ8wzzN;*nxfxhd^/O[Ҡ%Wҷ/‡^@Bu{EJCJzޅxF {{+kRJ墨!Ǟ~!Uu0oY}Z xHp_ß ^s_S/m|zB};k=9ݱ%}ﮫ?"_}~I_DWvU}cwW=rX/X}}G^_J{ط 랪_oCmЎS}/z{_p`"wվ_^އڷu g[{/zMz.DzcwW rǽ z/OV_]\޻S]zJ=}5ӗe} k}"oUBzPWum}^s\E}Ybmd=;_d{}{L_FK5+޸ ޟ=/{;+u*{ww}/ާٗ?ޟoyxwX{}?+ߕ/^^- +\O]C[ te}_J|}}rɛI{xrx3j}{&JO%{_B{׾k_ XW~6}5e^އתR__{;( +֫/U+ozN7$ޣoz_Vu-xG0oVe|磯xfl|U_ Z8wk+=5֘UxJ'9,"B_Ga۵]ڕ{^kʔ'nmZ/Pz-엳u}0w}:}z~{BOuKi ;0[髳/PsWrW_Dߠ5}1z{.zzZYnz} ܶ}ǽ5^5}GNUOz'ۭ+vЋޠ {뾾ޞ_3pt vI2.{^za.Zs&@8}"KwHxN7/7U{绽ތ{o{^^"$߽+=g{6o}gQ_J_Ov7Clw%zӎuWG{ޝ d}R{ O_[C7]젾ԟ}4Zov޵Fe]Q}ޗt H7]/LgotTmov|Bwba uGz{ҫn  { 0W{#_pmW Afkz{w;}?|$/{_*p|!e}'_jԟCWd 0?%~^CO|Ztb{K.iu6Kp/<" n^/0^a!  Cgߺkub@W^ K⯠=Uo[}㾫 *س83؃))`:/a%fUPr7"bF9pEkvo>iA'5I6G頺|SʚfB̈́n::!dK2]k F ޜץOsV04]KHEI!%SMXA h*}֜Y2*Sو8Gt}^ M1Q%%le\ U9rWCP߁9{/Hdܖ E.w2{g6>3Saȉ[.҈R,5\?61s&[Q=k7ޫKQjJE#܄kQ3;p:h.IT(SMܞD&'-jjEPLR*PyvQWactL.O}#[Plp@gJ@K5 ȓ (R8ZW{b=a4͖d::|T@1JL} oZH}4;ήJ[C1O鐦[Sȝ\0`ؒZwHiH/T*%Zwp pU+IcvEah3A2,?~HT"{o^"/K+%~PЩ`~SI?ݬA}d*YW-3&# (KKYi~ jO3.=rzp1Mdtьxa:eJ^TܓӀ}-ԋ|JT#;'d4,>D$,{!FvŹVyeE* qƿ!4;N<d-.1W5SbPB+ZCO@qikaHVSz7DukZ lYj_g!lPg*3< T7Ak{e=h#cEmZ VeCj#~YV\GWr~,nûP #?&HT E`K^dN.fpu_d5DU |ͱQsiFCpa AH@d wO@RbvMu(*:s\lr]U=nfb;&ācNTε ^k_oHt7&zW4BdSEN?saŭaϪ.;1)#$m2yP88ѕQufo %$%a7&>b*/repWp7-=ͦ΂0\EG/xrcaf{m8P>#mZ\aS/}^P>'eE3S &!SY{?@)8/♖q g I47BKw+йڤGs˳r̵2VUb ~aS@"ʭI2SHtTa{ " 3eN~\b߬%~ rk#$Qz!,IN'%w^]ȕMgtȟ -m`;QXf=6.ab?I_&EQc9qs"4ER@4aR & +Ѿ"EFʘcbCKƍ"J(hu۰n` %NX M驩A~r W,RP=' ^Qda4DjԱb/ø=pNKΤPTXe'?_Mu\3bjCYUGe-{(Kw| a.q\ c}[Xwa΢XLJ,{bRw2_fy̓t_r- y/J&C&؏{< .I!PhN30R/=p9Bg$] 7aź8LtBnm4M Nkg"0d(A$륫)P\l +?PɶD8 /},Nhp-,`fI^.l o7ûX/~\<qy䞶޼VQn bZU7۝Q?Y:tDm_RYORG iQ{ BF_.eP&3ADj3v5l8>/J7keg >C5?qσk7q(:Gn MZ CL5DOHxZw )FiPLT^p%}=h8'! AHy64{]9<1*b}T2a ^ vD9{cǸ5w CWũXXV_wSht߈#2$'{O@{"CJ^F_u9fEr9;$zܓ`J}qklت0ϖ^khԸP&}dsO>dt Ji:Cqb9lw5uI>kY\,1#hT/oc?VנڃF^7 Pi=y;60RcMc(<~(1̺R)9.\zc% `9W. eDXfP*eN[a]QxʕXz$/vǻByCPJY Hqhd-N M ϽN|MQ*rQei(ҘIi4mhH7;ɴFzˬc&I/ )*e%8"'D"ifJs4x h7~3 WijryDd!lG4~L)?'2J1;O ۈW+- 3FwQA'c[/WG+w,BE%nf\fo 8ZccJah5Oj)/}t/2jeYoY){ޓ.7}W:D"3EI:3Q^BGsEd}s*Qki@A.YeĵC?9cF!sʼn^̮p̣Anu9Zꘋ/4 ]_&#`/tb!Hm?]9N-_(*.J/^Vg~dj!jjHT1 ,u9>{)t^ ./iD=M3|y%PB׻I}<y 6jHM#ذD.܋K856 ,'!J9ȋ#`7}`EYx4eGv|5^;E6p]bRq&7c#ti#@Qc7aN" BEVMsU3XG)Xom>o:+yɊ2`u$zo!*i@\ēS.AUV,/l2\ LЦ [;Ͼy禗z%`A%"|liLl6 E@2:ya6W^=_ySE1x#R}{sJ۲/w0RQ6waArSJHYz5UT|Y)P&[퓩c8A’/NYF}M}:^xF@+!Jx_z7_G6u8֗[ S_>`]J'd`eׄF {gcmu`kr֯bfhp&M=C]|V0g>0CIzڥ 9=}cO/Clz2ӕޞ4.vȴ7oZpm4U*U)ٻ HDav4'ZVyf*u X}xG,Ψ3Zkvx^d {32[vwtN%| ,>L!W{پg>,oh@֦RyJg7zdbqA_N#Zp3gXoV=oar[|_q+hqWtw(;p(q(h7آrUA.CҒy=d:=hwҗϜ2oJ=jk.4!>%hz  jwU}"$,3WVM2ׅtP67o=A1v9g ;Ghe.ö -do?-<6^V޾y,4KQtlۯu ZI?|AqM~#gO7O aU @A w$s$Q9>:\N oܘצ9:Z90kBg{_\ ".lL, -Օ@;4ds X%b1s<P ^]Ks&Ee|~n52*F3Z| %A] |hM݌Y| $*^T-0HL,;h'YPJ|菾hsHiZRYԗK_a!t>۵͂ >89!'=rDe(h`@X4"1/T]ѿ_Wƽp^`8.p̡km(-)?DSӓ>K@>" ^<oѼ;>(*0{1ZU}9"RDw:lT;`S$lԃt!;'H7)=%oC›!/fU]$Ks]$`\@ FՋk“SgOCP}Zk-Q{Lǐ=&]< '  KT`܏L6캷(KkɾZS][RJodT2jģЀE{ty}XS)Z'v=i@8EƾϏѯ[jc7ߌMo |C`በ"{.jlut?$Yո͟mgd3ŜPiX,c;EsMH(Ic Fc\H9l7AlH)~%.7)ɏDם a :-Q})D񾅍b$V,2G&nhܽb'4b ^t^Nd~L7Qf eҌe|8L{D j]:_ܤ{x0~7O| S9x{dǩn &b$V?2=A4|U4[U9D6֓S(x4g+-I]C<`7/Co%/ AyS tLbF\#O&{(rp.8LB" +bn>[ZEq6T@8WW4؁Yd#w#=\Z<;15 ֘luY 1)JzlKq.Eo7W[' گ?PfaGFpN2rIucy:&C,Go{- ݞ3UӐ@YDH+u `|T]"{73悓Ͻnk +G Ot J*{ /g0D@rNMX@"O-2wC"eʺ R[GtP*' F ?+򖎳TeC쮛 *J̣I?ap 2x|~^}F̚ f;OhFP $MI~ %$m ,ڻ;_u#Tbu%@WQCG!2Фk287ַFVk=5-aH+ڎIu: P ݗDo 1ߖyR+~ On8v/Ļ1Uב蟖HD/x!HF6`;U;G/{N(ǹtcYhT^ʶ6`&K_Rjiɘ!}#;2c$أ?tӎ L ֊&dCBNn ,Q ,ke%, >b~ ow}oo}$6R|'XzPchkJ͸Q;/ 22D&s+%PGrmJvN`LVQm) 怋-\ K~?%CsSxHo(Ï|bt/˃}lcp7h/?#eMƜΙb0QkGkL&֛F d#[9*ˉ.**^.[Gl.,ɛO/SŢ Iάx*?0~P. zU6t΅ơcZ+mU~7֍PRu=մDo\g#]v8 L|jwRvq k>Bp!/S@DNvQbrt}u'nʉY/#3`۵Y~9J3i*D+M.#;8(ÁaڡMhĜDG;b2|#sv+MдX{wȽ >W0xm:@21*yH\ ybtCG}@KpEe7*2lKۡ sVa& ^y 8C3mzl3GjR3*+bˑjnӾjP^뱑*lCѳXU45[]a e^5LPg-=&pNfY2X:ٚoWv%pfG[j9JU 3HnXdmmMV ujps%C]j~+';j@~gŘv˸!9 a<垇z f^2d4YǺ^G1ҿ!(U4 >pkx CB^Ҥ &{%gW6hH_xWoP,f=nUWBHt:d`8`aD& !KMn_/.^c<0#$$@3Dת]+%|Jt#WtEx/%m ^cY9vILDdSEf7GQhxkEz887ĤdTȺU 9>ݕq&d" &"QIM᯽,uOKGXjWw7Zl9 x1to;1D* ]D蟿E(7l6s[ 5@f|+K#6<܂K`_7̻hjr'c9a: 1a? 7]Qem8׳)(հMqeJ_}{+'Zu-m7 Hql1 ߨh:Kp(%7HE{)SUDFk v&ƫ^Em`>~);ӱL\͸>RKZ?;> N~ga+$lKuj[=Dp%bZxz}n=  '9TE4؂~n{CMo7o_H=6 B|Z/&APXat:Y`oW`/h`\qtDβٛM_%)2Bevfz.ei2Rv&. gPZ~(ٻD󺵓  &{v\2Rˇ?s8D-Edfg ȗ`rDDÆNɱҽ Յh-%EEgd)Z.HwB7KjؼJP ՒHv`3xyF:f1E5'.B$p|!-(섐X#bp(~9FFjobx*>!R_raW%$t2Gpa"qWs?(-|pnqx,>pPQE#O\~6(:/O*Xa~bHmF]e><&mAp1NDG#J߽2钀F E=qU8%cD1KS1g/CCgU~Љ:ThLG|Ȓ72=^FO R9xj !9l^Oߛ|xPәᄅ+<"=ҷتI&i$ 91+F6iQ A^L+!jmVNPŎ4J)?Pu ,llEjYLua[s-6(r[BIp0 9`U-3d߫nni*=“}(.4.{,HjN#o =5?'/mƛ]d~.+l&)b}3=y] 4I~y4$/E:U? a$RC2T=1n6,Еy 3f˟  ;1*t_B gul*LHI~)X o=>M6nPd^Ne܅$31_Xު(\\L6Y2}er.vE "bD 0({VgHVLOtzf po5C5W-EnQ簪Y nu꫁I r.8n"*32?40<'4|X&#iye,VӖxf#U|nTNB zH*s4e&!ۭ ׋J|fO; 69jX3㢡 q}5=?Ľd<|U{d0G[by__] tF50Q7XJh3Vo_K Qs;"e;>\Q2`jM : Dog-eEx~: h3fkjF`\6Nf9A!n:1;M8t!A\̮c.@BMO^ Wd+iyDWr[4v+REڎ?)n<_Ran7А~UzOdK#'P9: d ' x2IW2<:=Ih۝/ јl `J-54VdK'wn["_h`7X vvnOiX߽DL݅jhpDM G+CR$yQj)J8;9 꾝x~tb\|Pv_Qsܙ#q&ҭ&nX7 c|Ra`Ӯ|SRnY`1>Biڈ-#wl.^9+2xcS\s"ϼPi%(ŢF6N~N4I_زM>j#2$kgkCuU޲?7T<ӱ =%Z2xY@c!uj$-u:2D3u D\[5< ^p*b6kUFRr.k9O?XNLO+Dӥy@$rk3w-5%J\oV=ISn'M}}8.cF!O}\a2,1=}iBv`va)*dLk ~9:\Z>,v_~ݎ]CׯAV C%%1h{0Osb 4F93Gk,rm*L$iL ro{x¶CFgw+ e\H3/tn_3N\+)Y@՜Hѕ|Fg8v_g[:%@'W7l/ʫm,}έg nz [np8O2e!xaE$+,&$Cm<'Abɻfd,J&~p.tS/  %XDrFT@UWx ldM?Aq2hm28eI+WA E&KOͫp@15ȠG?M25jGk&)N,ZlbاmSz p^LӐsS]0~Rta<\,wbGsDQ[ !0fH\l8c_+ZPWЍ.jc0kF ȭcʨXK=Xa): ,*x?FĶ_Ń6P ov"c)~)\Hߐ ZaR6OZ$Lof|Gx=tcB><eUFD @dSSBCQѱɞm?ϭm`r)*of)jzRuSp5P$"W="a~yBq=O3eTQYٳRKg^<zz%è^pY[M-؟ OC52Gʎ*6G6bw/&uҞ.K:@c1w(J[1]&jrPucVX$tCnu)!]$1wg>y@<2yDjĔOZY3-zܠ3o|ρt^:`ayo/,>bmvKZ0t|8k\IŹVnv߼DB&ߌ8&+z٘CF\Er˺亾c 9?_zLEY¦OO F_(VDDLqÛ{~cSvP?"yGqRDcZ^:+bHڽz](MܡHKITCEDI 6 Cajit-Xb翅|`~D_,8|@&xҤ1UEؓ_5Uo ո4-{cӫGP?hWʿs8:x 2 xo"IyE uoc ̄)Q%g. 30Yn.݊cUK4B^O=G[ܮ`/VU)5u 5V}ҞRg+<8Jӹ=)@'ѝLP(`_P)_}c?h bc_>' F+˃F+F.H`U9'7lMgg~Ɨ7$Hb,87YW“^>5v%6IQ0Y 4^m#.%tƈk #Qqt~-+=_ #8ȫ;7PD]:Y(H((eqʧ!ߵ[7sbspW=&b7#_lrY>ted[0F)Z72~PDJ|Fz8+NL$d8StCM/a!$ܘ}J.j9n}=~%/gx4*{>B5,4~֍è}FkCgd5fϡuvUmFʼ^V hN^=֞UFd:| u.%  6r*7Dmz=zkb{6 ].`Y*!y/m T=>ɏUt8 6@`q;9m;vq-T2?)w-y3y fd,`Q]7@zߝ1)H_yXoHȃmHWi$/P`'=-BykuG :gNUGʗd)Jt7Ūa%+`4g5n(1=CS~!=b#jKXnU1M YLqM0NTЁ@~?C"D1mn/yQӧR.!.Q8Ot99糭dZnԖ,>~eHƅ4:j- Ca 0?=qfi1;<!kJ1ʂ \"Ef+lG@%=#9Iƙ-}+ouiFfE,'MBŰ3?1*r"Ţh ǹ#if $-b孛WS\SGi!ߗ& }^X(Rw†Ue2ki*D6BTj}3"E\0j>ѩS9cs`x7L'iׁa?K.sR&IpH/^츔6蚶at~8>0PZNU58>3Ll09;n-dEzI@i%Pfc2]v~V/F dTgt)ֽ<Η784Z3F7g.ocZU',Zsupg sJZQ +bUZ7~$3zvPrUpZe4*`)7-ˠ Udx|Ҿ*b< P{g=?7O݆4XA_>4XcxE{A5=H_61ZKO!3E\iS}vc]~fd`88͔\JtEa.s ilhSI;e: 3RѪ'9ئPNNjUϒ vC:fVyeٶfhiu 2r7GjkzB9MSkL#SH{Gxy3]lt{xJG`"W RW+t /4}:wwiドrcPWO&k?qA?\b/**}:A 6&]~u.v8<$Ā+2 QMQ{k7iw@Z`).ěIb\JG *B@w#KHOYsu2|'$/-JDIR>p& Gx-rY t':Ő(tBUZ)w  Qo _JЧEW75l&Lz0ti#5>Bz'xB yg>|tH"so mTM`eOEPa=w?њUp|/,l5(ehr!ټ/ߓhaث IkU!{Ja|mғs+|cXcYQɏ:.J,4M̝1띷07sy*'uj6wkLUH] *ڽ6kYs}:{ CR׉XJ~tc")ʺOnnDl!8̥@z`KȉdOCjmi<4*V H'#9hd3̅/tIwwr{}Wvxgw[P;ꊍ YXgN|#14ZG0&7o9CXf!_+C894yD$* XӜVR*@S@iHiHi5ƹXOF}|Q?h5;{v`YoHCл dКt^t Nv)^3ԘPO)tܞy#o.WQߢ6KC%Z/=uN'fsӣX$][n*^0 6N `14l#+0F>#;8Br:#ͬ86Tq5eƅ*;Lȥ,~Zɗͥ5 ?? ;Zoqq#Ѕ,>_"IX@0n0 .O!Ox=W7j&R^6wtx8D\m8Cqg6|ӵCOtG`׻#C<`tt[JHPZN4©nFQ\t,ϱ0in#KM}P\m5gz \,7X3ڽ7M@p9%܈V%Jqsnhb>AYtbwdfQ0Q:,f{ r碤p/a:.Y~&-F]+f8 \,  5@= "BPߪ= {J0Ub7c UCv^Qǜ Vm6X#R%M@O-Q5 ׵S~*& }5Qؔ i~q=T,wJ/\@}գ{ m륬hƨLա/r[;Ĝ$=hLgmr}nMl'oݿcp}Z>o`B5NT⥵"0ޡIDC8w?.ޫ䢎 S&(N r٨%m?BQlDݡvG% mCؐ3&z?yP\$n鬈:I2%zz^v%tzxY['B+!'݈u{+wpmn^4曙7Mr'7eǀQTYl;vydAI)8{)eSJC` i"&W> 9Q%"ެ%(j#ETtrlj痪5Vp@);>UauY)dbMTДwd\m$]nK^|{DV |aiOZϺQJNlCOYQpcUH|NpĢe /%u]<,A0ׅ`%8n'P{Lkvrظu:K^ 8da0|EhMq'5_tG}ys`;RYВZ(L =4 }ys i68 p:SQ] m#Lm+;O+_W(#ffʝ; K*EbH3j̅FOKw>DD\tB;9Tl^?J;Qh;}Re "?b^J"sZ x61& ѰegjI"O[}Ex0Ԫrv[FZ Y(AF6 P*.1M[i7)7-5'徒dy_*+Ŵ1#[j1Y tP ؓiW=yݟx~^k4Kq:\?So5:y%gЪ/->Bkmn-p;Gs5l"X|&}ivdOk"2؜e40 ^O8^? &k/9l\@niW,yG(D0f`e|īrObP#+]W>s` PxuHmXrĭ1%x:LͳijS6S㒆kBdJcq!S:UzH3GhQ4obEE%q)%5qC Yn!h3t@W:̊S<]D_T`_{I ªXeJC!)FYP/J 3`nW mhsp4{~l5tmMSenw$J`n/^ֳܩId.Ann 7TTTl;IfS?JBS4Lt-1|R0 M@AͦOq5 0`ᩒ?zΫQq>XN>T<6(a2ZdiP ^8ԑl炻:zT#\g%}.50jlif0( =r7i pTό1,$?䄀?gA!2!6sWL0|57[*4^PW)2. G(:ޒ('pꑖ~U*0ť@tOLȝ3οEGiC86Yvz}#XehigJSCM"i7ƣ=s^^vyCt[{Ā%GFaJudޯ:~g? *SCTw~1a Gu s>:< n`ӊ#hh!ъGjh X%Cc&ӭdCn=&J'M]R)JJ!S ]hAY< (8^Ⱥp rN!:Â@AKTu{4:ۇZ9 ٔж0d=>n](YHyg1vF'F$.YzC ceoP z9lo2ϙm /$Ega|2 j%^i4&739}Ē;ƅ-if묇a7wTc&ʁsbwn3 F}$CjrlKa*kEi m@36P^Nӕr&oyb`MW=1'`XJH1|b8rK]>K9$.Y[J/ƵwQ:G+.`7ԙTa \innPHƥAM:'^)`#p 0Ab9#YN GF-% A C\egγy#!G :BT4KpZ qi B؅o),CϠ'=AqC JMQ GFM%i qViFf$G6?4SNu%(vY8 R. QEKѐUcsUCapq6k(H&Z{,s#K*l8 6ONV(K6TMb0)E)Ѫ&H%y`o~YoPpljXRK;,Cc%ݩUbRG.wA~M1¬ b>>}n%iRu>` %"9)ǂ9fIvJ`O=X05pYQ';K)Z!Y HLu 1lkh5] QQP 2 J%M;ne֢󫋪ndɰvĆ'K} {m&zA_W1T?3>91F <ؖSb&Xyd)氭i[&' Mp˪ HP peXx&)UQFv5Ao{<Ge sK[xЯ|.- u9yb 37-߼GrAPAG 4^9;d _|GF@JŢi^TV#Cdшk!y#a~AMPϨքjXqQi):"s9uIp̱Z7۔=N, se"՝!³Gb28dnE͒:`@ږnuDŽ*4-G.4䮊NK](致baJw:H/&fL.Y?tTsӊ5%@د<]I;U5Y3s{bx2D0Vۈ{ k/u|‚GWK 썭F9F|Zjv k@]T͞Kvb<+m CZ)6k2Z!=GD'-'[lP+W%ޒ >sfp ш Fbuh Js_ <\Ks_^UȎ,Qd r(1I+}1vkY`Uo=/>2AT>"ƀrN PNވg$ ̯+>K;ONķ3,"YVֻQhL V]Z*'42nJu|$o3[q,3's@IHjY L5gXdX|n϶GJ,ˮYɠ2bA.Ӑ%(.MJ,2^)~-Vٰ3>Ș/.獚7̆Kx$T‡ϱz:A4:ґ>3)HMu'm64qjݞߵI/ospC?fT miU`Z+*g!J"E_o.875OT{GGϘdwb_cU&?DodZ 7 X5ڎ?uO*܅A>҈Y^]Gh<P T*$dnXmPk5<+-S˰OT4'nh6^.dleK4F5.o] ߫n*5D*̷j8*%pBN;7~r`(PϘb 3\,G jYF3O#0HrHA 0QŞjMߠ7efѹG?R1{WZs0yH9mU,:@ET2HN9F+lc# 8sR]`V^&t nL+) B dPjY[In, GL<_u^NOU|.z.>+Q<0!YIQoiBڲwְ4Y о5jW0i;dl`R"Rzcie^RF;s!Vt@V󬵉V6WM WEڪĦ ?Spѱ:LE)k(A+2~dZclfF7/d>Ϸyn=E :ǩ\\cox_{J`ʖsYl q(K^}2mή Q[&}\^Ak v ֧"ŃCH5t5ڈAІjPדźUXs 況.;6z 0 ,"͎۱}LcpK +')K  ,!ꝉU8,?kehG \Q pvr+NfR!F?]iltC#2;Uz ~v3GeIh`SJK~!c]ց TV)$aBXq-b_cѷkCD!an┳xJ>v.l"=˕i|,bYb/%yuQ~欬%$`}d>Dbt00G۫r\#[RQp m$]KJ,NOAk,*dU`1^ ಪ?kT<Ռ^~bwz-|'kIjzݠ oNc~6n699-ц~UbaXp֥`Q4,%F9H~@ך>tZL*n*GL(\_!GbP2 )6:6ӯR0u< P*h847I1 %U{17pĥH#TM^)lrbwfGm;Gpn18DwYStH1uF.mBCm1w3>R‹^Ʊػ O 6#/K,dbTx9y dT6>$Ms՝ :mلWo=a.~`x`2Zϙ*y+Mtߏ_+ޫATc34|kWZTqi hc>YLHV[áe(-͜lk9ҬqR=Qykc$NW4®@.ڭZȂ,"OBwiaLNPTKlC/GK#8B[CR:uқK7MbOPEg65H5 R7#|ї8!=/0,‡J#C>õJśfg*shOPSu Ee!sy<ߴ-#Z侰Ggw-n$ "^[!\/ sqn :V a.CUAd_iWݽ MK@S35;=AǬc<mL~/շtXK'v:RyϠ/˦e)(Coy,KH4&.v@|*۬ }0Tz MNz}T2 03qGʽk 6oW7pS٫0 D_zE4 ʃԤ4twzWZ~U-[; CEq{w3[ (=+ %$ yHkVe\rDYﰔ'Q4ex@Pc{}`+ gfVmU):s KI-::!wmk+,uL9b>/'pSF۳xhqOuOq!(L Q*-@S-"y^ I-~\M-`4"0[@วMj|n"AUMfH5XWG!<(FɄtk0F҈PhA͕ 6,> E| m= (`<M%V <$[K}Ŧ$6.2%ɮYk{Ւ t#= U~ОiU>7^˸(;s Q}023BˢGN[ք>`[8F&RX KSF7|Ⱥ/i8D'*1`XPة8 vx٫{Wff:?= i{!%Vs}Ob%T#WF08|<S;Y ߬]3J %3\nccMiG6r7~:(#E/$K/~L@Fbn gm=n h$ &i#Ra@:tH VuBlBA dBh;jD^1N=;4h LŁbNRX$3rKsݲymBhO҃w0%/~䷱s D`+ _XkcaQYmy Ӣ >P| ԅnJahmqr&8__ѕzG:6'%fWi.iwW˻G\^DR/mAug#j]^e+vf6גq 7ZV9!ȫvG?'/гhJ|m< Scn# Mh>MOB++Zjv{f BepI!MKNlO.c l~6tr/?:'~7xTgsj8%\5t#";-VGҘ%_ZEC.O݀HJ*@sælRLn {l @)~ PlIȻ) :X`r[R=}&Bp&#e>]'vqDqĽ.ЋxX$rј>L!8jQ)BpG\xhzEi`l'aG/n%#gkaTA@R|2؆? XS%V*Fo?6"۝aev P\e͞Ug?lj3tjg΂43cKdzF9 ՗yl'd|oX0MBl1P!V{y_PўPO#柜-|5Q_>=@ݲ Ba!xXaNG߼[ٔeU, ;t"5 UsK>]}s)WL ըp#1Tj ǔ%:Ä0E_#ǡjV=`x$y5^t,i|aԆAX6>_Td3+ܨ+TU.6M8州mcUCm^dUrS[EWnW-LcIY2&q߸V~!} $dwx zᒆmyg"|aqDx'J-wYQgF8y >|8r4ԟ$eWgXCxGkI<<>3jqew<^cA|*E Y8{X6Q0*ď6zH34wI۵sofmumn vtk\~d`|t6i5 㓐(lnd8lݢ DOVط[G:f\:ҎQ+iMݝҴԳNqVOxag|sv_&/,g v8.Kg]`^.޾Il]pbT;txDw9[ry0hJ.. M* $S#233@ep3+2Wo QQa ˄Tc`Gv3=x $.ShWxc_xV@W"ޘl2t5O26<ӓ]mYꂫQT8Mӟq]N̂G 5g&oY/]+H5BcKR" X^;$ӝ$^^^_!(=!*J $w=* f ߱/>}/ Jr~B:$ >`qvԷa\Kche8ӏ^zmҼ f9.]'] >x T$dtv eᏙU*9qk{wYQ͝ ˱y؁Bc:u3`~L'ubr(2 F4Oh>f A zOYXJwD }X4_ i)+wRii.g Sñ5de)h%؟B;a 1yYCߣ՘^3Rћi`jWxd@:2G,\!5VJ2TH14 L<)%ҊhGNWZvjWYA 8&6JF_ YS[B-|Y܏@tcJ̔ᨄWEYpWDW/)X0Ev9>䭸>tϑQuAڌ299& KCo7"sejP6^%[[ 5W҃U TKv BF7/!R4`iߓ=0*ZЏ3e²Q>A tO&s7B+LE6| C 5cc >uC9g αCb 8u]ODQsl* @ |FnD G;ߞ{rw# [aPPY/9<ݙ>Li V` J :^D&~qcӥr':ۻ^/UT9xE():7O~y;+SN&xr, _I%P+ ٫8~Elh,uTGׇq?sXZ/?eQ{<|dzݢ\&bjbwLF^+×ςrAQqE1oO X4Q;u J٣#μw˰$656,qO?6OQyj]+kxŜj Ic\gY_.#4F'7ogX(.sxW[6' L}-!Q^lDf|aäWvH(-/#MΝm“{Pkn<7_;d Ur%>D;M2ߦW#f7Ni$Tք u%dڨ"gt##tЦ9bF|KFd|f|,( /<_5lىp꠳ſ$z"OĠ@9b ILrY:}L͞B`ujo N`ᓨpEbsm`>[ ]+7(;EUzsYz$C'T#3 :o 5C~cHs,Վ9;}![?wI{k "8)WXkB$jRKNDB(DDώHe]oϳpjSϬ|[1Fm4Ҍ&Gg>hBR#2q/ wK9Iَ' ZP/'xmœEI`  KGqSVo|Z30ol `4 \mB –C,_=vRx5> _*Nߚ ӻtV+- MjA550f.fxKX2REd(ۈi *ۂ0jE`VH1Uj=C>ӗW U=Ae4#щy:|vN,WVK ɞ(k1}7-ƨ\ chdOOD a")29{6*AO'4g:6Vwf^Z^CP&iCOE >iCJwp!u] UI>W~N~K2iPO#Rdҽ s;oJw5. ]8+z:i='4 Z)l߳嶾5|9BpO(uCמ8k9hα[׎Xלf -(Ω\hnrط9%զ~Vָfbkn*HpˮF1ot'H ^rhf.`jh^-/a6YH@XF]p͈ܣaVy1>/0I?w*##9n[N)';Yמ遥Pp^KmZ hok 61! w}^SQNFރzdmǧZ82>!  ;Pn6^MO`s$q*hVɤ:$Ji [ $ZxS ڜHeyyՍ2!`rB`>Kɝrv4S@O3jIZw_%ԝn߻Wl (wP\94@o $P5A3mE[yU'+LK%*e\lD6k`^OCd ՖDO2يos+S1]0wXppTsL,栢iv5c.ߖZ=~%𗙑N2~k=]DWWLΥVn Xs-$ow&\:>l(8$F, @vRs_J&g*j>/KX5`Kš%͠jˏfX,]dlM%|dCqei&`sG:Z0TjMJRh{B1lIw{Uk?͠név#/wR^m`FZl]f-^L9zYe\ aQ\Ǿ;Z6ȷQ"ʽ&uzbl(Л/M!65$^LiQO!E% Soa̼-sUBNS!KĆ1њ 0.PocH@6g[NRixP}edd "fo3G egvBu_˛ Sg̷it[wiqqX{cFI#1[6j[ɡ&- ;K&`,Mt[d]5?jTw ȧf?f!سnmѭʂO^>a#p8ow|]]:]0  /ۘCЭqit`r)0]J^ ^v=q[f'lwiW5,yINY _ pAemHG )YE%`'֯ QI[hV&]o3[)dŮVȫv >e_i²#y;@}Aj^$iw[PE٧I$kt!BJd\mco,[{u\PVOznIi!N2XB{Q `1U?,=U*9MхK ]eyM!!K?9SX_a6V z'$( -`J˲# ,#JY=Bua"s@JKهαY12˾e'U&& }Dah0xNo)wʓAkKE?CzS3\}̦b_}> \elCojC昄I,'v7cgfڶSqeI8k>߫/VFXW|vR,iM(NJ=Yi SA!1 C U2;̸"L/x> ۪n[Z/1EH?vL#PE3ۼV X>Um' WcݯzbfwD`1éreԅfj@?:>߂k JG2x?F@)8~QTfaEIEEz"R`wXv='FK_*+zN-2t:ڎkh8xV8aROԾB z [}j:y2p,?Kn5/[.T/^aLx0M;'2wuE³rKZES̛"_Z1 v=!K 0`R0s78x^ `{K;!:ydV;@-O{zx--VhS[I'?B$ ne/|~!S]\ʉ ,L)My^|P^NCbyBBl2\56rM0 p?IʩqGz[.df8Iθֵ\#VE~E4X.$w(cgAxT-UHeTcb(nrh%%MWI%Q ?uUejP\/n;dڕ>4 NHB֚$֎Plu-c5/r}{)5xyS{pfgfGV2u&.9Kk(&uM 7G|^W^0X׹?ɞTquZ öLZlq Xtfmti]:+A~HuFbvuXe̢h:^>.;qk͙ I W.1٘ 5x`5|Y 2;v2-yKoZ"X}Y+N }X;} tPQD 9^١3t8,UI(.;[)a_F4RP[8ju RiIa'#Nw,^ˬƻ4;ުwm] L鹏 3J[unU.#;{Qǰ1\GOrS\vb>uňײѮyw~nx0O [k{s=hš xjWbvܦ&Iչ0v:鞊܀āj>cX6<^s?*9YYIi:Ȝ2"Cs?-ъ%upRէhy)}plXX@<&W37Re8cqG-T -Qj4e}Ė$FGL1]PΑZJn/E'/4hp[Ɩ7 R#wkIc~fΥCݘO c9^Z;(R)gm,~S9sBb2XaIBGQ=ԃk5>YKNspX@~bTOP&9EM/r:2Cƶ 1r1_k^Z00RkE>XaH+/a=_9h전*od]"Xm5gѺx De|Z@ *vPQ&`e2 Od˻,[0KθvcZgW D$#Y͔[͎eK\^|"sd`z ;" UU`)/M)ѹB Ptn'&x֧`6ߙ 8 ل/2Ñ7I9s2a vrWjc$6?X-`[`Nt\:4 _>o#?ڪc'.en"5ʁ| % +Ū*i&/Ѳ\tAkfTuvϙ QּvV]d-{^ hE]vm6zɅ5Vɗȟ:F1!N6#a<`yMmec[E_[{{t e0/f#VV>g3&@ Bq]DP/Y>TЙJ)Ýs#+dbX9^<_>Fd-kv 0GY%zOO ފkhe!&><㡶&ۯYoE`e "QIY: Vqp??2}$o(Xo 77^"X4 n{IEsW{[ú5`B[5O^bpwd͚C VR)i %^7hf@}KʢP(ͧ4)$rm&H]rR3|a&}ɚ~%(PG:! f=6H1,A]B5fM0h^ы.绿7i0m^Jj֚K˖%+=aPZCنMu,gnDnx3xYkPɧ~됦˶j'i`bgJNOiFSnAeIoIJphL󦮔"3Ӟ6jtf +q!Ib\g?ž ZFp@M;VDY  T;=c*`us5.]H "j7 4^iIpD0v~~'P-bj c'聃XD18eR$ 1fڝ~R\KÕl '^gŖo*WE'K8F-*y4>hZ*1M@2>%cm-0(-ׄմ.k,7+R.> @ vTݞ%/>=/s ~+#Bu:b^D"QpdDׇwˣgEُB.dK 8Dh'\)4}m,KRȫM|Oy>1y e2v.|V6_|Hϼyvⵢ?/dp~SAp(EKL)dxc_%3\- #=rܰ}Z*Ą8nŃ#0do6ٲ3/N>Vȝ? e\ee߶1AB|jӸF9ٞ,*L^s!j~籐]l7e]2_qtWŽ)寡sAdK>(Z!{zEߝI᧨*'2%H\GCIņ V8tf"IGwqٵi}ۈJIc!$^rŧ.bMu8G-R/\tļ0Xff'/&k/+,xT[ :ik~>,%@0V:[g:åPzk&*&ݡmw< yz4N9yKl\?PR'@[^bc; gvs)*EvcW\L-68 1yx7 )F^2e1Z@D>}$q^.7 }HZ" Y+ʞPU>@,Ѽ'$hG.1SJswJ|.d,oO/߸qhX]$|CMfA.)oVcP;E߭2? BH l_ghO,Y\㺩P&*^  2 \.μ7ʽHDACO~I-NTaƙX;T9\i3LZT+ŵ_ =( ^@LC#{ f%k-ys+0Th2&Z .3AYYH^mLEU/7PeǍ=7$EDD`l};D2S9 t5קGmE%K##ӊqh>84Vl39ƃ;p/@cLT)CRJKvq]Y;1ܹ^&=s رT =Ծ: 5~3lri+4|"w~+d%C&Wh\;p]GNMfOYx)(hˇr?bU8Y H+Ðݤ窊KV>j1NS:xoa:̳j%Twf{=˴S"gƠkՇp5¾@CQ3'lHZtoHخBM%A2g˃wuX[+nq[.E{x ˃nE?[.yf}^s2J@tG.ͪ$ LiՐJZ Z7ǿktZaph%iqҝ.A'{0qiq _K"2P*&bV[%+<`uS<вQ{Nѽ{AB2# ( tK%Y2}?i Ao߮',C3F¾A]۷!bE .fNpglJ'u@Ho+!v_{(rX_[aB#,v'[_KuPcM5kT(Y. /CLCI,J 9:oWi13!{VQ rK3Re1ovSS 89kCxHּFJ!:&? [y]C@`]b'uV7{WM.w[4|Ta| O$t6)zC-X&4Mz z ՚|d_%EJ亢"CS/vV}Yڎ+u4⭙_,>A)ԗOk H;(hLy۽-ޛ"vmN"܉{#Wl־qFYѯGc"swrd?Jb>&w@ViQʂH׵n0th|d7R]놾"JDjgϻ,>*I,Dc+N&:= {"tvT! ݇_B>;0,ZB\1q|RxxpaÏ-F8@HГn^:SQ<@:4[ܳqzR+P{pxJGN{lxr=6x2Rpaӂ 6~4±MԠ3F@jʵ,Ӧ3&6^S$-QF V:V'.HE#3ۘ&k_J2}*ݒƄʥsj2t+G_$ ٗV&Fa`F[Q C4kmP, \ϒ\<"FTnY@=3x@\iy)-TOW$wh 1B;Ap\௵)0}waHXdVrvI̋j:FɐnN5ߞ4Q​̬t1Lxz􁳕SjPr6%潿f[ cJ}:xlIj*<pZLA(h[H Z Wu6y9B?HOfC~~#&> }d9a%>8fT 8$\2'Q|oDFx$H5Z؇i]Ln#z= :DdXC*9 n? VFd*6uNr 8-}P:yV@3cE'Ze[ $$4 ;[I-JcO%hexm4vfA' 6Hj=`73ˊrFPy x# Vۗ{Ni|'E[TRww5'~  I^0%F5S$9`KII0.Z7',Ex~7q?wKuQUtM\ڔ* ! S\]mia+D՟._ؗg7A-AxՀe7aRl@7d;6ɬ#ځB@!i&lK5$!rKV[}j9ޛ_(gvj {`)E6y-082A[m創C%P1xM6pQx3ޤM cU+QUjf.MW׍=طr0вv>@"F,9ʇBS޸ ӳ֊+IX`8Q_"<)㹈! Dӧ.k #t%_/UsM,+-l1*رh , ♝8$dU8 }~EY|ENc!O02uaё\D[J/CT4m*`k> >PZTVj-rEh lozxi{Ӏ6ԏH$Lw (nkɰ|jc{@+kl*۫ c“!2-"W;oۄ #4;QbHJ A95xY4n(7Dj-*nʻ5MjCHvۊ?S':Ϧe^͚%X+RYJp%xz]Y]w72BF! >>RO(z[R>XX+>XEu WH _AW"bNŖ (,!'=vyn=+9 N8̨݅oH%k;v;a5:L20'ϴ<$Pt2g󎆰,Cb=HmYGAHI"!\w la1 'JF0">&~Vv eB7^t) qIu"cjŷ=:rA0)(^sNLV |Qjj193~-72-J_,FR-s".eqҲS I4w1,z{1} h`nqX5a3c/8Eb3\~d8nOVv'ے~*A&&3{? ;ے'`SV!W³tѳ*ea?ARxgy1u{"Vl9*kcD̀v4G)0sKd\ܙRi@ p9{'꓂s/N%0쿠/? ,t_j:QuT 3`oK>w@ 8&2^J> ]/Ϣu!c m5xTwy$ÈlaDs< t\,W_3c%xZ] q)pŬ{I6"D 7h($)cPmR"W(9ޏ]yI} SD,OG:61J0; Cn,1 YQrXMXz6RQzނDrI$svc]A~9t-}w,Z)h|=[h]}O@NE5T:Ƌ.D~2Ow8 zl^{N^{U֕νo4OX&woǸn qWd $# ?13$vup\Nx5 <6B< fd2Vk(]{^O2Im;Gj'o( ?Z\#2WY5Eb9]^;Sk\ca<Mj*r?;I!˜qpqYA] nY؅J:F*vMSx{A%~3 3zp}iuic*lS]ik&f]gUUYT۵Zf7j9fn#/U 6݇B鋘׀υD"O+UfX*Mj8 >jɜÔ'L=QQf?uz15qq&DS>r*׏aKZx>#M>vwl9$hG:^)wWoKN=CșӪN/ P@nUMkt#fѻFƵL{@/}2j72q5sH9?wKj2ZIhH_-N\A-2xw'1N{dr977s)j"ANujV QD&ΉQes76>g*ULHyfC0op|FDn 4'jZ6I=V4DILq2$l1f ÙtOʨ(6kϠ|ѓ|Vx!N̛K=`lox)If =SV-yh{w( RϺ*z&QڂEɎ#=,~.b%Q$AŒ'<еx':}x}P7;Zsbr\ ޚ{(MØ)Q:h̎VTӴyEL$͛!GZmO&sJ~lgi=́ yx= OY΅AQ0: 7jq Jĩˆ*vzǀrr>RICowIkwb/-/h?BN`? Ճ;Wk1~u?;4<'U=F3Ć!2QXXʣlO+aWs%.N5!^(3 =9bSy e J/i- 'Á>3V)D㭍NT)unp1|ϭ5b}z|){'Iҁ pI!aToT C1-V5שV ?:"i) 0^sY_+f8.U'fnj48i+h_Т:gv#|7řGNeD'#EoCܺDك8թ@3t&KIJdlʌ֡!Ca(tQm{:;aalV ;ʥbYe5Yx*"a1u7GN+Y#0 /#9Ujt멤^^:$yP&WNI:ElhKpLgQyMJ+ulo &x{IU } {_p0jX8޳R.~6kXFQ:4@0I8tc-A dL"0_xfZ|C@ pQCYeSƖwatpo8씡%{QaVC7USn $bI)Pլe`I>C!{@3b5a#UhZv #;h&U]9SD 4 &Y)Y\!B ą*Y䡑$#&v`oꌷ/7,:'wj&+4Z1ח  m(A>V[' M~zUiXI'_yu*eGsPYd>/[D A^ҩzK omχz_)z=όu回w.^l !X8J#WIҧ Kqfmeo86Pw"gKՉQ 2OFggCi& D0ڣU=opި>)Ua?Z]Q-ȑ[U`p :'}pbj|@sgDp\!ݧJ`z`1XVrN_OGgWϨ2Yi?~;n׭m} X-ǂL{}g~PC48B]D JO8/@Yy#!MX Ť!&b (* N]=9|? Xc2 P}0/O A΃r))Ic`X$]lB1`ðTo/iCn˰0INMV'NʍWa-IW|ŴRP(-tp9NC uώOc 8킇s`׎m^s4^EK{xh%Wy(jΎd1c폾9fn%gB ۧZg<3;iW@>!ԍh7 G"b l\z:j-Y%\U:9 $,Q=%|0k^E;/p]alj:/A0>`_Ss)L,@\sNEkKk2f0o̽dD?Cx `J22bÖz6B/S i=IȺ>f3W?mL&K%=Ik,99hdcKSF kpO.l%X(ϴ{9PSKtӡh#Z[zrf&#*`1z]ׇ&SX e庯Ep ͝DmcG| |D__ͫAGatZיz _Oxf=CΞ9,p)ͨXb#.mk:6s_[Z-b=_ S6ﶢR{ԓ~}m$\uhyJ.m#Q~^Ɋx~YᑫqʠzoN.u?N^wp:}ASWG+GEf?w7*\ˊ>|?al\Rȥ^a#.z{'kB{?_"MŪq0d5C1 W:r//]ԪH0CֺBnR*# j yρU`4-b0MOX3p1jA|(}̫u!Yӌ|g itO+=z !ڤO1]J3J0vqK/ٜ8Q9> &V 2ώ.4ZWnPDnXaF+!&nW٫!ivpI_I;O bt$g2Cgs1Fp~*(o+.Q{/ U#maB<#Z֩ם;+R穇HU"Cmuie2 &j^Yq\qtց,[Ys:Hl7'{`ERx21 9ȁOJ-%UW>ДN *Sk4H-EZUn`Wru盀f3:ހ́q1 =, ISi؄rEYG~?PkA!纂^mH}UD>ǰCynhP OH/Dq|Ye 7y@b-w TDn12 OӚpj5Og&iaN8%ߪs*6D+ߩh)^Sf{m>+'}TZ|TF{ӼoL W. `sP|s'@ O(n}h il_M߰MCE(zޤDnLee7W#eb"P(Fv@&{hĜm#0صYq%dV&WM;ָqdC0 +YfrL30\ն?&[q׊ĺMnnXFd4r f&Ia<6F*\OӯmwK7oEo`;Bh|b5 _euXre|%~ԇ&0өC DŽ`~RoTd U+ccQ#vHI˔iEXs/<6tBD-[FL^;R;YL37 r9/&9Uӻtz3}~! VH}Iψ ô0X?ڎ!&Oޘ4Lv=F} 9siV.˿`fL=ZjUIN$.ܘ 6@WI wyM Y0`ȔЕn;"M|f|_ 6˯o%OH] ?^r4][TLmqnFG. 椋]%{n ɷp_%v2R/rN$QzZ7\u#skxT2<Ə84yKЭyV/nF2Rj6]l 7UKRH6`P"{u9(DZ[&xWmaY2E5{Le'L BDaZ=>]4HxX7Ɔa# zzxEAس)_!k{\ |a255`&5-GPAlj_q"YЂ7-Ý>s6~Cqi'WAPVmdAkr6M]Y`mALv;صSAkMwA _<~Czm^4ejbYҼXY0l\S)&6X!T_O ƨ('7i:,!*vȉ懰ԁco'3-X$=GsU.bnO rK;4ezv- #Iq6B@xm>pΨY9|y̅belg\ o^Ͷ8H׬6k_~!yNH"9vQJaH!yeZ?z AVz0^j!p-̶*kCa2EA\w2;S^%8β8D[ٸ "xh&"g@Cs&3:&޺|;zU*j{ QjqC`{du|r4ؽLjt%n;o}ucSxK+j  \4p> 7.g'ҒFܒ(n|_ c|𐞔Za+<<ȅ.l==*49IիЀ>KN+R'V@i|Ꜵ1b c>!rol;uI K=Xɫ G~Om ť B Nѿla_.;e+?nN pZ}L {3 .2wȖt=p~20q_GT{Y8.O$-kSԥKgHc4j}^M)Z'<^xn7$=Wןqoۿgsk.'UZSQ{}%:+:4*) ́YNaJ13-A;gVֳ̡U3oٓ70Ta$_};]k ^Ct:.kբX;3; r?u%@ CfwN "C>}ɩ_d{uUqstb׫7YZ N`S{#[te##M̌H:l6{=~#y1!ȚJ 0'w>p-nȈsYԋE NžtuqG(g#hț\%G+-As5N> T7f'O5 AݹnXs~~DheJjIƾ/m \;|SJJ>/]D?(Z>/ VÔqyc&Q >X>}$ )/`6Ma Cv²"GUYPZrs0C,$+}H++JdHna^ Sof^ɿb1N:EQn)ƊH+uS eTo)z &2ޤv⍱?+)7)fvn>j1.üa*j#Hb9M{t*Bz$Uw @PFȅcAb}mzbNv'205TaC!8)KDlzOS殖³Dod{#C3wrs+~. :zaȢ81KO] [L˴B|Uc܂<^6JՃ-2Xs.&PьhBGdCjk ]'H((2حW0h*\#֮8f!z]w &QUr$0> B;BnL;E|1lYn4~k Sʐ]^5F`SԒ:vM"Ef47D [8;d>0; OC1fVjvxsFR%1$뮒岩re*cݹ\[aw5=J1FadZȘFmuEFwAKVY?+_7vtWPNY 2%5K4*cQ-Ԝ& H@!Ĝk)h<+Z>iMc3e T4ҮBAt]] -0έ;[iԚ2*%wlt<ޅiE_M1c()sy)0&:hYL%J188 |7u3OM3 d G'|3fu<.{MX,tպS?ag?KiUNS6@2]M- tp[ͦMJ?j5\ꉝ3Vh#\Y (U oBf l{&0u`QeY /[$Y9gRO~R隳(q`N(%n@ H7(ɼVIHVO4W*Ħ,מ&wlbCOgܴ!2r2H[@n0)h_by:/Vn| [ >AMCPhM3#5l%-\Y SbFgJX Aѣ6r}1`}Ik6 6Dztm3f7SRmo=u #q*l!c&E#OH$xVFcΟu)J$f8`[}"^`T& ~:]3hm"?!iJC^jņ}qu?) ]l_ /U*l8Q|nG̻"'*dlT5"$bL4ӋB8b7oNyiC' ԉaϮpӾU@ X<Uynt,RҋI琸=}L_c4w8` KG5=*@_֓.ڔ ily>b3eKfߋE1(5صȍPPt$K mFxWַ1>.k^8ugN?(͹HVvx6DH]@q+ZTNaՁ&4GK8ّRznnK;&)\+͙obᴰk^kNX _zvdЊQ@BX۠m{C1cڪptNIp\6AWVN[d=s.np^8w!LYI+ uO)wI?oJWwaHˁA0Ff߯12wnԜlnr # ix2:E ;mhgM,oT@aRS uQm\tHeۋaR CӍ)R}{ M s]Jz8x^dZNiu]DEٍ0SoDG&&BZ+N3<%+7lN( Nns>̧7}6S )9?Z%.r }oEeCIрwjnzl`07)rtE+t=Ûqp,OH EJ A h^l8TQFmN̤<6hU9jtsFegK"m.?q-`)* =3 g &nNe2خ!!s]0iWS9]f#D}&|NV6 нnΓGvW՛v6ޔȸ IZT4gPa^sD hG+mԇS(m9*Gܷ:7CđHBа%Qt ˡ8^מY\fլ`*b0Z]>$}]¯ADHD𭪲h(^V%(f'&[mX#o@5C}?Ƹ!َdXy!:ӈJLrg7myvgMh"?$2K}po dR<1]8?+SM<8iCCM"i_ `UӶOm}QRڦQNxV 92v"a\5 9L2U=4=@r`XEܧqѥ} vY>+1IxB1:s~V^+ eυHMݔ6lwC47jO'^}!sA5܏,NЎ :O;iW`:1lGӀpl <)ݡvP=,}i P yPOg=3 KKdP.Iܹsja4Tʲ7aΘZH @!Si@aHc8հD*Ql1*p墨T)#u>2d)[Iܹ1',e唥ᙝXi[Ov$BrBQᔥ[guũgaYl{mgX)ñ^!Q3o$_O7d^S3¯W< o(&S.HoPQ+|Fa;u^vXsLč~2+_X18(6ʨ7L>w G%7E,2Zi?߉3Ld)[gY.)Y)liUJgc$mKJ鬑X0Kf$|BӍ dG3?m!t$:ЮV8zJK|"!jregEU~{r;]D7X^"q jEg)l o8lgF;X6V +~=P$7X^7t$|~`Iϖh^R&ha"gP5Ŗ- U],.g.K}"A&+ a a=QB:j[DILJcr!2Ds0 Ϻ]';={sڄEʂl|jZoh\;'0v&3jOPq.DP SU)Q I\ ֘s.<XAT4;2dQsJOovseG~I}>=lPFxӂr)'F#@UTڇ+.GI=T+ oFcrxl}*dR! Γy^+_֞C78;$MkHOA̘ʼnۻ !IaTDSI>Vpٍz5,?m&tⴑ}FCJ1cYQ=b S0C+=a28ƪlmX!*飝y0ϥlo}OEbDtGvrfG1 G-Ȏ:EFҐ9g#zr䏒63|8WsD}DsudgWCkAB{^I!4ѼRA?ZSϺ c&ZoHyƑ1KIL[;]$欇Lj'l ָ Bmՠrq9{F j 5ZrFd5V# [dA061S}fM".HNpcf f$˧mށ~tR zZT[DuV.Ҡؖ*{I¼|R&'e h>2> k[R'_cKuÌ4Ϸ6I>icv {LO^-(@i'l+Hϵq, lqdijڽ?q]EGK JgIOko?\`@5HGǥmWn^P&ғ),znV6Tn"\\֠咡0v5= k?9XiYpjc}msPCzϠ.\6$ J%5Ô l: 12a; rꛓWCuvFT85ʷe:xf,p›ap-@՗Xj7|3γknz⎍`42o3" kc;4⎼fI@o!j/5_h% WԠOjEzi y6@V.07FꜨ9L&SL;ήC6ydyR+%Cw^nnNы}8ʅ[Nƥ/ E UR K۶Rу:Om;ڬ=zs{#btؖ1Xۺ h:@">h|BE?_Kq@N1}yJ c(")w*Ψ99g-6Ѩn"W6t;}i? mОղ|/ ǙH_np4}6!-My1Wz$8FDϱ7 =ZG+َTû/saJLwRCw^ȴaZڜOW󩂨1I!ߝ]Ĉ,NcO)9vxV+׉ z'v>b p0:5Nh SYJbcP(e["ZNjzaNSMOqۋDOa@r([BA%yp3B^pХ8N$1[7Σcy Cg_ʥjQ.vе&XFXiMV"o4@e3 ?:ʟ%16ziZ;&~ Wm= 0P΄rh?^ڈC`>WZ>ےh3fq@< A7O%1U[ 5fw=4}y/{/BJC ح;S}/畫Y$! u'@Sinzo>P 2f@1ozxH>Vs2_*-C>Qnu[RG'x֜:7,"6{`VX@Eլ%7p$ K :Y;2U!Whdt2-s~}z^=H\`c}]p+XmBB.mBmFed|',) 擕y:A T:Hp:Je+zHKPtuf%m /_ >%c+*ѫ: ƐħSK&k+N13^8JˣN,4Ah1A^1ӆ; u3.LB\ݍsrꯝ4  l9Z9wީjj`{SJ[:\1 yG[{yw0ti~Q폵ƯT(tat("E,3$OH^~Wit0k!> &xW$pW5"dE1锑ݏbOҘ N\aGTD Y8ꔡ!QiܯU'G2蘒S|7)ÖƬPWs%Hye03\>=A6X5\W_|Aþ^JoB)>!m38卑jdGή)z܍}.:t 5[2\pۍ̯ztm0Ϋ9ҌJ|us" F0Z066\fX~ӄ_Gh@z 1"nh ?18Mӹ L/YJ'hxd!yီȔvR+ N lhBh+;a J 0(6'm' P"<:Md< ;qz&OV!˱M,kvSn~T1 F 0I~JDum55>_X'M0&ȗWiJOxwL k|oHDC1 GpׅӐXr,-b>uVNzNy+gHvF|AS).^.gL^pT}´7 b Z5C\m 5z͝ƽ$**vy-(֥BiqY_ 'jG,ٛMopU]< ?ڙ]SMa Ӏ%Lʓpms?բ,Xe6-tI"켧wVJ0zz0qj=X*q$t\e`krtRN0xYU%zdtJ[uqDuxNZXPV,9ǦV?r!xn9twuv' KC- +Mo;hccqjN|/t MRm<dbzN\lU6|t9[ ?!#E@~!-[N=Y*,J˶;+ AC-Ч5wEyG!G.G(IpCE~Ud.R ucBE[: :myr}gfu_c1 ;VL]QS{Gh=%66i(* i9Vh} dCihrqsoZ~Cnm*a9UFan=}|HlCΐJoX9!`?կP>?dxCxӌ2Sf3O>EK3:{Li|2, i"5C}$/gI]Vf5v8"sN<۱^򸹉M15?. ȇWDM4 Ü"to*d$qU+sSd`(=K=x"|+muXpad lṖnƧJi> )\ϻGn FK:Y7RG\H[Y:֮ظw?%W ( 퉶3]Aƚ g(U@R}sUC&aaƲz=0 /q`[J_Qkdf$Ѝnoj/&.:J1Au&G# `x!$,2{#E5  o@/O[ȹXq}Yo+(JscbgyXond"emjx=WwCB-ti5:$k%ͣę0Ca1h/-a<^!\94ЖdΞ^T,-ᬇ |j)@[zC)vajS< qu/\֦ x{@HWuD";OggG)4em.L w~ai,lg̫-ՄRkB8s5#Ji͕q`_櫠mGu3_ cuE_ [`>xҰud tcq._g^N|3AiW;KɜĪGZRM .uS%VJv)"B %B+`MJ!@\ UM7z*7ˋ UuIEMb:Al4 ;ЯTa`&&}F,2Zl2Ts!&ȱA7̘UGE9BTѰ:YUE8NnWB;Z`o_TS5v(L%:wuǟT73# 4:й-/;ct<kHDB,W~H R<l,ޚ;6v޵a+z]}71n~L`6 _Y}rSfad<HCk{+QBJ~k̷I,n M1o]( * o[ߘT*< dF֚eTSp>[/j9к4M.#(#qXKmƮ | #3cƨ]@ +֊'gk)^9J?LKt;{?>Z9%F};<j^ b0 NVKZhG/]Hyތ:L j'0]mg{TP@[,0]n(3쿶yS,PnW$3T=~ٟ4rᩩ]$J}sVa,GO8QD~E'vTs>0/t{0z5pB4PJTñ4'E,,QÆD|56z!G qǓܔBqF<=ә H}C)!&_u? !#3>v]_`ם}CWB S3d K˔[6(XPF AS^&>y Kw E3xY@?^?Aqz;ee"n7>)q K܂=Hqr(":z=d ]УGlRZ5}nr\gd烑;յ]BU~كQ0|86[en|l]>Ni:c =3yh/l%~u/ԛmx* be}xeKE,:S?b/l, xdMS&¢PTBvOQ[%;9G~0 (95Y0$mF%?q0\XP ~[I2PSk UÂF7;֢РxErw{ڝNUx ] 1|QKRYor u۶5wqub683M!s8sCAS4.#9tp8Δ:Z_@1 Y1EȵP@TK@ ߀CL<%(Tk׋.R++^lv+m`ȵfY FOC ߄P7@ B-3"4Cl:9ֿh t p~VAQph m7Q~(x-[>&n4@ޙotA? 6kZ8"ٙxEbYE#2o ?R W&M%S9g''r_wF2]X~B-fŭcӐZ^PkdDy`,sF5 Ӧс3S=aCH̓v,\=p O&IjV>9hSY)d؄>Zk 5,v="{h[}`b3x6w{SS=+pÆ;MwJtD7E?Pg&uasQlK:kQ%NAö1S\LԽ:oD\C1/Pp)Tj>WT% 4~ڬH( P"$qD1UbQ ~gʜ@wg*P g`ij`**^B&)s=Uwz/A~-xWhCAˡwO<.ND^}*d9-L^_դ4ц:@Tƒl J#V0]C Pw2324T:|rǸޚy%z+KǐhS3F$72*6& CE0sI(F?͵k@Jp48\y !N r/@2 5ҏIa#C&pg~2ߊ 1M λ1ٗVPPT3Yz+ ovz }e+jjK wmOHgm|Ў I\S|]NՂxfGKYC|(U B 3$j8H3N 6\b]2/<ᡒK 4H-~"..ZФgBLݚ7̥A?4 yaj­LXk xч}$| , &UO9mbkۆs\K1LnSC BO ڏ q 11Itwe~"ǡ$Ah]s6-ۢȱ$xvn#M줖ɨQkyb}U<=0gtRe9P۳eeI/~̚A;(OG іFbx40 `'P+`Q+%#|dyɺLYHG*ګRKÿpc0V4N@m$2!X=7BN߱ ^7v‹)+/|D <ƚ5սDˑE?7x!6 qc?FpU+[0tW;KuHrң$.ӱ#G %|i|x* `T޳) ث X>QIy)ͩ|x&gFr ۞YSjѺ.t941-Lx1k$r_m8vn!*yqB$Sxs)i;Օ[~SH kQ 1.0Vx#PEYJk;I9g;d~!*^њ*i=ÿ`g'UܚYrFk# ME:X ] e@wa[KTd%[^Eev  ҷ,Gz4ws}l} s96[HĊ$uy#=x&Tמ:Bn'.xዯ:-Lut+1-eyr ލʇ20+Jbb<-AGɳI1Ā8)K`7l0/*z?LiV˗)"tVD~#O< ;se "1\>*~uշV]tV2HHG/δ>ލ;*l_s+i]k1;_qs0y/ڏ| XFڌg{Q"Hl.49G75uɽ\[؏rϏ)-@8b2@e@x,RPɍ7;U*L+OTwtc"L;4߇:4AL󕍙yj"ɶ݉kg}=TN@c๬Z5ۇy41Kè&v_do`1pmc#*k5hS53|/LUARQrh0*ڻy!q3ָ>o7gƌiY]OhJ,(DT89& Agc3(^A1xJDaEF|ORp Zɋ 4v1V D[Ӂ_ **ͱa1 hmйO\ꌸ}(E2w4"Og _(Bo R E~EwX菔fBPk(6ZHpR)hwq$7SI[? BlX& C4xܭb-nexq iH ddɨJd$/m B8gU",z=ۢ^s ⟦Ɲ7 ,YrzD͛2<ϕ̿njz\v-@֪6qQZV*y w-yWsy"fZ8KOu,Lg?FΙ7nx`Csf~˦84̕X6,؋;:}z+ ) ~Ȼu؃怠XaIdo>>H;}hFn`?ja*#3mwFeX8]͙) iNlK$0gM C 炵l3wdQm5wR b#LKPBjcۗ1^S]n4ܻf a˷bM !ZX;)L0Tc?(g>( S*5̫;<0to2,COBXfc]m$0#22XtW:])"7 %.RwPB-2R3vG513?PϽJ,aaA[N%bt6sOFƃemP52;PZLGX97Vx3 h7 v[Mvm^ˏ= bQߪ٪D.vJ.nQ@ j Ω! J)yԴ}yb:wmؾw"X6.כ~$3q&;Y^k`wsO}tmB:3f_Wli_DLU!cM2)~S% PNfV*I#xOH,H ,P4&x^@kCwD>沜 IY{$\ykCo(45zmD*`KdTg'.wG>tucԝGV{}@~q=Zs_8;Vx]) +4Wƌ&;ً}Jt|rjwJ yTK%$E$iA@F{Jŏwe3I_֭_I!/P⤋bWFX@(R0%%j8t*PC oy$Y8q~*V5 78V+DAv=We=e ~|K暉\?!8z 5bOboyNF.߄{F~Gi6N¹;=;u*J" 4 j @8:XlT1W ޥR<^E)*8K0$'lW>׏As9_T^.MX,V:}=bgQF Ѩe̦Dd&VD!op{Qbط ڕ49 QJK'^a R@J 0bh=·  "z@߹N|=mOED> 4"3H&7i~Jƒa1 K15Ys!^t,~|ɱ1ôguݾCuL|1IcM_=>@}D{I> ҆*ui~Y1FcAm4Vښ-EYw%?FA,y t9i>e=#iQQ, 4TW2䖌ggܔ !UYN$ mb4np?ZӘFizӇ|ʬ b\E` ǀlqҦJM^ !dqlvzZ9mY&BV۠yT E1m2?ݲ[Rmov{"o,gرM7_;ˈmKp]7;$O:PձruX( 6@*+k tYhי\N+v `{v׼ NH4hwƙΚw, IRߓXj灓x9WoٓkS>eW_7pw C7̌-C!-jqedPA5=4Ɨe g29ߵ<mFKPA R;Rget2ǜ f9MP<Gl0+T$=N?)& F/atfh#& H D/ڛRn5?zw;;80_yEM"UO;1΄ؙKNXӲP= 0dOjni郰 a91Ðq-31 ,~h j ^m"`G86glz ?=b , RxE&%:N%ZSC[AK1E٫4b=I V.ju{W7C|:ε6~۽v`Ir(Rum@5|ɕ3P35԰-3&w-r=G_ޝ0\%˙ZGF[f)n\QtTjfuWO4"9EAxW)i"뾊!he| )@Un3$?B&qEx1:UJe\A:-iRr A5ݲ۲\ 0oH wM;>rLR6˂nM&hY߯4vj ]-gD^(I_U (K,ΪsQjpCf`'zq(Y@'s-!6+b2ilV0fg>/rl8~W"rD1jYۓ?aQ5h2v&j0D386/O/OrpHpx bBSfL潍}gkRٶ' CE 0{o'!Sswg3jsb{jK5%tՐU~mu4,xzw]\6vL",v3kP#. W.F$2'BW6\K_ )ֽ 8bSn \"C[߰1xɏ2Kŕγ0̑[Ni"@Ud]21ߑI]O1}!)+JfbƩ0*4Y"p)Fq>,=Mx&yaܫ\Թ6)&| pf =]$[p /ψ;D>.~Wrx,ȈCy8n2Zŋ[ߦ0;_Wo~W0_ԧԯbIuA,&ƫKFmT>Йg,Ey\O<P %OfcJPY|+WaXK-,W~ t z@W理x6lQ**:F/ZaS|v732^hR"Ly*~qV]nIif48h"o_أS~`Vgl%LLj4=C8D<򊕯QB/! mvBϢz Ivj]5hhA"-P,Tlnl!?OB %Hڎ+2އNHV̢+<zmV„ {D0_˜p@H O! :m!%g;~y{ WE60vs5B,uN;=&gTk繣^$2#9iAQCHPd \C r+ơfOF"5GQ4JW˸gnZFg`"L:X< HoӯX2V2m.:W(36{Ϫj4e,܊7xlDTyEj6V x{T534L'&?rҷY6ꯂ2y7# 8,֖fɸ̤Bt( Sԉ-14T+7Q&-;z%z.WJdϥlPPy♑Nุk׭_&G64cԧ "Zw?k\:JXpqk?WWuvU2mW`_z&6V! ų?O nCCq9O*B K[%ߨ^BXU =Us&CAnLFV#j?ݰZd!Q; m%fg(Ou LZ+'.;`t[oKecw9W8d=h+ȣAwQJ2oQw" +t*@j*)z}laaR̪`%.c(b<-BNˬ߅!!v]_Dc!ِը|Vp" V1VR܁KJ?]"S LM:Ks;{ih.WY壬Q/ &0`rCņ56~{}+AiMR='4y77T{/N9s蘩{c_ʡL/pҞՉ!'*0޵@?yF]1_k׼d'RW1I{'B0_R"w]]L0U^ 4z3rNa_&}I\уT]o y<[jgT9&L=1E_(k|XNgȫy'L#5wg=(fsZwICeAD*[q%~ތԁ_hf4DI.Z 9r,y( 5P3ΝV綰\咺@4tz%{ c;uǟbM ͹d6Üt}ߧR/mvsLr` ĬrH7neSw[ etE$IOKM:9h&]JY2tFB[0<J !uU) aϾe 2n( x=%*8hQK'}GONa` 1̐KWe+ U/0הVvԸ' `>"OvD`f/C ƴ%0:8jU4!DH~N@".^ jLև-x"5B$r%gj]֤UyܴhVrOǵ V)y#(j$8gD`AmCN<  `}Fjo=~ Fkc/L4|\%,քsE\rLT#2wfGñmA#}o F=L _i&[m&. yݽ-Wey;t{~_LH%AD-?CdUwQyPɖ%)`9rq|ٿՄVR„S)ޡ@%GiÓVd6գ0GS _NFkw0U+&GcpeqHe-F5rO6i |~@L sAQ|:sT3\](!p,X A7;{UK:;BVҙ(R B!hB>C%BD&&Gtu, 'Ma^NI8*~.6վZ&NW7i{GiloU\\Ni }66&ʾiQ ^cZzͪ{;˄jQe4=9Ph DGZ6J>n0=،VuvÆV*x4wग़' T>8&lM$LE]$E;3 ]Y\Q\K}9fhĖl[׹7,~!CR4ٿ?إ,t`K)wp5\ U@?jc-۴p̛Oq7L,Z-qk8hTm߃)c^]xN#,dy }YΟfyPS:",_}SMwP52H(#y䠦qvFu#j8،(|I<. s@"ɻo"Fk?Q{x.ݕ*0qy(%51bXCѸEStY,1b~F\; Y뒜/^KjzR6xWͽ!'|tEAO;o'0%+pV\>Cgd8]W淛>x 15۪2nS7;MǽTfQUZѩ9FF5 2x-1- >c0spDښQ"r:̸9U).jEDى\BK'/(P}kV5YmR5+QYfbp{U:pA-MLb?pb0% Ix-~w( bD#E~fs|jᖆ{SձU ٧D*zU¹3|Y3 6A߁fl iv(?"BYq<[򙔢*"ٯ7K>H"ӵ^YddCzH$E"6]BX7Cp`j-Xha=HW(REba[}n/RK4A%Oy̴Q0ʎMOkQj&J\@4VKxFOky'+']DyHbh#1ԵMG|wD{ht:anw޺l;s2J-B3Y_#]eȮX#ܑ6RMj ʘAm%,]96$;Gl oOiպs}L+reCBI 't7Pϲn$qE/z]Jwp W6*B`N k͒X׈sLmsY)3GSʌv4h |F疃Xbk=-aZ0ӣWXϛ e=h^3iz_1rwoP|bh(!cLM+"̰+bMwz~14;b]!ؑ_{K-\4= T5qMƃr<+hQIL);L..SοU Mu ) ߹ȋJ?iq>%4Mn T)̧ϧoo9P[v} ?mSjq suY(O&gZWzh1a3V))1*lY-G.2`Q׾dȯgv)%`vIkA(A,V%+?ܖ}`-Xhț==Q N %l8. P=Eìyr״f*)G+~׎l :; 4sn+:n="V43_ 9Y{USb@czSbLUƥVNF+8F/!Wbv]u]Y92Z|B8ڋVkF0.w۰ѧAj#05D6ӳW;X)1Mx Kdb\+ZQWUb>H;B&SfKP.`9腏^=; \;#k[!iZ?/F P}j̬s78,ZH|n'⧴v!@!Yh4?M2GCi95j#gZSeA?X[+,ΠEf'JG5,/D!獨AR1AE;)B|bb\舵olPEq*`;8,(I֔Q]}3(YcvJ=|V8[AG8 %NZBr([s>W^qjCN揺ƪ3u] ] Uz$kb:㗖D[<-2\?}l&,`jh O֠7A:O3}'cʨ€j^a9';0.oyiӄcy2$ævy]>f#_y#|hAi&pV9$ݱ|`t](w[E:^K10WF߶~8+Wa=aoL\J؟ud/0pknhY$;a M ,+s~ .zC&i0Sz8۴ERn`=w,G}PԴ@ dK TJS(QE.;զ̮n%F qS)q:iM1֐!c%IaZ'CUFi5b" N;(45Z5q ޲c5F˗[]غd뾝aS`]I#u\$g-?^F_hAȘ QAd5<1lU<υ{43뀿<v4'<}eȪn}\Qjj iIl]5`XDqT*bT]~xS6 v2Uf_0[ |>)^ WBK3dd?/UVkXxD89 o)=(9&3cVNYyu6B1HtUәnpf/#+t9]* 7w_)boKj<Y4ֳgR'GYE`LŅ_ Y-}G~ -e̹yTF“CZ-Jd6AW˫H4(uKx듉"g9ڗM k{u2DŽEٰQsn4!:ГieFȡ; .Vv{6ՙ4XD[C# (kɗMBdqn40ŝ/osB+/}Y|!+|5Pn*hEGso?~3\#;pDf89mUfmA. QBe G 8'fe#EG"4V? EDB{![jCV̥R\$AhdFnxlpT8ntTGm&2kZJDb sc8;o-w k,j/_~Gw#TꊧJ@Y'|jKWh^zr-`"! Nzb1W2A9xLbxcKrYL<|U9.)G6![NC0mj='*$D9gp-B+Kx dFrHY;)݇Qa$ rsqL^"ǿ]'p(>&|rqN"Jo&EI=C['3ni~Ah֑ШJEyV= κ\}C KӬ03 Qwkw:1wQ17\ l8*](:Rkjq^XzozrI&z$F:{ WM-Uoe>'cZ$2@M_? Y8.ll!&w-ECen::~wk)v\:t}c+@ mkz@z$t~a&+lf۵tqᒚUJbhdQ47Z>c%='=$Z 1j2đg)HEa}WI5x@]f]պdvxllQN#~XׄTkeE|4Q6A:3Q*KnUY2/_E>0>yY6KJ8bH1[jxzeu#ev~^A`M ='֗!s<1BWd-([-͇\ Qz J o[YFZ~v/ 5SS=BZ} Ŗqc]ƄEJ%2릣i.1zMc<̯Ĝ>yq#i/d*޳ Q4uY++~1RSRo,45tF….z)UG4`)Kl' ĒkM#ݸ:-1ȳ98`#V7ZX‡m [lKZ?%x%ګ2vdzLQ4y*83u68Hn%UaW}^y[G"3U</z:?H'`E7kc{#`.XXl4N^ۅ=H[pI8]HEYRC4[}֒#⩜ 5X< ߰RQKc-mli%TT̶|BP,#|V=qg*{@ VD#B0^ Dиa a+| b =iIݍYsOE~0<3a h(2ZLHdT˄5<;LR!#s;+ Xӟ>ո)W9=к闘oplwM~PZj3cL t+;\` ϽM䇗4v̗\N"r+XُII4FhaE"7 KH\'B5ř'o}bً9Ybph¡KXmXRJDNsɰ;@ Wr" uL`BtNV{T1S#QeU:T~][Iiy㽥=Kv[m㊿KvwI1;sҡNÙ$]~G$6΂Eҹ6Tr$oݐ c鋞~S.9OD7sX0u@%.&Dzdag}ԛ!cHъJI4}fyS[9ٝnU` -kj䢥,1QTM;ѥvYvON8 /yys~Yf1.I97J]˗tRѩ/cyكҮPZԡ0%G0;L%P32XI| O;xv5FABֱz ^5R4zkG,ÑgW7HG'|$x}N>Lq.t.Sb Z/g_O¦vlsUz.fxL_ E*{C}6`(vtdn )(TUaM\(jcaORAF{*mHMpr?gB {T@L d6ܙ MnnonF:spwwvq>. [FZѨbg93wa.k;fe{T#ͱ=>{o^L_S t)\-5hVdi N H\k5 |j;-,϶m%0:>K5` a1O(X9 oڟ6?b)~$QSD.e!S]OÊz/$?W P}v( X1YߑZJvַ&no> 9W@kZ^ڇreB$) OUKhjqp,)KgM?%Sc[On ?b(A(^ߴí 9.];,HϩŸh';9~TGmw~e0]J杫x{ `7kA̱U`|e@Zt;*F|-2 y>|+ׇ| 95b9Ft+ȸŴy1",BTزʐfׇ.3)8ա5t*<3usK_`iVdܗfrk8|NKMB~SYGm$޻2Kw%p4]af 00Zɒ$x EuHdN gONE3Lyz$ay[\󫌔#NA gfZ֦,?6&k4zU+JpO'3.LLZN`!o5q:?hHJFi-Iy o>LDMt]JζRG@|`|=̢U} [#h/ 1ovR/}Ѣp pQtEz-zg6qf/SE~GiĉP/h&QґX6,ƏM~\(u$61D b"h%f6ACLon2Eэy>RH/i^{X ӵ?ѕ<6:&.tA>}ֱ#u?ѐ`ۆ Fb#T@#ԢTJGt䔟HghP>C!2S:"6{C,VaDn^Zy~XQT|^Ln]L bbo^MgO2  +iTXTn8 \2gCt~N@ )/DC R"u*HhDwt0z,´LiDfBN̈́9C֭Xgb&V:.yHb^I$EΘCdi"])6v^JԵER}MD#_H  (R qc1NPw1mtp{똈cW'Laﻟ+.µ(dmϠ^vϵI[{_e*'#5eؔ9y;}i|(تqڝApG|e%ګآ|)XJTw R} U4-Ņf1*n| pӦBI)Ll4 9|y _k0pɓ$ʩM&N;4޴Ǧر"a~V!L%,;K=?Q?= 5hi@BȦ ,~U: [(,_\VoY8bl{Zޖ=Ov F5GjV~5 aN:Y@^--*3 Jg^QW>3r#YgE&nNV)^ģGj6,կe?j*M?Mw)?S* v ,G;J6 OaAxLyVZ (|ƊnC􍱫Hzo8i{OQ<51IpX(qXY@X$`~'y/ב:pdDah?W`&{a Uo²-POi|k6r ®W*˰_ nxlpA|1YC+W=ȁY_!$GP`:u[;2vgvN3\2c U?9[DR'~vH e6#;xX,EùbxCxp?'깁(QӚ}bJ]` TuLl9V(߅QqǂPcW]]M߉_ܝu') !2ZVhkw.xiB_ l_`׫dfjk-MU"8D/Nx80r/lWgUXxꈣ-Xk^kN9&qF{UI}xkL|'aNޑdIF sFU)`X o4inkމRnN>Rj=r &4SP$CI~ -tSז ܫcb)kMR+ EA)#uPFV|,Nѕ.v($*t41t Bv#~017]%s^IG<i ›6p-QZ?:&_Dɒ51n_ wh3؋L/K7ȭH/ IE5^xgVruEGũU>A)p"EpNw8n>NOHIB H$v&O8p֭O9tjHxu 7aߦah{ϫAx--xԩU˂30b|&ݛ8KnHxqH2zԭbz\קNϓ]͘zPҲ03CTlK.5>:ky4G%LQV931VKJl洃Sws\B|PQjPOk"gWeϿFFF0a $c[ L )Dxϓ{h~EU&oEj^tvjjphT.hBnRMcDbĘN7׎XN/54]6Ү,@(ßP 哾<,9#7Lf pR?uJ^Ct0F %\$D2'0cQ_Ϲ(ЧԾ~!d)X{s{P6'0tV}ޠ6N=.Q(juũOu,ϳO: ?hO&䦋1̀y[fY~9]A)щ Uzkped ܑ>^q G|F _b''F QmIJGC!qmvD}T-eC)?4v̓ S31Y}Q4 Ṕ*?˞)zJ!@,& ~UG#+{?t^(ЊX+(~d*.{GEj夙 m.@P T7(I@-2`0x%[nj,$%wJؚ,Y\_e>b#hoEG3^G5OZ_ApMACN|皓d~-7)puFVI{Ӝt?\#OWtXo>ufkuN`,Pzւpo~Λ @HP 1wPl_>L8ⱭS2pܹ(~Poyqmd_D/ <5iaU^XE,E'OѨT)2%bsdY8-ֻk){%۳NU)byN6.Vm_>OhَsOh7X#@6eLYx/+NJsNʿ8Dol]aXaT*jQz ǴmA':DKBGp/FdA6K I$m=t[vYJܰoR%ؔA Y<=.kY▰T[C aYG k u?E|symcrZiOѤZ>H?:cQhf 겮"QB||efQ;Z$/[z0ZR;Aш7rZJswWr,Rb2{ֽɓs!]c_S4K)$d04ًA 1׹ dӘf>F Ȍ- 1ah\9QhWЧ\GPr_/PS^XUUb IYܘo,P+CX!75b\z] 8$:ҭ BJ`W{cHVq·:#L~el}u.+m/.V>Tz誨pb~تFx.c]#wcVrw5́) 2t[g('~=`YseޢDԳ?wŇ/Jpct [хxRNoaJX c:~Y +B0ƫޓ;߁)GK1tj;Ắ&,TD\OWts$i*iڲ u;`l;ybE̝ogz&<0{m'E6a<8Zbt ?o;KOpS.C`EGك?= h0ҬXOq-y _ sCG6 FE 9`C-tB:f/%PKV"0 )ײSzZȋǩv(b@;D53z7 _>mY[>bXo{Bl9{C FWryc疅$rq o^V#R\#t|<ʇ]8_4 Xl,h6ѩJ+357j5x˂k}_}J2vKr,F澚BN]!6@ |2 ZX#GJߋ{2}mӍ-[P!"UkG1 5d(y_3ާG} SL X`Wt=hNك=x>/WQpG6ZLd ɷf>:9龰2fNU]xѡR2A5, Y2gkn3uSCNFQꤧ֘H6j)нQ1'[oD1tYS,b*}` 6jx)hG8|xnz4vNRֿDM6Li~m `T?Ub(1顒#츍>N\ËR[{`ADZ->1T H _NEԱe5?ajs7eA1M0KIoѠ e1C?lv=DVZƐi/~DԌ=K% o 8q[`ygeX386c+[@Td2w- 0+h)+7L[ԑ/u3}%{qOȚ|GHPX\nm,~CZC'[rC%S29);DTyt/;p$(f@^mD#\)t+Iw"aw]%,`Ohu.XC6 ҊB3]ͽ$_>:$(!0Y'@[@(fr(GƅDZ0uQM#TZQ"ɝhw^k{\?H-C4lq?˕cBI̫KSh{=%~ b.fIxp}koT $CJ%4t {;K_Q6'!IDщJ&kB f#IP+Nevh*:̍hPd |%pn;jvQjSH5!/YNecR֖KVb_Ϥ@?HjE,LfOQPiH@ ,:p/+!l #{f?)"TLՌ)ZQ ~b7 X.n3vM!]#dcw'pa!$5iM91S>L RmK_p^EbnQF\`0dOyTmՀ0JçÂZ ?%گk3 z}n MWjQ?q]ԥ<?g2[>h kVYxChPw*꺑Yε=OpXYԁnvt TwH`d0VkNֱ"D ̗rG؆FP(K4Dy)zVh_́w-~ې>n=dG,Pb-E7>eH&cM~j STA-5.‚w6J1{,0?'0h̽O@qxc߀3l ,*?y1I7,%awe HXh |6Ϲ+'1ώSZ]q艒P2%*iȐ]̹lt| #,FgJƇ4痘KP i%[\{DOte62N0kzW|VpT:}11JY5{$G^!T} %]Zߦ6F9{SU5 X8GVG3(-]D'km }8S\7"bJ^X8:_joq$**.8fſWXB!Tʿ-R3qPwz/=Y$s[)v Ni<7TV~߿r ɛf2@0o&zo. fxEԍbא'RqL1,cI Ak,|mzޢ}FxrP\k'L8 #⻌ |[a/~P!J f0 )ǿX/_퓪]TcV6#2eQ 0mL :%Db^ğ~(-M7Q,vV:O cȦ.O:Բ@}mlLXUdӲي1oC<<2;ԪfDZbj~PG.[<.1Ɯ[e*YLU"d2VW L1V0o?۬N;D8ǻ |iڡ'5#C .N=j,8SƶfElM3L6V b:\"9gs+zZ:hr⫾rƾUi9aYJ;|d=r!AQཀྵ|0'Z.F9sGiP8CLĈ8VX>1g=BLxa,fJv=@i>( ɧ7ᵐږ}:?GuZ9^F7-`5_Lf b,*vlLꙭ^*b-gV76b@ hդB"7,4wJn.+¶^7ڨ9L5Islk1 BfDZ6zX1?'Y{I 7a7}3g'G3  j/4?XCK:L5܄:Vxw b_aɒUXFfұdc O"RbAӡӫs:XP\@*MBmj%ނu7q;؎{AIBp-/֜X_Pªl98Ķq Me^k9З Vl74Q#ib,Do'eAǟ~}G|=8±,^p{UTi *&nQ$lI}\]%D ށG0? }) d>m=jlIJ.Gw" ;`߇~ÜG.bA?Yva=.Gz4(EZt6 )Ks&]}<$gu#zuy?/,8l%D*oCITg 3*~ I j/m8_Ӫ2*B:1F^̣ \A2/RjFImc7G)npjnAgK:K6 aTX34&H ;1cɲՇMH:{aJ[ bIy~J PZxcF_@3WOj fSGO`^NQ8;coS)2[uW!C!ȵɇߜ{-!2`8|0"h *@$%جW-A_μ?Uj0+xOP5p&*5 H~3XЮwW9 ё:D2R %9"sPec`1b56I#^/~N(I751X-c0HE][ITG˞O/d\\"I 1 @8ZRzy&K8O2f%>Y~Wcth K)7˺X}{e*ed'ɀw?؃Q +qH/QabfC4dDS[v erqye4H;aXkbW Kٖ\D&XY:k,{1 4ݞ*Kpni w&3Xt<@E{~/tiF尡S:/}g9rM\M*mȗRIWv(|>M& `m,];_؊!KwuMf=RNf̩Dӛ"`rdZ`m,&: Qoud&$Rm b%O Oe&QG ׻|N@4)!wlxt ƢRĊ7TuE%- pb8!Ese"d#5W?w݂ l%y[ccC/c"g Uzt*{߂hml\2Ļt,F~֘NT"%[skͨr[ԔI?aXn0 =զwoь[>3U *U6Z\7ys1@./+Mxܯ( K B^iZDd]G__U7+Z\Dmv㴙ڻA4&v/Tlio@,%+'s "`oC~$#YI%6j6(r?ɭY.ٛLwhu4I%^BwmvD7 *́HuP "DžϟY.^U[C'Wԝ$=hQ5W{@Z cT*+ԦstUwvFjJڻl$ v 1G[Hq=׶@K8\Z]Ľ!{ג1K({Z`L YP, 8S.)P!J[;w^3n/0:/w_ʡdD^̹$dB'zrh)%nhM9^3 DrEȚ|kfLׄWSDq16ׯ&p X74eX r_λHYp'S|CrPg$? hJx-cFע$_3X }۩+ݤb?WiMV30oh_4Kxp}Mcۜ0^d5Z\^gAHxu2)A_Q:xH(*_iJ:>zt&xo2wg$ݥ|Z.ugaf,~d\y9#*{->O%F̂+] + Kgi;h ա¦Z`ZxDv4iz,WS5@^a\ږ2TT~oܦ:%hΒP0;J;NLwervGQrFѫ;pioOdjh͚hb8{`QOhl\i/y/ Y<=ސr `-˥+r)\!u9ơO D5OFwG{f~W6U&rYԣ>]=x.0T WZG(^_A 47V>$u8JA! Ma6n_`*.:JgM1x񫈝{}D])I}YsٕTϵ5&/ݳo!vZ΢ 9T = U>hhw7-fLעV6kV<`&f8@/BiB Ie2?e`]{9u1 ~{fYgBzmJ9 "?GYeᓛ1ņ>eE:K=o7 r2"z5]yeA\(sl̔Ҿ.L<1&Z$`ѿ }-W ,m2t+ݎm ,!$jM=]B/y*C2R9"`̒cxnO; ۪"@wWo!zFn]K:(]R@B%\"JK%&yVcp\HM*"1BbSDxK AL<\/lΐkToV'XҤ2UͱF8zE&XfSKdT:, OM rXCy@ 8HP2X!+p$ڔD|FI ! $|BNʽ8wn%p>NhFt*;F|τ_ 7Qjp픫%5#_XHEo<9a.B5 rI?/z}+PxIMwրmy×4fjXϢ)\}ЎG߲|?Zy'8S;ھ3€LTb!EF7:h'ď_0J{r>oD \S M}#4(@(x ɠi$rz x."~luxj5ԣC~_;&@tpo[bXZs#UxЁ(8) /gwJkryU^m+kEE e4(ѿ/G%$>ّ2@0j‰_a,e W.@ ~N]q!.0 *ドy{-Ca:P,o{ MPEReɿ l>wgpS1YjDw=F׊>4нԘǟ*Ј,o..N?yru ;FIN t2Ҍ9:'dLKLPIld [?`QZZFڿ5!zXzȠ6]rz1B y/=(kA"-gWAf׍\cn~v\ UP M0qB+iN8w%Vؿx=ǛL2XN0_ԳI&`Δ}Al8ʼnAAF l12'+w_.8RB; GOÍҬ&Θ!*uoKYCvLɑZGv'jqJxլn./A>`c]۩0άhw}Pǯ'o}&1;J1Ƭ^'?Ҍ4ЌbM.A;a@> )qoHCXzS)!邶 %ecJz*h{\LӠ19k{ o=AJ BR#闞@>Qryj+LzɸB+?{p6E +WF{gb'7y9s2?v")WV(&Gʗصu(4#MO /V8G :n2Ђs(vRgnž ʖ u)8C)wJ ig? ./`lޒzu0gV==ҏeXBՈh op3wSEP2B SRt-8>A`yY)j;MA7>m%~؀^Xu-\/lwwVa?;9c >Tt:[dEYR^K/d>zM2؂0R_Qv`WExL2-R7} ,t.aPԆh"G$YAVG 8+!pplI}|5+qsк}۟^yYJL ΆH;lX!<%rucT i*!Vknzɠ_ymOWD'MA${R&P{ }'Hm1 V@0% <3܎%<5Laթ?:PhLpB0wS!;S5bA5q(Dj<'mpr(>Y-Gu@?m"RpR55^oVi1r2t 0[Ɵ*_˾*H5@;bرCc4'!*"vCFfmLc6]JQ^ $?'{ۇkN~Ra1*B^*TgZfM#nmEBx'lQ@\N`ZE"@c^NcK]ԓM6^%M#v]LAp悠 7 0iM.I,Fu^!!5wVX?Ⱥ_ߵlb*ϣOL D1*-K ]S*G94aEBk]zx/B?~`|a޷upBB2u&sJH|Q"9U*%dۂ W_-ЧJ`y69m{ןQz vBeX,cE/\+tA#ai2ԇ8N.¡Ik-% h ΜLP]Y7g-l`Wq}ZhT͍ׅyрz_̉5H- uJW5eHO/B ~k<@ޏ49(qo%YA[<hY*e7)TH5öiɆ& R>llOWPV<+Wui-%׀o`e!Edu[~<Q-d V$0 DMw,W_T~8rO?M2tN96K}zj"ktqljl"Tp5ʍyWfGQ] XJs!]Z%11Pj[9\-bFTo= D U BF O|KAoK$Nq|&]~#$^͛\&)"`teāk/ǷsWj{*8%Nl;}<vlg< t1i mpfL!Tm@=$~iX :|:^.4l7CB%oIވHԓégnڪ 9u4XD.lpky#VY|aPCofFWDp/q@c|_&vYfىH,4+eB\W/g6e 0"!_|)~uo*pR1<my弫7*r/tJt%o1ټv2dE!h3 \(_E [͘{ b(f7Ig(e5"'r#dM|x%D>X 0`sI1tJJ&Ez](2vvhQC5M|(X& 0H-,Ϻdf 0-*T_NIaHB_cܲ~yo(A$/) ԹU_qr ˈN]Qw$e%f Q-mHlD).e^f2qQi:ZQ>]Fٷ[ȢvZ=ݲg(뼑t[t΁#qiTk-X+QEc}v:)k@. q;X6B#?ķ5\-\v Kbzv7_-<+ڙ\D呀+Jȇ-Wbc,QD$l7!- E7ήUFMk3g }H;,Ȭ0xѫ᱂26sw롼.S~â 7^؋*r(v=~mHüP snw/\HX(?9hs6Hǔ@NN <~r2δ/}IsUC9\Ǵ)SOdCڞ0W W?$Z Nۺ?U+46'%PFqW mJ+qj;ZHƩ#H*~D|nϴK(2VR I#Mۃ<3dG'~7y+9i ѣp%216#l+ &Vino`pgAh\hUUs`.!("*8^z鬈K *zUVm#odć;]mce-u}{Z,K<Р#!  .${TiӶѹ SF" M'cÝc-۫3|c.^B2-21} khN쐂bG0mFH2:VFfo}^y12HPz<l`žd`+Wn]*`A gʣ챌,mh638ڧ9q  Q/PU8mQ!Ͱv3bP""cY(a`lAS1 4Zш'Aylg)% zrsd!;|G%ܕ}"_Y¿Yhs/gȏ L[6b7T%MÃ;Gi/!rU8'Yg$+Q4 @ 8ZW&Fz^\6L s q%lU iuq=RDS}8J3iܙ,1\a#OtȠ(+H]@$Wd M%#n SIN%塯M>G+4N64悤n w ,pyPڔ_ُlg+ aH"|b2yv 38ukݱ\pXJVbON-c5GVͬ:$U,5~gߠ"շV?(c}P|)t$ۜ`7nP:olx2'U;B cSV9uH.71 ىr9y=YE;I:GXt= HXaP9@Ƌ0bj/|ozdtɻpiDsIkơ~"-`pCO>F i 4B6{A!ÿ 'Yu{xe4gPͫ :cE%Ȭԇ_lzCC n0FitՖ02oSs"':n$mA%8dvǜ%죋LтVB#1:KL̘L\%=1FxK-]4pv/vԚ3g׹dqHf긿s,9Ű,Zzc<9-O5FFDZ^ys7Oʄi%ćXtG&$Nt)mXA!<OU5װ+pT Ek6gk+Jt.%l9?$Y+_LUo5z̓X2T^kG -RwʲPs~ߺAĖ)hᄿ=׬b_ƅ*>6l.1*q917^kfR3dm\ALg`,IHX&7OodyY8̂:u ,L6]DF !ezalj}z jSR*7.8A(%H$Aa5 Γ qdx)䙗A΀V[HB}иO+^IR©YI쁣p:PYvWAFa|<{5{e’2pCB c u*33()輦 *"ۥQsjMG ~9YD5ֱ 6?.(%*o:AS o9#lݦDpmz|A~7W*tTg^([gU"9{(O\Ο^v3np)A2*ӓ !J0 be@V}Q^pʵ~%D~U29ซqzSL‰3xcdq25V(!];NDd2ƍ }qć<}q(ʷɬa+YPu0,Taf}CQ  _iL%RK-Q &28gՀ>h(͐!ēr{rެ}C;u#y]T ALv8g\gY݅{t6$?Sk }Ϟ".iu}uU] lԄη5a,N2#af5qZ}EAS]Q5Dt=@Q.ϠM:UZ 2 4TݥJakS,ar ;N~K56ޣR  GԝjNW>4xLf}aߵzeЎW lWڦ_?#OgnwX$Ae4wH>9:? a(Qm`姺mˌIkeڟIz7YAϤJZ)O}l]QHi;ؚ/,V0m[NqD/ OW`[^tvV*#ȃi0GEka7K鞉ן2t "sFg-.ߙ/roV8*@l'4jğoO:Zlkp=\ 05j־#5QDy{r$v?Ijnv D TL]m溎%]/BUR&-f]iԂte_d>-Y X'4" gMbE 1@͘W^G.#pJ868Q,s)[c6Gm(̯I8_{<İG~rV@á8/WcJ^޷ -`ao=,wx>M}G d)0GEUJ`/qBG{L vmka(HNZP7O+($ZYw_~2Joc\ Z! VpjACE_#UwZe>Q<=D;EbALMG+s r\.u( Rύ6{.SdkSZ Y"eyo@3Mi<̋KpYAs?&GP-p<  dt2Bnbew Ghj됓gp繯1Tbekiâ炉gb bcF(<֕07`6>Ga"93jTY͆(O,흹U?,nTt7W*WmdlR}Ankx,%؀<9:9` l쮩]tcxQ$4y]2ƙ`um~3e Ei]@xK6 AY9lov I 퐣x##wZn<E`-ήQT OT.˧}D*78iei:EeE{pxJSb:\&NLڠ$QDJHA8JtH/i_}_N-Kޙ[ g/_Pv׭?}Ji)n&B CjZ=!3D={5]ڸ^uEvo"A|О/]7kcj?QQ愣ÉAMdNbj?Rh'ɮ>6\9{ZL(s#S?'uGMVc{۟8& `on~)uBe[Rbvxc о*VsTo&tn)?X#zb*gȯ4̉|{ܭfgNJ`uo t톇` Hö$.FfvA4a%Ss{J[W ώep) TAY_Y>p ^gU聧wq4be'4#)Rz瞼ोm|b?K;diAU `s%Kar.ڜF(MYiB̰xˮ:XĜsVB%ȑszR1 Ů{?Ss_%y'TĘ?B c(2*#nm.3Ez1D۹<aGTUCY zHI ?umV!:pn -xxa%W8ÃErLp,}[$fb0KRqtAsf^ h! f #FdYB >ɍmA2^Z,>֊ձ('燾;eU*8AD2%M;RQc)` Xgʙ}A&{p8ǢnH)"y8j=6PZ712 sīaS[> maw8#@;El+E5Yt;fVl5w:Xb H1JyKua5PϾ"E0|{ dajMq&˝y TF>Zh7֊j_IeB$sȡtnUVtv 6o"j?{'4%<;۱WƧRl {9"3뜗8/;\YLd.a)IK`X øPj |V*H+2IN.;I0+k+8)TJ= //[ PZQ/l= *ق?Ӿ4H0Y_'˄63'G;~KS'&ug^h{V `AG/d^p#z6>X9a Z.c2bz=6 emsK}?c(Af_O 0Zb#sJ~}Q "4,qU4F̧qKIȉ \<`dXg̮XUU2%KV*ByAjG|uC&aOzF%*/HmRεUjJ}fok"'#1*Ao7/]]HD1^}Wh >~? Ƽnzu}%3zr0cX㺆(PhN̉$l},k(I4;@"7+|sW3+Gqg Sl[F.=gUgXҤá|~]r_Fӂg<&pU!P$dgu욆0 L+gOd?W%f鹟 oul3^L#cXNr#Zj ˛eZveЄ F˨! T1CӃ~eCc vt4H*j;S1Q= ,iq}dD'Dl;/ۂcoIJøE -Yi{E;cO gt԰ H >u*+!Gbnt?mu]}0WzDW4sdۤ<_>FUΧũ"dh3XσPn-C W;Ɖh;*] n V+ ӛw2D4Km-w.9rsm[%)Xi[r|O8{zeXckf`y'-P.͙zaK {@ĩPfeb湧׬.姟/qB/$ ּN>_n݊+Fj]W߹1R5_z4[~) ?jM̼/^Y7  y0%~ۙuWtɗ*^)Sijvɞ6>1d-$x WNA)"y.x:ϔ~,O~4) /˭i3 9iۈ&q$Y qac%?"x[}C%ҭ_|Il-p?#Q+EN B2Jf@cvt-mJq& .k+ybB _':er)W b}cT=p%\3`?mb@Raa0AGC6%QXVTBt57T1R4>0 +T'An yqSNz'T  b軝lZMky~¾䭾Nig{-%eAm= |E1 LX7ޟRphc>Q^#)vs)Rghާybނ6c[/a_-îBJnC,SE+Sf0BozMD\%Az Q78>9hKH$23.ƀuD<4^3{kԏAaTsq&d*8 ~ZMy]X9|.NkW8;'8 Jk2A<`ι{bޘ4c uU@&YZ XDP Q0.3Q*c( (Nc9X ɭ}Ԍ$W(#JtbU ^)vSЙ9c`%[WldHÓ6zWt pᤕ4>f+.dJ`,3߽&4bܞc=EHI|(\zGw#2MܦU^vTPW}8h0= g1s&yn.8+YYAYwShWp&^׋ $ثzq/,Jj vνgW+3ONl!/E\#)c+_8{(b ,6|$Zfn{ݘ~>1"kmOj+hO-NQOBQ?A]6:`JnjĆPm뻷 oMnbܛ ^CIqu”.?lld61>eΠ#"&Gɿq{cdxlDO7hP U@ V @-I{bg?҇,_*@@b*]0ŴXu":wju|-]Yd^yȗ؇YL.c$t`y /!.Nƪ#%a+Ć4~&6/G -ͷU){q#O=LJFr~bBp#U=…:ք"0\H4HXɋD #se(乜GZʕ7Q'o(Gԋ%s''3 ZR ǴK¯K.{M5+!by:G_kkkD{(>f*_]Nm(Yt7xd}B 7$LwwƜU1n9W^hE}NE$W~0? 82D wGo_v_`2yk1-`RWS>hz>yTeC 52G?E'yb=! W.tzgV1@@AFg ;RKF-&.K7=N ڞ >,Mc-P`Oz<W~7-vZuGt]Y͑u0@3(l+5D Je;3Ƴy-UJߙU#(]3^4! 0T)h^H-0.Ly!Iu/S.|{ 4:3~EFKWJʾg[)Qmŕ2:r&ƍ=2oCǎl/\}S5f䟿WFlBXMQfv%X h܆'} GKf_r-kR@cGO܏^8W>BPS܍!P[rRÅ'I#MH!IrYݧV[FqMkf?(}A= [Btr>Ow@;^FTw_~Uテ4[da:iT/WXȖ82ָҍxlbϙ X)͜ N♬<Lf8{IG[iK:L?0)07RRxC~_b8%p@3^1'>H< (F.ȇ辻52(!1=nEq~Ǡ{)G'S1 yelh PįAd ,|sr{PYH#q`jfxUmZˬx7$VCD5VzܴSE24Et%آMͪ\DD L2Y2oj~~VXKdר{0g|VڦaL9QjѺꃷԈכJi xft,.2ue8?K} t~$s 3DUz~K6y(14F2d[3>`'!z{9fn*n!"80:ei hTԀkbFI򵼺>PXi)%Bsp"cҖؘr{L-|-'eYOa8/A~5X"(PS[?) eݺ%{۽#RCͽOv`8n xTL-U'c|Ԙ.#'1[1pbOON=fG[M>t:+/ەsAq(Ly".TUN q.RO^5A~rsg Ƅ[rsBl5~Us94$2N*׼їkaXc`MxH? b5eǞG3+Fvky[k^hVB7#RbzxY-!ݯG:&ops+ծqI FS 3BGY ^{HCVC?J\We:p~[ r`roOv5fݥ  s 5en4L"ierONwnA^eF5 9S3es@H$X?#6a?G+u薃Gͣd%z)C>2y?Xþv>Cޙge}u#_  v(y4b=T썝xcUU>֢'SMT-`3/Yob1y"H]? =\q3~{B =wCz"hrKj/Q{NxY +eYaXtˍ:A`h%)KE(({&^CeGrF3b|X .#avpupR.;$\?j%cJQN%+⭷SG_3Ӡm+ r}{f?T4ƝPm)ڵ2(w{{ilr |&\#-Hړ@XZv1\{l3"#fVO?yB6oX/@.-R7+DjTM.4&̦BP$f*;g6i|c0;2@}J;&ǁ߁ CE09fk+l*vi"֒# v|d7qع}ywCL3+F tXXDHo2m\T yCtl|P3Uc>#XXVmS29Qd^vJko8{]`|H1UBYN{9}:hzFi'8b*$]?qqAo8dWdTs].lV4(E墠#xҏc{,|B29F}2z^S̶ĪW9C0>icӣhܿB=:3f{ģ$bEȽMJ!D ]G6) A>Ft:N"KIgd*?dWҐ IEne\ ę͋j-+&>=hJiЀ,Y9i|[nUPÓAK۳9Hᓉ'~tT,'V L ou'}o]ʢ cmj`ydsv^&8l͙8+X[,%szMswZf_BTegr(v[ 2nX䧧"R!H%\nWDh(Xd=V*ө9qR戌?Mjj'LVu1fjd=PK-^I*DzӲp-Cْ|";rA'4|1yy|`[ Ul$@2~&g ZI)u(``vxh}]&ΘYfДe[\^4,ybN} c'R<^Hߨ0*1Z6 s^!F|`D3IfdK_քi3.'Puӏ&Luwk`N# ܗ[s$m_8'މJ7y:Kg5b@S6 .u(w`rK\ܹB*+HxaeGEw j۝P eM?Ur];<7^!cæW||ȔȰҴ?8y9ƾʎۦ¶DW6ؙͼ}BŮ"U^C5rvd !hΊ,<9yv\EC:UcY P["8OO1Ϋ6/=A>9P<,ʈSk.֩K a -J:mm컙_N'ŴoDo/z_ƺ ~j{gd>n-jL$1OKXtff=`]/ZݮxDVbI0B;0OXgNL1'ZNWÃ= ?7Pp2s4:4 fʉ}$oq >sVv3> AN`8 Đx՗9 H,VA.`RjX"dہ;ggL,KUyȗ֩Ev\6X[<_ w'?ܑ?&Zw*e}![dqXv7M4 ryA @>dYʦ#jZ3t` qGUҤBψ*5kwfNmK^::Ӫ)Y<3ƂγrEVb%6 X$ddlnȘgugMm^!4D^shMѰICI›nrA Tb +0$mĿF|mhG;3"Y01Xo '&V4[y/;V2ވs^M 0Չ?㤦w~{61`7 Wx]1KZqz<}!g1~اЪ}cfj& ,ZQg}b+ dP2@N9vm njX3evEy|24X-hMi85#({أtP2Pǰ ,H$hGq+zY5$H!n]j:)JaL.b]ʮƣvUqJd\e%k>]P+ M\vh XD}:{BwF‘TAovt;Tz+z85ޟ~ l㑀(/(MBzaϔr`%}^PtN;mnV^4g|I%orҦxA<ǿ)ۂ}O['Z]S$}]BQUT,wjK]s%MY=zfkP^,%>}[h_O&9&ݎȂu >G?@eۨXv L7.m:Ĉ< /-4˗klR&fP$ } Ju:bj+/41"_~'13D4.gH϶)*ugdX^{\\\)TK{O٤uoeT !ҬŵC*]P~Za27&: {k zAlU Q?}G))6nخ'2IʄXn.ֶTK[y ! 3MW׵FDTk ?߄N@o2rHjK,2Ç37bDoo=G WTrssb*;Ň|p @Y h7 ҥq*r^2#EP)3ۜ本f &dg`"ȵ>Rz3=y\$[t|Tq٭ A!֓ܨMD{6I#Cd"i[EI9اU~Bn6z +'W8"Wd`X%:Ʊיo<'F)qo. FTaMΜq3ȔύDskz1m~2OC-8\Jel|g^'Dߋz$~Q~ D*y$JC +giwڵM)rsVC.WzYEȗCf K0))wjP 1S m;э[J9A&d_O[-@'ziUq)pb-3($TG2Hsء h2&3E.\>"!3oLi s<փjdWr moA$ޤζ4ކ5 I"y yIȯ}3-kd0VYxH=?|. mww+]qAfUoZ.QY>0\mL~Ɨr?oӦ]^S7g$+!}@kL>X^> "zgAP\!/M/+F[\U'&_To* Q&/YDUZKlPM~};ۤB~V̵߈M]fֻDp{/~Bh ә{!&S|yh{ZdQwl+ ']m>U0&<͖.` Kn0E@aMRxU; 5h<›jy {mgd,q˅םs{LfÛl> k9O]H! Pܧl|GTleG xX[KXSk( V|0g; (0_VT^ p^>Qh%U#ylht$'-EI=H3!ǁ&~]   (")r(mg+دϲi|XhwA pRfxg-=L!QLl⮟oԖac-EzՓ̲/j؏X aEhoKkq_aej@ }@yj!VԊE [PP؇z>0^?bgڼg2i=>&q*̛S GO]R@.=^GHHљrY50 8}5.QסEE|ۦ"# A_ukȘqj' Jn"w["Ӧ'`%{F),0i]+{KS;2J@Otypvhc}m@xo|")X*UQu;ծ+_xtd.4aHc9TnzC-mQ9,VpAR LUel q> `ȩ ҏ2n9 $x.=ޭޚA<Ћ>I񛔸-Kl+dx6 z; ï6FY\38HCኊHyg4@lϺK@ĺ_3-(B$CX?nv`.` qfDf=+)ȑ7:Aʮ0PEu=oE*_gGƪm$n3FcaECu7:|wEp*DREAqU.?z 9ه,Sru.7=D:P]hP>Q;SFupoΖrg5irhFq^(KO#$U'i"|3AR_ .1ccŻmW=Xf6:F{g%j^WzWW*ЋnЄ~kem"~w*Ed@z:lk^Z 5̫@fߓRŊ\X ml} ^<ge-A}& ZFbe.6-%sqTϭevk1\RS!: o' &\_<7-> ,#l?{5``4F)/,^q{hDʴ S̺;3^ک3VZ5j 8*9ytp%$xy +=mK 6NMկ@ LtBa uE($o.:%iTҦN`cVYw>j9KvÜ}hHd]ʏB Ox-Y1+VO{c76%)e#d 諘@\+H3'#dR+XGCMcI0 OY ^XM:tK{,ږb%$r`9"y$qWgKJv6;`f6QGc:FtԘwϹ ƒkLWY&Wh@=IfvKyVcf ;Ei"B8p'ȪX"Vf>\nmUG:{A7[L[YGHX"T1>_Phs~yذ6_ 猢^- pp?( '8F# c6_p(n\H*ʫSj:1,ur*lP+>!遗ȟL͵W3m+pq ?: Vxn,[l=|.|0oNۜmڌ]V t_=_pehŋȱ*aI"]vI;u)n!@~JԉaZF%;F tGJ]|@|>W$\lև/L2~ee̎Blŀ]] #vH`Mx>} w4~?tXq8 U3עy[ġ K}e<-Bt)Z@0f>qY5wP$.`{MBӾYUTNЀbt9ɕ7pդH sqdS|R{d[#LbPx)m+| 3؟Zg-!Ü ,A א 8#N-Jat 9ܶ=e ϠĚ7ƇɉSfW@N@G0]ǚ(clI=*5oTYÕX ik yML)?޳Q|ym:Ry? *n@w `ҹ4Okq T ܃{n=N۟HB&edZeAq4ETOa?j$c > E4.pw5נ5UPG:Mqw`¥D$ xY%FeV9G?8 R5T^REG TlQL[ SK(OwAI_CdgIm,gq?0l 4z̧T<0A=a>+^?/$;o<\Xu1i ۹E.;Ci%ءHrc>wFI-\*$MT#[PgH@_nq#/qoNlOn a ;y%58 mˠoAl_behV$ϴ>I9ű)V|KJm܅NuȒ~~kw|ޤ/C|8HAԙЌ _E=OXD%ю\򬣉n_)A~ 9gU vž]J$oDHnh0s񘄯~TEkCxY7Z_41JfV{QZ:I,~61:-}GB ƑZ UH@[vk{39X'OcGe+^RxF7ȈKk1`f36y$) B`_Ԩ2,bp#';:'ufy }`r;| ;w H.Doib@OQ-o$ѹG$PX!e)(t5{Ooc"ZN*M7Xr+4(FX+21TogWo)?4$N4.FVU5O=AkByH@c Ltuۂ)v&PHWZ*Ve).e,z:T W@ዏa ғt,.R#G>Ǔ(`ב<`/qʠ ih7C9JT_P)QZ#9i5K\ W'o82YJ@V6?>:z_Dhژ%صZb֢?Ef/I4DGrF^Nw;Hix8*]cA 3<^KcWp^p`ԽAg EFq@cP4~bA<}B`3HI0sj0AcPV[r\ߦ`EǏ?\l&5I'c(02_M^vBmS1o/mѼjQ$a{"-F :̪"+fۖ#6u&y dREB!y}|o,e>O{quݙ WpZtX#ג5O!G!K?8wBp$Ub)`gEKa.C<.=ԝr~qwqyʺ7 8$>{A^2Y-H@:y4{BI߷5ԣ>"^Itݰ\/Rwu†)O[?̚)!B\ %[h(~L-j -KK/Fߧ%3} !Ef~j_a-z@w06,Zҿ [UQTa] 4~B[dO)r& ) 덠3.@i{ |*J]OF{utոJY!3$ ^D& kSM_lU` \5_I)vWg'- DP:uޥ܌O5{H؃@W[3JBoY\< iۢ}3(男ISAIE>zPcfzP/ NDw`/~:haM\Ȯ%[܇@ǞTqIDJ6M 00W0G\(c@,z%LC^4W\< TXn;hep6ʩ4AO.:Jt؝$r9m/ءO6ŢM0=cLQּ#d~X[VGTm@'SSNyGOeoWFAj<:_9OvuG5nNS5zYSMwb7Os&p@(XJ| l`˘ Ls@aJ >b/͟o߆T& F;j$ixA&!`v9ց s};qW8惜}{!TKp$uO\jϰ&rpiѣZz2<.ƭ(J^B2Zf}_Vab&5,(i0_8gRǫ^%DUc*۽ڷ,h׌Qpߢ͈;)Ex,ĞE1P"(t!ЖJwi֔i QȠOMZD0baؕWq=Sڭ iY$ ˏ`Jo،a>d,tk ?[]J++uŽW `e<6myyEh_n̍ra[d7Q(,NghxT(6\76z$=|yKfܞ.8yS|3YR.Sn=Uɓˣh{EdrfGrfsZ2Ek]~vI)2@eo+Jb?2'p"Hj,Wq`553ڊ_}Hmz?hGӈo[sePCKBJa`Λp Č\6/zѸ C*W&;1.SӢI3 TT|y+Z NRg:#w l)ɎΫ~KCTt{vX˱#!b  *a/O l1>1@X2ON]5LR.1KZhSķG"dyEBrުV߈}S9/g? 3ԘLb)v0# }H7:W;*S{XO|3k,c3C<[ayq.n!:p"c"9k<#xK;}f:J-H(&OB%Iwy'{k &̈́FP1A=ڷ̸:nNjC3G  }8^3t{]Q{`uvFlGeޯ3讣44㦘r" nM8A߇MbحG?o+ _ 9kL% o^b%ī(u.9W(z/|uLoEC#$cf}ePiwGW`. vE݁9?'*=ӂP)oto +ykf'| }ufVH]**Ǩ^֖UbV>cn>( Ho銚5u^C__D@Xd^$Q J$JUE. rx09_ |xJ=7,j(F*0- 3oP-IZ9 ɇ]?~˖/J M +ĥ"Fx2n}" &z:2_I?%]dW(gd*G8@?RT5>Kd',CA$m$" iG$I>>\i{~J\ʜC{J[U:rArȣDXjm q#|=443E_+ ^ ׳>]3_Nwjok~0i&[J7Fd9 wq|i1{㛭d<N8p*]7W0=j {rTj+c #Y.2Ntd/< \X""kC' b1 Q%*AIaO4'Poe%GdڋmYju'&&41DPNoFF=!Qi0TdڈYnYqTzQ[xDP;ODvkw/,6+:,-񰴣;Е`7] M_<)LPT*:}y?tI ~9Kϧ < ȒP_~R9v׼*J-4b[t5`脠O} qs&HnxYW6?|kc`2Ozp_H4yLBnY:=3sQz au>fybH^4\I@*8ښo_(/-"\Rz*MnDqj2_z^Gi__/q*2gFoCOUy(u w+0W\Y :^o$D-1Ø R| D@PÝu#٨{ WnGE*dVNs^( f-QMz6Vu읝=c Ha8}kk{+D?0cG ΌǾ+=pͷ ![Ǘk)*P[`VW@~-I_ѡTCBK$+ӆgJrhy_T7hZX `)ٲľI6%{PUc<{'mR b L<%/ny3,(ݪoHW(!{4U r_=Mts+w @0 )1`rOSmGEe A4+5rFczW?@/YݓF"6 .zVB380L-lWfyv/ȽEƗ9U9 &068uKwI0F" ^!…'_aȮ!PRN?f4ByC"娉Y@EĨ#L?YFTm[Бw;u.r*Ў3eNYy{ nZ8MZܗUT6jUcI~c̜buU;^Ym ')h=KQqd~#Z?#dݷ3'[0ʭ9uˣ L 4.s{o7/%B$C_8RPLWEP0 ;Y+VfX Rj^:wqK1E zV8zb恢\<,Ń n^Z6"م{kԫ%w!QQm$z/gW2irx$;ԄPͣrt2gr~UI0UYf>]wpΥVe{Buo*?sJ0s98G8մҬ0D|3'U"|'KN-ꏽMZ#q鯸*+ dL]Z0]/ߔ?`o8'/?kaH i(Azn!H=߸Sol"؜Tf3 elkcTFGV1}POoRұX | (h|e '}KvĒ,9X 1$Լmؐ\0%#C]Y'SW`prs/^c `LMb|7n23 f|x՚8şGgSn/!hop\+JQ_; ut6y$LT[l&uR^wr-/;#l&M&0@G2ԂX@^:;F׵z1 )nV2n C`b:mcIHרG>EW Oqmy/ag%H4e1SwgGѦ`KOzXѭEPkc4S7nj'UL+1 6 b9sTwzuԀUyss@R"ݼu~g("H{1W8 l/?IJn15yUl!Lw=ۅr w(G1Y'=)m RGS5Nͫ]<S-r+t*. gy^BM ] iF sR/*B![*IDM3}9Gig3XTU^l1Ҫ#Ҳs,qufq-$pY~kz8o1W oH}nӨ(;ʕA}҆GWA?rUF}˯SĠfo%Jd%yNZ$d:* :iLw\XE 1HΑw_6a>cByt&HӰ(kq]}^ʰ9 LLcZF6,@ذ9 GYI(fsuOhX o"oz"%c1ԳU)wAv:*}qTOemb^uwZP{)=>CI!f+3 /zHW؀VAJg#s3?=llE5͚}.~=-a1zew­ l8roE=>K\ɀ}CSW=LjGJ`ke_֧90hGvZQ}gվ682ΈU rA %-[r#)Y?HRҊfʱʺ^oaV-D5OL9-jVJda>2 dǁ ?ƉT/Kf?W:1UQ.@d _4গe/{ >?|u3IFoUf[tA;T .k엺i-{ëXBkEesO! !~tYxt+#UFFXi? 쨄/r<Ś"x*>_z+CCoAmܢ8닁y42#ʏK-c'(`G\/~nD},꧎.63hkk-U`393: :'ր&b1O+jHdeZ1요+U3#v!>;_h#"YWOA~7T⏙b>0+YE, sD A ෯(08KWy┛Havz:~@':}"vp 4w#7E6 Og~S٠"xR:pYX\ۇ%6UéLf_e*^__ҏ_+ˁm^?bP(Gd ,vS!91c\*z)ST76dVX+@jOute\vӕ*.ke5~ۤZ 8`H󷅈rˉl|=F9s\ݼwWBCэzj( &*q|Dʲ;\ǽc$:)u}43u/NR&Gq]BnsFa#ՄV<4x[, [LX0Cu3Y!/0R@ьc06E XD͞$/0e&[th,!GLh)v9?njeel{u!OGrכ&VJ45} hdiJNp[= v ir'>ݵ:^yUcz^`|MY6@zE@80j0*à'ш}(OHf@JNiP|!Y'G&Ҵ[:Cl,_lzt$:e&?OҝEGKm#Hr䅾#rZrR9w~:aMgvUNy3}Cͫc2<# {S)2;ں uypm.-\Zn ;Ϯ$k0;7ѪFu A FqABuXnV gPi-&0s4B% 7$]q:YY(t3`8CYXP>O ~f5*Rt3o$wV43݄J bŽ̚lzxKB&1AC3HVY!gK.?MM,^~L45xj0iHvs3J\`>o7FR/5]yG0e)kfХmqO9׿mȹ{\+eIR[% 1wdpt`% T XWI]mRʫsz&6Azi9/ՓXq8>ٔsk?d(S]?I"'mؐ|0-,aCO$K|qĀX#! ]S(L?8 S&\,3:̹w%Z2O1oNZ}DN <À3&wv:e1VdC=#[MB[qi)\-(3Ye<"B7 (1W]UE5mDw iC*eq[dprqN6;h Ye :wvD0YI[ BX 4Lr  >޼6]Al.v$wyh_$PFǦE,R}' _{OٍGdnsHkJRU6a%w!ee;V2>GVSO[Ԙ0ɏ#aƍywC7\G6Џӌu2c긎ǡXN;0uZHJoic'v77gE렚,'@GBeS5qhTPny4q-\Nl`?mI-:+T tQZFĒ%d!@"Ԉۘ" ~PإN/-o]彖\^;J1C,'wzܗ _PlI +ʓ[ׂr -MV!4D$ss0j)Ȉ.2zo.:z w:笄w%T1h27v%|Lp҆yZ tͪK6ЖntefHSi%I_vպQ. ]0j_AwL#NGG;=# ak2w}:fȉzYC% QP 3qLpa_Q Ow4j 7_s dq)J'(sIȻ^H%a/CRNT4g)Fy*K}2uKo'fwXcpO JbJ#lPJ7fsXw[#2MB ns];˖P1 >7RЬty+WOO5f+|]V7_O|{0@Kʬ/qr.߫c Uw87y\oebVzeZJ6kZ^fYrWүuBLYOM"2,1v {(݇ l:$tؽ#^TCQ<3,G3u)0Ab{]6+ ^֥C>EW0F>+GN&bN'h)"2p.mTCB\ Ӹ.DF]J 4 (MGybsiu'h.<@ lIz}*1潇mRCm xt73.<jr_'tOjPcB&kn $y~Ua>_+hwCDl!& OZY c 1\RSVPo[f!.vLh4QJ 4pxTle{HC7 CDی 9VRJi VpF5|x]yл]7+V8P̑ś. ')nn ]Hk)66֏.Eyfmݓ 5&u"kfS{Nkj$li;WH!II؁xRi?taWXXG!\Ԡ0v}~#οtp|#%~SA-kZ1?GRBjΨȢ<03: 'g{L< jnѓ"KMA=x˂n]7e 4Lnk(\mTB;곣 MIczB`dif޳]̧MsbMH I7 0O!AKeV|hգQKڀѷ.[gkaw$3&>cJ\F@-\9nZ! D;>6KJ[}0gr _XHXEl%O8-a)p'*\vY2}QD:U8P[ߋӶzkӕQo1agcq .G.#~sl&LcC$y^)5Zb!ݱڿ+M/Z : u:\ay̠IM 95F}i;KMġ 9:YF;%".rۦ:p-;ARvK9u=72\9s;>Svxl;6{z)]ݨLwWA3E2Wetғ_"waй]h!'kQԡCW Y.\(H)=o/U(Jk>LON^+]c.@ӔۊW_9v! OczX8ieFpJ b(:SE ר`js8#4_*+t DBZBk*BgBn 遯WRyHn R֣W"YyXrpx3ŒU׌3ᅝJ/ܢ7e Ez' tp+'aNxxL%LmvM`ȡjŋm(A5]:B q}xoѨ|߱ hjZ7[Ux%`o9dD gLO8.6S{aqDμR˷FtPXr/;,4txn4onGTl5cǞMbsqO5l4cl  ~!U@ص7bqjsS.Դ ,].\)-}`* 1B=(ְѬ0nw]g?eyq9$\}D6s=IAZ| ^K~} (0z3jL4"8K A~! ޖ$c𚑛LPa8%h }y%?$ ;^!TL5|Dܯ7H 3GaF5H",N3cE*h%l*0@2Uo5Xq_gՙ+EW?1uj? UiK4GZs`/Y›5n^}/QQL];׋1$9YUlôT@JйK&A,oB}ߙЍ+8MH 08-%V%P{oBagwZ/ #,(qCFB͋JV0Ԛ׻2K>EE c G6}e:L꨸*"\#&#!~lt2p ?c٤xl syʖ3c[?t,|bS29X|49L9A"l@OwR&:)n3y E^ A raoVʝou ]HѺFf%[3tE@΄Z{٦H{#$YVOlբ}DSII8$AޕR;x QC@ՑoiiR!\Y掫9&YeR^)$ v("a/zLS2WvGLnQ~+d{N2iDh6  ~&H) πfKL03 {Yߨ،UcŎuAESϙMr󅍵eX0 TPj眵:-/]-1DѴM<(.59~BuƆ=MS4$RGT\,nS2!_7cfPhoYfBYڦL=,yu3z7rt|~"q>ih,SRi.F.:,fߌY$R*oe(@ubAycYVdZ6x47*0Bqk1-1Mؒ!ZMwc=z!vDh5SÍZQrZ?a_|kjl:}0k#>|wS?-XKd,L4U3'^氘rʂ̀mp.;>T\n4C72o$L Z1#m5#G P)u"6{c1\I6#h>fՆ|kVgf(j)uRW׫DA 7EC!"jF Ş{kL&NW^q M=9$=3w="MHVftG{L@W}whZ!Vԓe1E2qq|=e] x+-<-KǬ]S]Ti4\AJOk  D 8 P͸LlT5sYx_>n[rC˭k7j1koDPY-HIrچFCA-`jٲ:! Ҏ~.pifێc2wZ ^1W mJ'\8nLga`:IJ jRg qNC:Ѥ}]/FcɷL.Cc(.=]83Ӱs( F]T@.f\6EGQ>4 R?.J|&f.A2FoL ܬY縠ybzjpP0CfF",ÎM7l?} G ҷHF >jӹ*e漧L@O =" UA% mc*MxMRnFl[xΤ^)F O̟&kI2ZC ɭW qa,|3E*q%+%:CWH׭+@($YO` CPlǂ{Y;m&*)21Udmzc>˃E𤎃[}+LI9|f„u [|p߾#ܓ3t!OL|IcǬ]h<޼N E#ZרM=_Ǵe)W;~-OOt²!@A%NnASAtk`8hVMfEEM`6θTγj``t0j/hMLn#ŭ͇K?gEd:Af&AfK 9l1ҫ0f|l_WHM5q9۩ r2_`^ysJ%O w͖-Z7Yv~|XP bl- ?'m+b5^&)1y1gXa0qpy ЛzhMRJb:f)aq@,=д\k{wP-c*3&Q0w֨>IJ̓uUIx[[(:<2xp)¦ij-;uZg)#0rw*,$94јW ͒~tiR}APNe=rҾYob062{ ܴwxZ4>8ƊpP*Y b@*PjRؒurwt,nvQؓe@F}p"aX,U@7MY&/B?הɰcf[y>M7J 5w /iZHX#&*Dhs ~#e>',˝{vϋy3T[<#{)6o%N><{ʸ:ڛ3*u 3vη?/ta6𝯚NHOF"A{< 1YT^}V2AyLuj>m]tL&e8k# eZHGo^~3 *c$ _U{4o( /jksT<LI%U~yltvL6,kAPazpUkvzv{SYŴZ g c:xt71cv>5p JDY~dhИ1EJgWcC`?̬ߞ+j]MP9bb渷 o`fp+S ֘LRMK9YJD4  9]h7]mcUH+u@IOc%d:Ei# 4|,T4Oto}z5S72-ߩm?4"6'0 x9f},1|\csd<*fD_LLt|k ¿ITd[ (Evcp 5sc%rE Œx1qSxF{ywǬO&%P0kk٧ZS弍B5K$/^~sZw-A4k1o$PMs'e{R/yBO<up]4 F䦷oЩOs˭ۯ$b" @z~9N'޶x .lQQpeP:j\%L7ԡC֨yuwuhMM 01,e8 @ü5M%+`Ȯ۳C'=԰f#3u]ͶѦFe3rY>$ej{a;-2Ќ1셏sq2qt*Dh'"ћvKEp8nkv=(ĸ {neمjnIic\@auo*y$YCCXԄC'b i,`0M;_ekx6JS.୅"(QF2{ي>)BT=$Eyl9+ɥȞśNCd[gr3q]ׇR"Cѭ#6@ZfMB$,j˫r9M!ݯԯ.AUb ~D92ܬ;LE1\X%*CNG}Or7=Hwd i*e3R wpDh9\y!Bdą?j peTbc\>Vu2cwp˷b4݀loSyPA5T"2qFkW31񤦢TG+Unc3 f6'qƻ kI951/ȉ>nR\Z]\2B |Qxa3aAHq7ۇΈc\T,cDQㆌ* x/5:U-'$pAu`UIzSu*,51j'F^l0G<އ|?ȓz2 7TƵP3C÷vԡ#7ЪEK+$E_KrKe>뎸}*$Ve2ɖ[OnITN鐉k/@-D< ~ik&" S^h|HlSHAS1G!Iʢ RDlb|eB!Lb~m}èiS9X]2  DߦԪ'kd;2i0CbBSo>}r iaP^XH0+S3뭅-|Á_7ovrx@nrmV?2ڐF,xEKCE~nl(-h]o}j0q;]:c^w(|@(,(~/{Եz!yk'H2'ګbrKtЛZVnc<;؈$QL doL/_Y)6Th*+nU}-r+C>ui]r H}Kz2sQ}-EZ_:ޏ! /z$**"xNEI{˶#&Ҋ1f[2䱀14y{J9^fPK=+'a4 '").  { =>d 9H:KVo rbmXf!F&ns6*57RgڟQWWNYn:e'cdq"Ngx\nz~@m68Y8WPf=a0pp3AT͞4`}y͵_&Bnvd;gաiIL+& };-8gNz&yA$ػ96[`KHŷSWM1o^|;U( (\λpT _WxW$G eI _xQe2{icj,b`0;S]= 0V泎$[3b" "ꎕEG#했IVH,/ N?MmE/(tXW3G͓=Z<)U\\@O.Dž-4ۚJNm)3z'rmm͙=EtÒ`ԜbyT( c[Y+` <"-.{GᥬkIxnxOCZj27\M&f de_[]iN}&gKpb6-NN& [nLT2l`# n3ȩ9+ܯ5mEEn~h:WRDz3c6Tp(,J;^qߦ_ ݮc|Yf]`&Rܗp g;MeD'tϽmZ}P_'&"%4mU!SBt &0 ڂc0Tw돯>xs@ߧ?Y&W- LO̯ IGRg+WC A/9hsNv߾F.>(jFXKp~GSԩ0D[7wAj O2Pžt!]Υi>uLr/I*&|#x}2Gm@ڼqQ1%y*(&PAvxe~ç?tz9qCgN3CN)ɩ9|xhoӳ^Y lͦ4HRBLΜb,^KOA+N1gmaiw&^-ۉ lCIr-j:h[|Io4=V|{Hro}֗dXӒ]?6f.b sZhYhܴpp3TyNʊ\gyrrL}l+BE=Z,)OɅ5k\o6l6۵w]hm uG c>`!XL82n *,hiԛPSx4r3? UOx7hE/y 0* ]`)@&fAVzy@pD.ɉ@Eru)O*wo_v~(K 't$\nHUX:H #NUwED( "+ˬuq=irI$J&UgQ۽lJ!Ov/7ZnL%ruڟ$5=GõJ<6;'ϺUkҨۊV!?\2j=jU?M5 TF9f )5u!ΐ-H`RngneKwW6u ]^9Yq¶=h䡒.,  *rH<_$ <*9W$mwL?fDq 놕&jBzzEIcXG3@ep6A0 М/9Թ[P/ ;92#t3NBc5B2=@sκODP"+\]|@MqDuh~%fe?G4]xv-2'ؾW0W%ٲfQ(*RՔ*QP=`|G#l-}> ׊9Y&&Ϧ;"jr h Bx@2@UD&F3tF)&?R" 9tސj%dR_b .R0Vji1Ys_r]GZ4ʶI'xJA$迷a4dtk.Odk$ֲnҍE&,"VH4В2i8r':S uZ 5؀(P7xe.|V(dikN~b)צ+w-B&r.8Em&~a)y*dŲzvg[jhPhs d_Wp Bh_>,䝭qJ)6KE@= {2Dpj<A*xrKud=OB{r>u3P .Oz`'kqZYd$M\KZbIi $#ͳQy.F3}OPJ_\('<`x㖏7@AMdh"?+enh/K)➌2r= O;# LIP37ljŕdzgӂK/7kU!Ā Y`uQM.? 3XûoOɥ/ŻrBp~846[ B ґڳXkVvhM8#[ Gi DIF)>'Pν^).e:4iϪC$kxƣnx kAW-y{{UWr>B,p+buTRe!anRVH?QJ p݋ȄE%̷o躅A @n/̲1,]W%è5t^b,)H_-Ub%[< PiGXnʖ Y_y98;GNҴ0T"S.{~yQ+0^&74O!26&q%&ڮW% 8ɲUF1,f|nMsÐG]ayy`L{\B᮱y rZ ػ =fd_KUolBDW?vbx+>;6W l}L@;҇(M3Fv8Wm)_p3̢ɫ+Qnu鯑 -Cy(jR=cuv+1'Z k-)0U\ NEOvϧ\'پuB$:9Y1u &dS8ښ-=7pl1 x̖>%I5T[+A|8fױOl/YΰL_Q UIh/tY딁$S`j C?++"榈7|+4Hqz!Oq%툐CAw&Y36hT[%v.@zIsԝ|X@1&TG.}r\[mĶߝI) &W]r;+5Bm9 Ldvc9XNf>ZxdlPzhx8F<\3,t*7b%2OX2jNAa;?ijʣ2*f(_ݻT9@!EwN'_Њ\Jʶ1Y'~ʟ^ϐ̪KIyŲ?c̼ r46.pF357'uMP7\gr 2[a/| 'eL\\E0"qyeYc͇i-MgFAxmTyj>Eh(/ȝDvL[tq:Tܵ΂5 V{*&~ GhZ ı yKH7jsKf;{_tuxxVv+OL+z)E6\P\-@1'j 3BP)NG&C/ⶇ6~Q&Qôg;5ΨD'&ǍS~I_Ѱ9R^oʗ 0VB}qଊ}x]xXk@d*Bt񩉇-}/#vt?"ep;rKw~%,1+#Еzr7C!kAʧ쩡|,&% ,j#xEy[7xuf<77R! :r,ϙGTӘLi;{9o*C P嘛]zY\_ɔ-*5{;Fg AiuHXlG0Nse"q 8(XR; vXd &V,T(| qymlO*u9pF@PEkΑgqkENЍDA`gqVqڑ) xR+!"#"&}ePq OagqЩ⪕`׶Tp2m[kZK~|?+ Ln\R]8Mɣ'$&5Y(RIb;hki!JXQ;t,wD ՃawAStYƳ-lGIf͏\W؞qNW5ŒulC~j*%g/gmͼ*3T 1+SgJ|{mB* Nr}*qO,qdVq\l_Tg2@g9B 2?LO:9}LJFAZ!H7WύV1=Ӵao2}:kWD-2@[J.t﬑inV~G(i7 VK*DI.fzB^i-SG'*GvA@1QB ށ CVx":D+Vchxt}0>?LG1&z熧I*_*n+QLj_(/Ӌ)JK)֨,Q_d?3?OH %P`^ㅹ\3_h-8XDïWUtRMKռ['T}d'(v40ت_E_Maؠ8~l(~3${#gvoMCNx U e(%#Ʊo!*TM"6v(A Gw?'ĕAV0=RWI _Qq4ߎ{xLő|&+ ؤ/{; .nuT)om-;P{B1]U|sG(>E!2?\+G#@ŭj^2hKT԰t`0No\U Dl3GMzUnϫBGHO+3dv;*ZtsvcUTsXR *9%&p rQ"ye 5- Bp~gI *X[8Rva"X6oT]wZrj&{ՠ$2Sz,jZ7)>y#+DN\h@sWْ`Z!@e ?rmL. 0,N۹LG។qn0u{񦑗<uܣw3(ʎf@$6 i+VF:7/S\yGwZ!Ԉߪ13&ؙ&b,vkv_7~;JM `;n`^c5.ODLKeZ񻒪S٨WZkAՎjN6>M-S"j;p`=~] Jͮ4܆6|鼟=A{d{l'1^J8 \S0- ,4th욘qdUt#K`32wzCjU+-ƂjGܻc״#߱uS=`ؖ{`.%6*USiɎ%;3M>68ؘc5`q\xP7\סw7ѬU߸ErM/0j"x̳%.S, n%$]FC]o}ZMDiy ^ ޒv xYH\ܹ?ߐEeQQ/ǷDJf̐-O+I_.HuͱܖȎuyʷWx_ `\q{^au+bUFяD^hEC]!ֶ ,ӗ.Y[0᳒K>  )ۤL+,k^/ kMT V( M=t5{ٺ>0}(nT +ưs]-ؕ~˘8~.Gtmnhٔa^q frI[3ʻ\"cGutS&?ASeDzr#U$Hye9,cւ9a v W M]W"R짞.UXΗ][6k`},'kX5A^Q` C{e1U}J(лPq̔ґLɚbF΀k`}->`W, UYK6!S.x^-hPu,*"MGeHvK#] ܷ_.ׄwMbl=Nb21Tg]`ZHpBu!G+-絸u1L 1]HmU xAT0KNy Eܳ%þ%cD6ƙ7l.u؀.7GqwMoƑ|a`" 7V{&*~dVdZfV,-DOpp@ 0c]`{7=Ve-7$ 0K|+|3 OsxvH'JvC=;-$8- m-jC)-Li^ԎHjoViiBvi3}r;n[ә`޲墽  `qQd: %9roI\ibMӑr'dle87pzOxRBʹ- ͲS6`0Kdp` ql6p ^!BU*s-G_ vfD''n!sp]m5C߶G 4y'aے6;`tZ5 (JaYGHR"Xu9{1b*a!Ytn!J— KUaUp30BΎfW4#ywx | LMzI R8PL /KM<̀'q$_B) 67&!+qPEP";mׁ-S2\ȸQ,'9v"> èprsb5ULZh0Wf1_FzԘ` Ahy>۸ސ_8 ϵvFI{urU4`]Hx,FWܨMy1 ÿt/_ ;g;&@:ÛEЮk,-eϱZ _N*S~FEЋ'>AlaNQ~ 忇vFfO+:bgj⥎4n&dũعb9:1f?5DuLaQuGspx Hjt^Mţ=?,0n=S<VWAS%A4jdHg/kHJ: \54B.1.*rE4i$4nBE[~*<;:`ցak 1%RhhAeth.٫]}]8 w(,ÁK`W'~!;!5e ;>YD6j4.z_ߌc[ɾf((=YC@ Y~;OR}0aFv%GTŻC!fxG_aV8Q wzm[ӎ\HO|$t oSw6cf5J~xO"?v \Exl E١X E/eg]lv d{xœ?h%&Of(eKJk[N{a㝿W}1 rzd E!>K7jHa-Sćh b(~FM[sX !gA$^(k \eumrIR{bG)X"L!KS]Gs|l=PwlWhV$zUSić">3AXfӄ|QF؁l%A͗WO‡R:^F&/'OAWFX\e?~\A 1. Kmp~dYtpF̺N&i^3%Y&?j)rj=:|\U?uæPB)dELިƜWkLHY_ԆW͑|3Tt b}36$i2VVNbMy4|9zi ?8\$a֫RO]jYwU^r<jdiP*{/w:J)PYD 1RXVĒp@76Mk}ڡDK-kN)dQt:#V:Y"(wЍ:JHPhA[q.w _D쨂TTߢx{A_.|/POI"bmZ=F鯐/i2jRH. E ZJH*')g<$WuW.zx@ ڲ!䜸m~.]S+%;e*zw@>n׳K)@`Ƚ2޹.E kwW`w*8e}lר)JiMiXM[ӄu+i =װ>~veD@V e1[vWVՅCቩёk^ݵcI8-GB|_1o?1&ƴ&%xNdVgtŏ˓uAZ7D?ߵT{roӆz|ŇCg[yzynUrgXLP+Zq\QeTX<:p[r^`zO> ?PbwT/p)qY: >P#px iԉs؏ws"$PuM8 f 0 Jɥ.Cȁf;ʐiW +i)/ZjUy :#@d#g.=iXPJtČIpK|&Ɵ~N*h19AYf .3؅^P8z_xu;Hq0"_d9?O%l*J=E9nn_bQBdȘ=q(Cj[9>vF&7`6B C%WM}- -\Ăt8PlPbqpöθ^Yzˠs;r풄Δc;UALmuT_pt{ӄR)g_zX}A̹h>r#OީUpz)OmO:Td?ؽa•_rNo,Zo7R6:ګ&,7wLMC\~3j6^Ecb|_aǩ,lb9)6hˤ3,A>! EVqqy6P篼0:U̕!Y"z&s '*RU]z8'k/26s(r FNv~f4&*ryXd ÷Ա@R,ƀ\D8.Q1Y-ZR  jۯ˨讪Pd(y7ܗ  ڹ0N3c>O E?W/\&P {UWc%zBbE 9Z=ci-5> ѻXIV܏∫ po9R1RuCOa/zP_L2xHgKvB|j# t߀iW_ÒvْY8[k;__!#)$i;kqxk*ܘ!8}ՄrEӔ 0-& J}@%'0{A/#"C b(i=T=% н2zkjnLB[۩BL4 G./4^%E4\E8 +) >/iC5^'aD/p1 #Qx?C&rrKsBʠ5<|ME2a^(If9P)$M[*>JN M>^ >qW~{ܺnnYqm5`V+_2'K8;Wb;@'^X*T2)ŷ5yl ׮.x P_۷*D % USE򺫤0.~X۩0 D'_p,,Qxso(_:짯S=`T )A;+;N?ƌ[۲1kճW֣y';o:N hK=*zzТKRΎf+X6t7W2*!o9mpJ;K?wX!GZɁ 3ѐ(Bz17@EIvE ]3l~jP ~P W}lJŦxg~dܡkEiG%ʫ) Y9dZ%K* ]/,[ۓ>XvddDK9CycjknUa C3gEmMbF4KXrj \ 8˷օĄ_+$8 `V{d:* :D0|jՃTCw ْ plc#NsJT16210241024swap_lv1_20130601_000034.fitsswap_01849855683548_498eb08d.fitsBINSWAP201306010000470000791228PROCESSEDBINSWAP_11165_SVA1_2013.06.01T02.17.35.tar2013-06-04T15:08:542013-06-01T00:00:34.6791P2SW_PREP.PRO v1.4ROBPROBA2SWAPSun EUVAlCMOS 1Kx1K174Variable off-pointingCDS100.00625000204.800DN/s/pixel0381.80614.80631102411024offHelioprojective-cartesianHPLN-TANHPLT-TANarcsecarcsec3.16226783969003.162267839693.162267839693.1622678396900512.500512.50018000509.710516.22020003460.002436027934940.0015500663171390.00195256367.22171548904-0.6615686496790.00157213880788946.3935278741516909124041516909122464825631.497964974796.847321548233.87146-4825631.497964974796.84733100000000732085.11299639.600089304387.6685271285-1.04999389648-1.049993896482013-06-01T00:00:19.0002013-06-01T00:00:49.000-1.0499938964811849855683550184985545579018498556835500.7071067819000000591offa411onfixed360010jpegoff12065696000ZVARfS5QZSAQfS3Q2966804874 Title : swap_lv1_20130601_000034.fits Author : ROB Contact : swap_lyra@oma.be Description : PROBA2/SWAP EUV 17.4nm Image Copyright : Public Domain Creation Time : 2013-06-18T13:00:54.579Z Software : SWMPG - fits2img ($Id: swap_meta.c 4505 2012-04-18 04:53:12Z bogdan $) Source : p2sc asocnlstxml 1 16 2 4096 4096 1 2014-01-01T00:00:11.34 SDO 2014-01-01T00:09:20 SDO AIA_3 2014-01-01T00:00:11.34 2014-01-01T00:00:12.34Z 1.0000000 1977.01.01_00:00:00_TAI 3 LIGHT 1.9995970 0.00015100000 2.2734380 171 angstrom 171_THIN 80982796 0 1.5000000 0 1073741824 16777216 16777216 0 100.000 0 14597 160 243.050 354.280 5.54000 -21.2400 nan nan aia.flatfield[:#213] HPLN-TAN arcsec 0.0000000 0.60000000 2048.5000 HPLT-TAN arcsec 0.0000000 0.60000000 2048.5000 0.0000000 1627.9907 sdo.master_pointing[:#630] 0.019327000 0.59948900 2055.8799 2044.5100 nan nan nan sdo.lev0_asd_0004[:#30946796] -7.0124430 11.152043 -1.3000000e-05 SCIENCE NO YES NO GT3 sdo.fds_orbit_vectors[2014.01.01_00:00:00_UTC] 1.4959787e+11 1.4709668e+11 6.9600000e+08 975.96248 nan nan nan nan nan nan 1911.8572 29508.145 -5794.3859 189.47610 -3.0045670 2145 -2147483648 -2147483648 -2147483648 -2147483648 -2147483648 -2147483648 -2147483648 -2147483648 -2147483648 -2147483648 aia.lev0_isp_0011 2014-01-01T00:00:08.50Z 001.197 453 1767225647 2.2284664e+09 2 80982796 80982788 1535 0 0 241 5152 10 0 3122 40962 7 0 2207795 6966712 8388608 204 2000 2 ON CLOSED 1 0 41.119999 26.096001 55.327999 69.332001 2040.8040 2025.8680 2054.8921 2068.7000 0 137 201 236 1 5 0 7 0 0 0 0 0 0 0 393 457 748 -11 -4 -10 -11 -2 -2 4 -46 4 75095548 -32768 NfWAQfT3NfTANfT3 1782392182 0.00000 0.00000 FITSHEAD2STRUCT run at: Tue Dec 31 22:54:15 2013 FITS (Flexible Image Transport System) format is defined in 'Astronomy and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H FITSHEAD2STRUCT 0.00000 0.8 No valid revision number found. Bazaar not installed? Using HV_WRITTENBY manually included revision number: 84 [2011/01/10, https://launchpad.net/jp2gen] : % SPAWN: Error managing child process.: No such file or directory hvs_version5.pro 5.0 JP2 file created locally at Lockheed LMSAL using hv_aia_list2jp2_gs2 at Tue Dec 31 22:54:17 2013. Contact Helioviewer LMSAL Franchise (slater@lmsal.com) for more details/questions/comments regarding this JP2 file. HVS (Helioviewer setup) file used to create this JP2 file: hvs_version5.pro (version 5.0). FITS to JP2 source code provided by ESA/NASA Helioviewer Project [contact the Helioviewer Project at webmaster@helioviewer.org][NASA-GSFC] and is available for download at https://launchpad.net/jp2gen. Please contact the source code providers if you suspect an error in the source code. Full source code for the entire Helioviewer Project can be found at https://launchpad.net/helioviewer. TRUE glymur-0.9.1/glymur/data/nemo.jp2000066400000000000000000042516371360775562100167010ustar00rootroot00000000000000 jP ftypjp2 jp2 -jp2hihdr colr Juuidz˗Bq㯬 Google 2013-02-09T14:47:53 1 72/1 72/1 2 HTC HTC Glacier 2592 1456 8 8 8 2 3 1343036288/4294967295 1413044224/4294967295 2748779008/4294967295 1417339264/4294967295 1288490240/4294967295 2576980480/4294967295 644245120/4294967295 257698032/4294967295 1 2528 1424 353/100 0 0/1 WGS-84 2013-02-09T14:47:53 76 0220 0100 1 2 3 0 42,20.56N 71,5.29W 2013-02-09T19:47:53Z NETWORK 2013-02-09T14:47:53 Glymur Python XMP Toolkit Gjp2cOQ/  R \@@HHPd%Created by OpenJPEG version 2.0.0 FS ]@@HHPS ]@@HHPj_GGqTWE^^}_7coMS~g??O߳'_W9_GO^^U '?W~?_>~?}s`OmU+܋{U?_J+?|_i~E?}S?iU+{1dOW^?ڿO/@~׽>+[+{{S?WU}-?ݧE? ?OW{?;+ _OHUu}3{~'{KGu} \b/iNߧ} U+бD/{gVO_Kh?aO?i\;~+?W_5?~ޏ'~ {P5OQgt>?Oi(Sc?Wtosz{K?_~Q4?$ЁJ7~AEH ߧIO>?_JRoUw~_c~oL'{_:S,Ox'7A>>O_]zoI>>_7S{>ҧ?}~i:]~]_nS2 ^gY%7iH+kK]Nbr5!V"Ofz Ùލ`xkmCW9B\o6dp!Cw||iLu?uD=Rg\00>(x Rq_R5u1&'b[1G$9s^O_$ 9KzNz1a (+8'>X /LvʙofSTppchR}x|ZniZ{bdQ/vivAV03gtD<\ǵl@st 3U_skXͻֶƔ5yx?8fǓ?n";(o&[TxEGa[(ޏI:XAUcŇ3s*~R; *r+:pgzQlUbʓ-w?v(&{8VTVoMq<`PgQrժ^/b557*#f˫#b*I @> Jp7կb*y-(I7Ŕ끀zeUʲq(IbLO=`9⌛ TV,1#2^#4-}v,Am-n_upYOץm@~Zhzmu]|p Z#ȋF$s 8AFϽGI^L؆o7kLmtI[3~(^lKp藥)92Zg%8s9^Mv07ҝg:F챬,7m0n s9AzN;{'Ăi9C@]kܳ!C^3. ZS*SA*g%Q1qf{w9^4@ M/Nf"i.賜Z,%`l1%Jӊ3Bw2^[DAIaCb:; *>>ϯe0!Ӽ DlhR܄e!udBm\ &sJS#aQw M8`hWFh?K.$8#cSSf؋31o3Ȱ@.j`>O:7 {ktDDiV8}E]~WhJI}6fe~@(,.w~]- 6;> bpVO=lj|GmSaC@1\')`^1(40Sv[ ȉ{hK'g4TH7VbzK9gČlR=GVCM9ctKUK=:9d:տ{@"y bȘ7j]lb0#RpZkY?j1K۸_ }zŠ-=)RdӡL*ւ>I7ST/Po<3ĕGУN%߽?ڲVK_ksYK{-}(q OmuioMzd 9OF%]/Ii6O7Z5)%]1m {3*cր%ٮIoL aI3j,_t ct#& 3eMQnCFN}HF1Aޑ[q/2(*4L<&k˽*"dVOχ3KK00V2eZ9v=`+3Mb DB-<WOI\;gVΌ)PYken82u "Iy&z>0@[SHBzǒ#|\=D.޲w"oc1AMv c>Le; ^ 4jb婊3-Kyb띟Gأ7nC- i8b{@8W 5]g5y\xa W# *LEߛ-XI]`۩pǤ>ґ#|՞OU#;*[Bt,YbK&D_ATFju=B|Lo)Z"l"hP0݈V+' Z9]Ñayt;f"0\ ˓ „L'N&}V#׀;Iᩪ _D{)_B.ОV;u|iRTn$s*I7F*3^}ë Ӥ*Ȁ!eGW%E@=L> ٯ [m^>8P mѐYnwKQz*VE-r0֋bp{3{;qbn=,3H`qvԮRD)W/2yK`%W-2...5ZI-ټ֝ znVvQAXCF0Y ^3celؔFmǍ8U^i7 0%),TfF>bgVRYzD7KEBQZJn*"0Hp6H&yO,$B7d&񜈭ㄸ< XkBB;iAV}H/uOgd}}Vف(>ʳG7yXBs^Ex\6^gf[˥k(Mc_s`nCr[:{nJuǝ3M+ ;o :m}剨L~ bԫ/^m%ܞ]@dǂ@~]:T kbvڿ*p3N%mpt|>zܲ'Ɵ©p!YMZ}~ m cC[xINZu[UjFLtb7MhPRխN-m ځ7fvI!VI/kRWVk I?HpnkR֏0]=/}k^ԑU0e!@~ XsBB1S~Ə26}^}сf(u:A+[76`o:vcfjÛ;o^3,:,di69)LG ,FOJltm$G;O+tV16v P<-:Z%OeQ)u4])" QUh5PDq -Z9Hyg`nHV|XՌxڳX?:D/Wez{7|jVڍ uU۝v .kԹjł[BR8R\Oy:yH po ;|q[ݢ:*@x6'>Gs98H4`%XjՎ"8Br<L \"=6 b>#/O? Ԉ"`ZLqT`0%v%QIo8aߏmU,'|c *&y6I%$sO_oD(l MGA|"l#$NhE3kI<9e Joׁ [|e.Ls5:;?1+::Ցx "ͫcHۦdıOWJ.d*BOmpHA, NnO5Na`oa/UCݨX]u80HUY?}(#e>i`%R=9^yoǛw09Y7,(6wnsyݶ坆oM~۷6Wf)Ûg97cФt0;iT׾B"BiS$r![T6^ p2>W1K"Vā9uGҵ%l] 70hG\ITkŶיc}*iz+7ge3hMÂY;Ut-*D㾜ǒI2miط rl1eȆ$Z!0OxD}%]DF7O _~G*+ѥ362֧.l$#Id蓱`!=㕽2TiQR*!+,{KR?4TkhXl|Xfu,W 8Lk)zAYP_g4әo!(tqQ:}1ෆ.7ѿb09M`= u{%Sqq8EA:k$|giz+0q=شdPmlV(zI"<,(:lL]>ly>C< 3DYxz[m2،8h} hð Q,'kbŊeutLXZ&>ÿC*\BA9:F;`kAd(2^h0 RW_[`׌eCYMGb؏8+?$.TmZ~_ e*YГW,ց&c?/n8RO>>NHMc mi H2Ƚ_Ck?FGJrG˩#h}j3p3Mz7jk&E]PO1Wg& [g D|g- ^%;C]C;ڻ2], 1qs7Iƴav'AlKqt >i !@4C@ Q~DzXqQzh| l$ GϿ)[9*eް ΰiwU\MrBQ5p򶕎plwLMӶ=^m Sѝu;Ojc?XDWXm4M̞zJDp9%tѽylF*PCΈD N<ߧ_K}R92dԦkUUuA65äA@t1{}?ig.^x~&T\ڐ"]vO+V~ؚ+%NpU8*-TS5 pbbXd-LfbM[kK\Rm q*1AJ+ q&5o`ʆzv+x9=(Cѽ.gHGjc}PdkOG ;X}5%*Dm w% DYk32)cUU+% n=-2zH@&Eo_Gv Zԯ}HMRsJ&,3CM~-SB{]4{I16u9WqQ~8txXlA q+=#m ?aD!y1'ՙM%'<wl!HrsIU a9v4'9I`C۔d~?XհS%JeY|RSl/!5~%räm>~uiJJggM5䨈Y;D$ό;q i"AR:0JFr"BZ'!rqU4hќOy_ɴاTBt*[o%7t=lq߀3>Ӌ3:>Oi@]mKr)Ym9DŢo<.]s*c"%~\H'VZqx L\xY 5QQia<`^c7ȇrr@̜D'KmSFJUŋZW߶kޒ@YvE ՞ev$Lf*H=~ϚzkA&|a5/kj@܌ v6a/o鑘_ **uTWGN%.~$CKUя!ne }n@SyR=3)f7hb FJK$.22N4~$:}-A[7Iphݷ94t|kPw_*t4M0lpQn9$5UЀvXXt~2@K=oz ɊJ[A;GhH `[V= 8n㩬fwh*- ~D\nʠiuYEUNzHr$fv  Q,EU: V ʀ(?RQl<^dG'g̓NղI|%= b2{Bӧ?ᙡHE<zvwE`> x%~K;ItpjFcٚhg}{[@.f6] @>"#"Ks%fkhR˯^Uugd܎@Lo!Ϯ"54ruE:VZ\UBC[_zjGրZ#*f|w@6<|},(Ґ>knY&ll!v) l/畛5.\R] |HcNz fPq΍KCIyOR<8bUH>B2q:ΔJS?wmu"IH;,8t3\ ֎;^ZઇNjs>9C[^oTZfa. y_y8gKa&h,~^dj8K/k2UE9B;cK b׋WMފG(-[Nl$(}=>oQ%˫: ~& ^J0+ wASM#s Z@osS$IksYB i&Or!r'A}ѷIrsbQ@C&Z㙕i / w+# -%[ VQ˝k$Y]9u`DBk#RÑ[K fȆpsكuP!Ga UAY zAhZBg'1)?`^jS'm|8kP~aְ52n: begCМ-_B8,ʹRTInyhu"b*56eK |0&;"w;M%5.%59{j+}FDٳ '!KP5$`mK]/pal)ҾQf2;sa'x.7^ٱhAJAҪˊ;(Fj"U x?σB[QJlҟC@9첓NƋ8Cӫv 1M . #UewϺr٧{'TY Y+?А; јfGH"@ΦQ. Fs-G`=%E(r5!&6 /8 |fs~~$>6b쭲1vY[TrOr8)aʂ!is!٪:0Ąm8|R& ֒-틱 n׸m., R2kƄIoĄ=Btڢf/BnuL˦pH$UQcfx-1`U)ff(=DtpUA ŏ/"paUu&<ց"&r[ CwfIz(?+5y}0L_aAldhxH>9sKңz؀FN~<7E3`pIM'.hUE٦l(SCWJp , $BND0և QAV\I\ˮ׮`sjtO}q6<w/t/hi#!h݌ JGU9)wz-fKj2#|eSlKmKo=@OL;9@{s~[xyM! $a|9\V5 :q%;!\m># ,(LH]QCIv/?׏=>QakgNls9x<+& *{cXn-a^E9 6D/R%llJq`딬68O-DY|qXoI7.CxN\k~+:JIC0#^D!ozZ:L+QZl;$$$v Qq>0m 5ϗCp*/"\=Hjcn5U6W5}x9]W"oN&..(vGAY tV=DN._oSO/X(ɌVZAC&n-֙~vwLghj?^ZhF>ocblX)4{#3 l7֭a/7^2=*ݐg;Х#f@$,jRe9'܄wj5pJt`Zz gaIRLg7_6wKa+b&L) 1r@ ]tz1RN,OZUusIrör^/T8IWA:E+xQ=E:CWWҾ8)շ6>j~vE!<7scX{N{ksqZ [ sq ڝZ$gi^Ć |a'L6B[P}LIr0< #~vAX`e@/-킿4?U@2XuAץO=1VarUn>,sCJSA;6_;usmf&n$viEObwP*Jrm=  H*?$D"Y4VQ 0&e9`@SI=YPh[.DúBr-ќ.=Z$`tNơ"4ӓ/dryM< [{na񷨿FҸP?(5,ahwO"7ʃfLJ+`Ijfecc+y\q{x(Jc.O cރ6!o,Hh"ˍ+9tnovKϱQ+VUw@W]ZNlT8շl5El+gAO}ߒ/_lrO3"U|pcf$3/aKkf w{ H 4n(!%E^o`*(Ъ}\]\`ބ_ִ! uaRؒawk>]bxA[$0QU<S^.yinSq0q@c32[{6Qmoy,ᑕ/p J4n~#£u"m'$/=:Rbw'>9kI 1-Tc=K{J~C^T(EEӦSS'ɀޅu`1[Co/ <f{ί5 ctp+N@y9|MQ7(d~Ut+.UQ1s>Q(% oP<= mr>%U1 _[ҔbuV8Ce'6[.~0줔8E)MÅRVwܒu, ӎC@Ỹmv_R2dmb?E(mbznEm/oss$m=D5\4c\e,^Qۭf"C9^G/,dpJjG0XQ41~,kW -^;V n(̟ν=~i|^B OE]Ke޲ܜ. {MN0(CLGp⧏Qpm[լe3" EK/Ј\1AVk,]__W *3 ~^wmTĨ\;'P0>שy\.e܎Hi-+QTnAU0Nsn@B%fL̬ʞYjn̩ĵ ]6C*)aw_0k;hKA9q#-!_{/a i–w {5uU!&tL ib;ݳ7(3cE}+d#I9QZ`"d;zƩ[į)|ADKhiTHϫ 6ruc'@8#hkٳkɖΒ&Du\#ZMgl@d>Hp/l4ՎbeH8Gsn),UL{kY_8\Kxߺ >m%",y:Nr TrK6؅2G)iM?'O΄QqëG"1/]d4{*t?\M\)p-wHp#5nmhi^u7=W:Y5t*u{d!/8{&KlV Ks M}di~hr^[^t^#^jUr&X vxgоƥ܀QZ/8^[v>9?]okٲ dÖbF[g:s/!ϡ T9^qūۣ,& CjC}y7RN`Fڡl0 YB"BBYg枖LR^?:± WA1-m},)=땃2F8&NB;5>$E[ V>|9='v`\ &B19.`Ъmef]0gMIlg*@7#c഑"0 7 ~# 3V)ΰMfבC}Z"%)CӀEs?3 ^ i%W@ M Jp}'̣dB'Lk7 k@tZ#'Z}֚dX@ ^Q$=<6jfeCǛm-O5Iyecz£3—>s unl8 %-P{ :IKM 1ݪXBWgssdB`t%-ۦ(+Ɯ¦7%)3˷^'56(GOl6'FSf+;* ¥lf{7e 9uC Qy$uA}B9l쨐g1t<4vfö,siIur6E"e޸d^fzi}w!B6q"}~fq$//Iⱁcp(6M?HO )rse#-A'^v` }ɩn(B@o.+@{5+[GJ&͛sLJ;9挼#/T2XrۼָYS!w{<^)37 KN$ѼJaT(^u@O(얤z> r *E<a @lGqL#4fyptbŚ@~I[#colصJ=,J*= 2ˮjltw#Sf؈ĺ?"R}I#)gRv"c,'ie VZj۫^lP D0Ӄ0Vx2-}Ftv=>A|cG>:*eе_V5 $Y:yԃ/A=Ea+ޗ7c6׵Kzt^o^uPry*+0qI~rUpLTtO &8!g$jk#nX? Lsh=Ŷy-aK7[ :\lyGD(Q9-AH7{3۽4a?.gQht MGĦmT,|6_ ^b~0Q!?vnnk n9mzږl(i/K`tAi!b嗟"U*:m Ozid5t*z{b 4ދ!KҺE.;SMKDhz/M/Ps#K FZ NepRI µb @ %4RBoDM9F*c!7a£ow6B|󼩇&163t:o@# ʹDx)([-ϝB nh^@Ҙ_dK!#z%f3>X1/`ֈ-ef ^"OGgIksli)yN?_OZgG-Q.[t'rzDko|k`Фrz9:$֨WUlx^D ׫}}ɵ<55v@g;9 '|>0p TJH (-EϖLtr9_K]}:4@JoRKVL6Ӏrؐz6yJZ`6ӷ_" XVC2CX&9ƽoAa|Ï`j#`?BJОdt:֐[t @<̟'@NCz_tVfڑQLn8@e0:P4[/!묛Ow.e-HˣʝqSa2h\ TN`C]лBCAÎѮ,VPPMe)1wR5(ң4ލL+ fv)QC'=/W=%xv( T7R])EBh>j(Hm8:ylp2wᘐƛ#n/ASGS x>BcuCwb_̈́CiBS xBOnu]+<,uwH@)`;s_<۸w @i!k,o9p뜝%3#qE"FC n2M 2h < xE(kl#Bo'vˍft^[:/-:T#G&},p"S".>^7PIXm/D-q"s,TKa+tV4Jm5QѓL,nߺg3"d`*JPU{r(Hg*d0u~+-w͕XRA@ڞuUUhlu=/; .U+ڭ+ @0әwYtI}IG!3%RDL]Jd^ X`< ip_wL~3yl'mo'߽RΎڶfga,W ,.P}%ZePgiDK`F]TFtr6i&\w)ȘAυvU&G bKLa{n*1ק[N@Q\ZFEN| xhxOϊ|PL;< 1Lav(Ivѭ#ezҪUzΛl!kx-&m[ $)N8 q,zihN0$-cpZN QfbFR%nh u^zݚIz|$ Jx,$f,9C'&usdY`Soa@]v)HSpwne|#oM5a@gi~qM!/2iL.7Ynܽ^,jp|AreՕ68?qDE&Q^DN♔;K*=p#dN4l73G(Z~S EFtK9:҃BS2఺*enQlhkI<^C2t<o6wl]N5Yl-vjlU"<MՇ.3b9q*Gxh:9|z7|?a7qĂ"v^)Gq8p`Re-M pUUdӰE_Zp,eJ_0܀rS1Jͬ2}aO&51DճBeLDY)/BGlqy}ߘ?VǐgȺS/k{>a!l`X4qFjKɊI$Y~n1qjG/J1$9Z̤&0q^89!ocV4HF#v! wMoHT. YMaq нjRZݴH;d,M]THP̰!n8eG U}kv: HcnbeCA:&wEm:=6Vtt484X=n fCbyJVw]JZ (.Mq8#ywpaZO{- "FK@nzygBԫXAnicԺ oc>IG#|%e9Uy:UK'*Tq1f?T轜>B ;}zja|@A[Jv!/$$ߟ$KW"uۢ>뫈G[{[pŤY/ a6bVtmtǮD}:}}'{BgV~o@,Nˢzhu~I|NE9€}ɟb3KÞ'IX`y2 ANPSA!&R+os\]nH(euzzgƑqL(NKb{_/,z4U A݁ |.s1`' DWg$rrbIc  ,c[*_JS11HFC~zyxW֢ѾW>q?n6M:|^K *螲  WHӑu!S;o-Wp4Aa$@׸B_Y,7`P,F_F1 DXq*)E8'.",!xFaDTPuOoqd~}/54p`bd?䖂]yS`'ԟQY֭-Tٔpe 5Byx%ثK-ڻ[mصZPnW.3C5eld%H'l|ZJ%P G8J:Q2ME_=FQzԢk #3drRԩe^%l<=G`QSY"ߟl|07*O9%~^TX 'Cub y;:e0\`!9Pn^ mB++ :Jm 4!*0K xvв 2nZ@y>s{ *5je3>N#wٵ: ,jQh.PF+B2?]GJQjW6o׃ j ) zB@wëOZ *wSo$hbj \:v %)TxYV$2÷J-vWyݸՖ}({;P*$N&Ω?IO11rpZmLF_+Kmo#ڰWEG0Xa4Bkr)_I Z"9:u,+$. ITb $X0c˧D&-ޕ ʓ&=,g7%FR &g)Ѥ|N6BJ-J"܅sh^QJ,VʄM^ -7 /l;ԃ Mu96F/R'M PKL3υ *]LBw&sM%QO EgPsq݈Q F~?; "3*!gTǘҢT$6p=E^3=l;-EQz֐˺g8ė _y֤ngR¹[rKx\s%alJØ^j:rI?(Ϳjԕ Z63S(>-V •%k_,kڿ?$u"lrC㳉k_KT.О A'ּ_I^'Fm,b1mx;;N%FF=ŵhNQxz@fN5˽0}jt /f~Q~*XmfV/DQ6}@[ /96(/y=G+ J־X׵o`ԋհAG'k%}/QPBxZ>|{%{s4ŵl:(s?Gt{գ8[FIiVi+\[`E$*[qmO'W>e@wVC\,:#TQAU95{Ob <)]f<\HZnG#9`5lF̡?A"b78(?v2L2؈~/ u%\8fjAeO %:ØP5UL' ३V/ugr%TR;%4/Ŀf+27G~P$̤ۚ>I _όAfݘxҡz J_AQv'pLZBTrMLe%'hkң. yyQA7O50rꛨNaĺo $Q[$;u AG"p-ۥ4YuS!(#]~ 7"?T%sE6 m*d˨fdFYH)ٯ7_Q0}^㉆25Ntk㹸M#cUX\i(TC -` αxf2_C.郖7+MӅz^#MEf43*UHZx &˒=[䘯:s'6iSѣ;Ө]䈭 O DIUa&78h^+yxI :\",5A;jnm}iߌhy&f.D'P7Ǖ>y(:ĝ^yu85ou8h|x ]om/$Wf4,M_FG>nx /=Ӣ6}V %'0kqbl[rU>PJȕZ|Jü*-꟧*WϮX@sNU8@4_xـ!Õ{ N ]F⭛Pպ `A_W6@I§.wneb՜wѤ^«zմOʃڥы1sr4ѪD =#ҁރ: 19#*v|l\Bų돠oٺBt rB{>M\6{B cli!x>m^nMgeީb_8ubeKL|ؚᓿH |*ERz9-!ZmlO7aQ*{Z_ȣp'<^ኦ KmިVUp|D+ mSTW,8w;*.67Z~_e ?)d2}19ŶTK 4T.X_ \7|@ ЍWƳI{A 5lQ?-𗲌 D ]Œ@1x⼫cWYwL$K).eMgW3@01;s玴pC!p\q$(K|if+( bcoIxѺi'H~t`u5˾ &I?ZH#󃠺*  O/cw;fhA%F^YrL",\NXe af4@~L (6O7 bCD^}C@F\Ձd&4PDjZ910{od1 E0]ӟ)lkg (~q7ҽn:m&ĻZp2܍b\q1AѻTUe $H֩tP֐̸l}_e&ld*^ti'VGh!44ND"} : '$6'3syˮ\Uxi^W46W 3<*t+ܰ9 e70A Z7u ?_-sA;jF\1=*x,Gim 碌1x,]9T q刹: s e]OZf~(x~*܂/M Pin[Dy46]pLi9]8W̛,H3u($\YGoE76#jo4-B4xM6ߜȝOQ%uzE`HǡW0 5٦XsO}V2"O f#Ȅ]d1+UcnneA[0ON cqVg D귍W &c(k1F}KO9x$wuD1xxɤAD=0W#5?clujR`K3(fn CĢ~yIKþ5;F c$+yU7'aAAKo"5 tIb;SWpa "̲ 3Slju~{np4Z/xX;ՄJJ1SD&a'4.=9-f&C; 67k})jܩf%q#P%\vKéTРq![gBzr($!fA6+a_ Tʻ#9.>C=8d 5WI.@P4<[kopF&=ag( v/kdtXp]=cfQ9l\#JF)L܆i-_у-*9k :ZQ~Bj_2IGo/RNkv6٧&ˆ"W< "Å>0 I0 ?؂&-%Zvwѷ;Q%oyTjv,yuI_(hb&D5i{%4~ Vyd[7}^']x@zN⺵+k%k+3]2cBN?[t8"2w#]2cYlNS-a[>m9еy}M6'TZ2 9%i6ȖQPC)` GAcZ2"UGKL <8hFԤd %LF`덫-bJ 39aH7ti7s<"w(?[.'&U8iAtpjG]9f]LxgMs̏2 g$iC+Vgj}y ?pQQ"aO/MŎ}@L^EE8!>,"h*6“yĬMK-ֻD('YIb!%b>"!2UW_534p#=Q^yCQVRib׆.L ՛F 'UWy}kh`D4ҁBFsZ}ι@)}y}--~+Ĝ]1rWS"fM5!tpd]{FdlthA:(qx 0IDzʳ?yTXzE۷5 `;M.p:qqAe}NX,_"pCe.igXQ)4zg;4ܲ+r(KxǛO"4F\ A9v䛈 ukYyƘ0vt]26;2h|Su5Mzf68r|@'4 5|lTǕ~.4a{ i\x\~> vt#"w<ONJB| hJK,sGor &:6#a3V胨r (ʷ OEoTīUp \Qd\ܫZ>J'(-"<̵j'TW\{]ׯ%&hPa\5?վQ5CC&2{%0'Gk`&8sV^̲OLvnHуBa/ot0t5yUqw*|G}1 -#XҰmƖg52VMrq.kWoG\ ֵ<™#|862=_|Di[i;QbO yIX)̵:wL&%MEp+B6jv=q)<dhyJ>pzdG{gz@Hwks uoWe7]9i=0pUA98!|׸>93ju]]w>V]-k+J+`8{ MҒѳuF2*?0uc?xG;})J9 סyfa[}ueW#)ktv[6*nL E[,ܳ?Js5$XZ`Ly©WΉg`H-;fK$%[(;4IejM0mv#G:4;LNd %wՙnO3 Rסac1 @pX ;[RI+J4X/}=y{~̔6Km 5¿`g&('S~RLd-Efԋ7CY94*u}6&(i؜;dZSgLRstf[:lf/H(9$+v[Ao0_{Y6eD.:8a?"jhzF^CM (KNTLw#2i͟7lՊ1Ҭ_7;O<^~Ҏ 9]Uaiߏ8]T\g-w[lq1y<|{azvl/eFEK*ud3^ 2[g ~i7x% _BIpH4?L O&ܗFG1gr1%Kr >렦<O<\bQ@pus93^'Q]iьo1I߸jhe<'!jbaqa*\Df:rÇB_ jemwK[[TƘgy z#W֔S[bmQ'Y]9Oې=@#fS nYKe013f<:>*047pf[n^#S6(̻S|ys^GB.s+–VXKfitz?|qPap xtT |pɻXC/Ix][?XN W~7w!7pYi -9=K^쭚R 9hW.A"N=GaCCWiŢ#O2}ϽfXyhEL]\ᥡ$dd)D|hY >;jqRY=Fwk{꧛@֘e3j8ؿ%-W˖ddAMVߴd;vGM~"A^j43nr~e5^v1Ё,^]+n)|2xcjoP&@:i|1YGp|Kk]cw7|Z'">TǺ*ͭT ;,2]}'Ue1rl Ӈ˩/O9!P! j+igqC3Q_}XPΩ0,VE{SO܁tg$}c:0ɖpnR8݃,ǿQBWozRD's5l%sсrvX@ŧB8A5RW+rǮӉV [QV +e4;v-Gue{j ~W8kBJ4:`j^>DЊ)|3e7|qiĎ̛{qpINYz}w lN+$8HTx>i}$)5dc%M~η倍,[X z A8\b"{kgk?sErӸT·3)Q j ¢ q=__ O0_S0L9CU۱j/@b1_ҧ{6.U#E"kC_6 %0t)jK"TVU/a@g MoRwѬcQG̪ E=0vk ɒ4YYvW.FOC+:Z#@B4 #Y-dRԯ g(?=miN3c<+ͯY&PcKm^Кz-`q#&>Zyu0/ ة+CuL [lJz OCDy( V!hFi]8 ȋC{ ل|Y.!;ю6<&\/oT}U25c ImA>F Da}v`# c1xka'녒J/Z}z``2\5* 7v/b@S1/ճ1ŤvuU5tDNb~KL 2p.lft~]H{4߿, zγ H$lekM) 2 ZKp|c +u(GH ι+Iv6n R9V{O!Fީ7%agg 4FiHYaKji8|38,SmVzM@{U1fdRE&hvIga:xl0>DŶN&Ek/1eUZڌ_Kz&@{j}-{]|(KYz &C쩁0I =*~9GIg V5-~8 vSw1a1'Q+ptuT=Fqh;Tqsf̥b3 3@_hmlQ`DhBp/kz#{h1U* [+v8ADUVkH(,rh'{o6T,=?ArCy,쩬Td'M0VnH)!rsSlVVnګ=ooU4gA!갬7w޸dz\Qy|}g- ڟ՘3)jQZ^Zsc9">JG\ԏ|ƻ‚f -$;5Oǹ^`bq璳\L 4RwxHFaz3.i Ըzl&=-fN2 `P{E>Ͳx! oU/_+p]{yLcm^v9ES!&B tWHZ3&K4ȲqHa@ ԗ=Kn'7ɥ=R/_`'O%Reʰ,Ft("q0^ЫBП6IU֮Ns`C&U;hXRVgux%rh*:vݵ)WYi3sᄯsřhN$ҜP꼇+81îKZ(mx7i)U-OuiWu01C2K7NPܚϛV'PO-lwIk!K[Q m{`w %ᣲJqZ*u[I<9F!¦序`|gI ?n^):e^{I=nV7H:ȵԳ>JԺ1bb1} ]aW(  !&<|DnU($'#XPiwkg*-mPI-;:N{u ?ĝ'VcM֯'[Jsb=fAg㐒`IIWbvz=HJ} P_nW6>2ſcڟv*`5}$"B s6<\溂7OMp[R8(!ڕ Gڰvշ;~[yޟx-VOulCdx}edF A]}Tv49c¶tku buˢ9X:Fh2xk{hHBcb S>#1#B}Wƺ&~ EAC xZxZ2*c^øqEg՘H转q$bʉ7!֚J<ˀ )ѷnFM1ZI|IN)<8#t~a'zz P8Foza4/COE |I uW _tb~[˚9.C|6rH|~!^ @pYQ@UnYqtY;[u߽rVjM1#^--edhWWGe$CZ`!̂6s b) .&ٜ(~*ڊ׻ɘiHv%_N9"18Jc%kf|)G'݅V='u2s ,U z~ōC̈tESëdbvZod[,p۔i=zxi#v#EeN啕RɃ)u epQ<,̜} a>Hu8p:0iM┥%s{KL4# lW1cx<o$+fh~g'jouн.L7a\tE)`ߵ'tSem+%vR̈ʭDzz47ǹze+P) p6-)`qviiqzܖQK7l9I/x2 DUZsI¢ȽT+9zWM h5I r)mΠ)}}!X:|U5$*h߅D}rVT Hp {w3Pa("87k6j4ֲ9(J0,B**|NsU.ѝ}J/ o3+\ќ(;~z3Cs3ܹjO' 5K^/kp;[U#TtW]Cx|g>`a8ŝJrnOW7yjC YmVOk|E{ %:bEM,])₾wD |wnrI: pYU*c@C9iNKީg|ܐH__Yhw>s{bX` 2ᰯcRP:]XOlDWlÎg+F]I麆4Nl)8?blɱCK|f`ʷLXt83 ŵ64?ZOB)#\A\Mg䩄V +'ZNF&l|D.&Bh3iy#5x*BK 4V, 032EwTA=;'ܨ.Ƃ%?bmͯR!$T$Iڳ}Gt-+'))T@A9Ҕ#{*hkwf#O81%P3_}Tj0`b™t ņ34b<ٖOW_V~L7ݪuԴ)a;PU\'+JL(/:.X,g%aBY0J{-|:EM+E1$RNnіpOD9> 70'MY#ҏ)`}sb(\Oѭ&T}d#ga n / |Q!$9/L}p\ WP(9@EP] Qp jKQ.@Ss!,@U!% 0G0 نe9 XH` gv g;r)?B3\qQ^ ̉'#r -n"(%o()j|hUZjiGg'9z8.aOo=M(pblt$nd<Y*,S_0 H"1jHx߃F>P kj|5Z5ŃA#a`m!@ Ggk,7e]8X-oz$tiuX7J"vƉmU(WLHlBQ?lK(kci׌қ%#FEJv),]|֗d"e Rn,gُddL:mD?~0|'ֲN'#v84CP.$lsSpZ>*zXNJk J \/$pGT_ ##Xij֞ D;g#`:\0QXC2N<J0тf˖) 7鄢 tr倅am,1F90jJڵĄV^r&@)d#6i`ZeC:q4_BfXDp* 9J~ gk,&Ti fɋ;6 J>)Hi@U*hتVh?T["ؒV]ˇ& 6fk)Y1$s=Q4蚆&UF֮A~S,]67c:kB6O9\]%sx|q6䘖HAri.5v|ʦ'n+0g˂*9-)yA^4ku_ ^,WR.!oZycF?g `pRq$ZCG |FQ<-1 TU .eyN,.r)wZ+;6ͷRnw09zWwH#oĄ7N6ub|Nk_8C<@vA՟MwZc 9sMg;Prғ! f^~My‰oo|{O4H̟^igtD~o* pONAY$O/lafyjI\3!Ax(cX&& ]ܷ,ZC}D^xÐ|bԨ?4Z0qGɜ\:撥+`lb pq./}9w|OE<jGw7E!P;/5J6=|z~XaϺݚ,֢H['e,TKvtɉŚ{=. &Lnh7Lrt^R,T2.oy._7ζ:Z{-+L%25ZtY$,q^3h8R/Ϝ[ҲMW%P#`Rr ǻ"d_G[lXv+*XKZf '!AU)tRM4ve4\h2uJzh|wڭk9<@40k W٪Ǘ&խ%S"9(OjAg U;6fJlua"Y-;>U;5АWwwܷ \g QbMܟT xv8 ' ɉ.nB,_ l7o˜9Yt =xIR|rϯvf0>~n( -F, ͦ;F9Ff4H=^(pKh%mj(u(&Ȍ (@_cMH;JqXi<r08ZCH-ǁ8~}Դly>n[`ed)n'O.\~@`|Mڲ}}8Z'D̝,G"76s]#"} ,* Yҍg:pđwڂ9O[Y 2JA&},G*PeI4&=&Vkl53!jш$5t{'wI>AH`eW$K0tk vr]уFi^AO{7mUd٣e { ٕU}}STyl_iImm bipbQ $^0 S֦"$ o?GΕ GQe^YE0Rr&r18auaA" ܘїek cZ}iRLͭq`j+ᰛB6I` jꆲϔ|+,殖iwѕ f Px ]wb 6W=H$hS,p4';b/$]a!wm v",c~΍4v~:F+](zjx8G#$\~i|50zK,0l3Nϋ!23jK͖ զ2="!1?UXO1#У4:wX ^z¥,d^};zbR{zhӐ1*&`_ Has|שPp(]Gq.Vi KRƤ ŬlqVM(7֦, ֑#e#7U̞0>9{b6?2q qHԝ€×Un"Ga:Vz9)&UBP HY<3ёxxgj58V+Srf#\~hkr>q)QW N;ziz1yHw_4BOC@p#xaR=/V qGOzW==ypAn_=U3">ei2~*/AYґS^UuPi"Vkyx+ ܢM!0N"8E"i'XEMtL r׭s< %/'*3R-T!ZI7X$.:lF´0k;U&#h+@OS[uDh`]YgsӀp-,H&V/5H0p4<$*TV%<[fp>j- \bWx~\Yf]4j-s1=P<-\^% ׽8kҧsTĝ>?uY?wSD_1 p~U)yI?[A_JJ7 Y/ԌZǸ2Kteي ?M0s(-tw<[b|zR$]% y9Ԛ2%'͒6\`83ʖY>_"n_ kKXCg"@vR PbJdULݏ?p}q.U4K$[f,ASx#E B}Ö8lYk'DkRT3 {2cqigzpTHd kqz4L*,@*pߤц:1!^Ve;\x'⫸Q!Hbί^y *Uv/JH37ML9O2 CwIC}bNlXЧb=5CJX8y^,[4}}ٯl >RMǧl2 ԣ04 *!CF(&<@jK v`PRGJZJfӺ\;`;&|boEX|12ÊXx,%2'҂v0 W!  Ȳ8tB"3 `_z2kdӫv~J&]qVa^MuICO5Gl qB:h@J7znVȝJa waCEZJ1OKzaOZkG6mSLh$yx|qX/SʘIb8$06,=J_=X62WOĸxKR]JWf*hvr=o:jVE&׸Vbm(hnFWOG^8.x =o9ɜwֲrx>mf^A&RjDs:#+D$PI퍠dž}(7YxqJ.m.s2 pv^!' 8.,]4SQEӓч 5B<'}NA鳷no9E(ͼ đ)sqQ/BZ`GSMpQ5*u? /,0պJ7qtэ-p RƐlP%2 w[%+H?g0,䴩vik)TE~U%hdvnh\"-.`B2N? $~4.@!ݧ#dH!շYŗ_ f91 \P PH (ORR١b!]'H!+If0$*3M8f!XN( ,n+ ]>\ZBg]A_^-@~}f;˄`Dg1$ 2"Y{vbOͅo&m?yWl^s >4ŕ*NWIqQ`K3ME ekGK\Hvm BB9m ±eOJK!J:)riy.HL\ON(ߟb<VבvWգ0qrHb0#;cLSqfE%nl^ÏvE/B헳:<F|9^ST_?QpL:HsK %|&h,i Fy~箒\ ZB'dSV=FʒNQa'v1)^l~Q<ٍ={>u`ШGܛ>L}LZHF`/)i ̎}ЩU%dsi6Z10hW8LO6yWJH2:Jr/~P@6:C$V^3X8iXd]3ff@WL-67/賞%4@eWQl\=Ua`뒶;j~JڞTh0SJP=n[ŻWTz뒇J7B>Pǩ? {[)z#dؖ-:8-\2|"p5#am D/OJNȫD`iCKǮ-(b,ddM&{U1v$ڀ~8I@ICe:d$Sk8O/8wqh[~i 8#.v_LN9~*Y :"T0Iθ`/i;E,loi}cCF uS6ȖJv~eoEgռ}nԳ9.?ßCMO2rNnAGhO@0zb6e:ڒ c f@Ơ~@wÝvSFy0iB2> zbYÒ&& 9ݥ/o NAeC;vo~6< w9Ec:zږaYEؐq#T|"w̟bf۴֠?x:HYsnᓕ!9 tLGp&`l#%I.~&JYP>a/[z=`k g;/3'ax|45YN~UnQ20&g9qEäjtd 5 MD@4(ʫFMD^4bSkL@()B)';hZJjۀ"dV,&14&&I9l~+c]42[_FA)x+ nv~CUS9[Cj磼/%~"EOfBR΢y MC[`7T!aB9!Y } +VqTwsH(L[Oϒf1V3W1JYA(e"ÆN>*`hyB+yOlڎ)AcdA4|8Z8wH(v5o C}R.@#ǎ} Q늯j;z<5VfHMT 58\ݶ kVz[hN0w&ީm~ "ɚD<9PŹºWZD)o+W"0!1\ 0(YxݾQ5-4ubz W ]A,Ò1Ve_aab6-lpR?4\յˢؓۛf 3 Y'JPL RgoVAk EUv4ur݅'^i5=NZ{;85~X^բ =$kA4b/'Z FW${VRTܣ^q0'Gs{\*HlYGM@CF韃1vl8::ZM:T)qAbE0G|`L-~ <9E_6yH~Ћv 1$IO<. qgf?8s?T֧e(-%\f~+eiiDO&nj<J_ocj:jۧOfl T" 'Z1~AN:19ܴbOWxH D!P!/y*Zg`NbVUuVcIF[dN޳Uf(@CֵO^ÆU,Q}"tX v.f nQ^y²p-5QTBrzɯgU?s7A*sp^ aGMFh.ɣt;Fِ \bpMbE0!{_|k2"d7|2*pvh<23KPVZZɰXlgzb T&9fK-ˮa .?rC\b1*ٴDQJb(U"؃D6O(f܈38 폍QF XR kƐ[k~TБ>6UEPMeY&&e&ղ<]F]fJ(VtH >!╔4KrH> ,@BQ8vdqX~ _z҈VfSÌ۷4OaۋcuڝlYm3F$'sms=y ~9A3?% %g./,gQ`&o+b~_y3>u?^Gs4CrӣoJKgMUja'dY@ᆋ^ΈzRFH&(V>{Y{<ğ*a]]Rb0Bc;̪&͢^ ߮+B;pII+jUi,@JŲ7I6zmCwW}r,r,l {LdR<{>"v+x5G汏"mWv&ԍ>,qSfmGJJz{O~|Ju|sL7CJ UlBLfy{(+Qdw[_`pK![-⣯$6!?p75X[,W/:G;ig 7 X>!!=*V&&SSnѻu̒2];wSX}9taˏFT`R}%!2 <5MaXG" R4Vx؝^ŠDŌfWA䆝ۗp\-g!5n:Riquiˀ~$ $OWt,=So0t~NYk.<OV';n=lJ0] Yi E;o7?c2R7{ x'dVxH@.$[@"#_z:1ͲW#J:^ÍEaEt-Ofb 7dw [-d""94TMUa8QOyVj,r0}ֵ );:ɼluX]+&V9$ysۅ!J{Ɋr?A/6X(? 6=D* ߸7;t҂V*ݰ$e8Yk4*SthG)Pн܉^|~ԓM@ntQ{ mGn.oR5Ga=W=*2ãd'9hǁ=&$7!Du9X5"Gͫw8"^ %Tǰx73C=`z?lr<"Hs 'vsL PdlT \eTh'G׎8$% PW\b yDC$6mB#E<|NF+trәB1QS)dlb`0bi-X9Y2%̑J䑭0Wg^x(;Z]fmwgIp& C0bpBn:)@|"y݋ZߡXR]Ofn'PR1H4+*d|UXHj^3E-?eFeÒOVhCǍP77a8VD@d _$r Ib<Hli 0壘# <¼ɞȰ{TrbyM tϪ5D<} zr+f A*{"~l!ZM3IR| 2jhim9-sefmEt.몄$ zz{^cҶp^t8GEB/HN 3&熕Eɦ2lJ;t˖IqQZ ~o(Ҹb"1[isu- ij cZ-?78A (LW`}GjSk?N\-2"2&8:"_\I(dt9uj 2M pU| I",M'w;ULYo4W+&'5Bf;Ą7(CWntȆL0)LY  4FI:,2m|*%yxZwY[\bckC)f6H8ZqfTv&!znV$FxJH 85@M+uջe3B%jƝCsز2h:b'ϧbYb?f+`4A1:(+u1,2@^R(fl*,F Q> x4'4[IsV0t(fZ0:'ɲ]5}^YCMI|&A:ǭ4Y[loW?fmٿ$& blhtBpا񯔩[ C^D:a!/ 8 օx6ld%,4ADUMT:C%{qAxﶠG?Yof<U*.#( 9_t[kA``h%[o2ּm@6/mV>eV3׏t.$c1,vD ` T-N3p@+ E~UYT@ %$ ̉MV n鲇]:\4l(A@'εfG_MLƜ(ν]>%v85 ڤ'fY&Tzj,1y[i=Ja /WDS 9vqzb;{yn6.v:,FQ`A*< 0"+d֓%y`wљF Q/x=u-PywߔbF=$eGL/%[o2ּm@6/mV>eV3׏t.$c1,vD ` T-N3p@+ E~UYT@ %$ ̉MV n鲇]:\4l(A@'εfG_MLƜ(ν]>%v85 ڤ'fY&Tzj,1y[i=Ja /WDS 9vqzb;{Bg*Xu3]]n1xZ0Ȓ;srKl5kao}AZy#c~FÂk 9uIk(,b-DeP#0 sХT Zm^Hዪ_.;唥iR@.S^/Q*kC)#{OS@@"g'附6\Hc`XX)0x3E<+cus.P!(!'~@fdMRl:SwOM:ln?Vtt81J{4Ey/ GIYSk./6 3WiOz1uq mgl{C H*=KD<4zD 25os8Rˢ/CZ^/\Q;v*}qRSBr1Y<}pybl.eLg~zX&BU\eJJ"ePQh N'wda=SUo.(3@h`4U=u2L l f52z[-Y.ix4/Rс2IKj>ͼD@Mt+c`vn~Add |]5״/1) rll&IP v=Ji:`9&2 !>[rH/+}< g%AvC ?*PR#9طze*$eE}C%qI%4Z_ y: fiɩ'NN&1w^a[lDR7s\UTg* 6]Q֣"6F_2򙚹F LuOyvm$+nһo hU9kt{'3<' B:lѮJ&dVw84`U+;''. M Bf#(b?@8#݄wM-$D T&%PgOR?}6b 1>~xh12m%o2(*=Ѱvˍ -SA[V­H/$?I'qMLfj 51֑={LJf+}MxacrͳDWɓW$ȸ#;ـj aw>BZ4|*MҞ"Z95/Yg!KxhkJc?>Tvb+N,Rx!n)I ZC$#(d5%V%]j#v='Hv%Թ|ɞ۝% +5RC[!&c_ڷlcr@+EqYQ'Q/kL+#qSEa AT* 釫+`bԆ$\9c"0_gf0$Ѩ **clyL8&)t߂I;a>:ՇK\k6@C#*,^^E+PJjQ:^SFꓟG9M d{MM A[O^ W[]Rs/@o)N6 +ܸ`')A=1fzTW-IBE@5#l+<§:g )s$Oś:f6 5*ʉY{]6a/m%⤦J:5Sَzv_shRJJ^z؇n~zlJ ~V\ ?ɽ $SE/?:I@k7gqVxƆ53$? uYR{Ҝ\[mDjuj0ĎW^ܿp^FCD0~.]9cX7Pe{Ut2?0L-;5=45(j/qOL5D;81&;?2[uĞ^m"yiLHF=NNP4CDD,@ W=۪weT۞MCtE\SU71Ph[G:Gm@tnPہV%SAoT]qͩyu W \9B///|-uo ғę`œ_{#iS4f@/nSJa&458.j-C۩&FV&df2Xjeﶲ}N(޲gϸEdrv굳BJlFOڮ4ιPň[wieJwX #DG,@S#TZF>bnA"r&~&wpsua5܅sF:zs>lz5=J[lr) ^pf-ӈ_VM5kd!F *r(&9r8eWOqu|O*O"T9+K3}VgvDW=} Ցle#Shfx'_Sz'%%%q 9iyoȶ"~1=M1DZڼ9Sry$%Gsz y1Y)f;r?-YTllj3F6]omZQR9 zuQe%qk~lwD{}ޫ Lt_p$|80r^6@^{RfY\TLO,mwx" F݂E{ե'w؟_~lc>ź|4d J0a 1`ʉaP|ͨO; 1>gMp=${Tz "BLF@?jzLpOlD^Q /" r8q `lύ#)NH{FF+<bv2&-Q4ŧ4/(pp`ÐubM}HͩaύyQ Gza3Jly-_˜d.#HS֪n7D[%bu.BT!~%?%.3wc4\^ AnD#˰/29p\\@dY;& )Qk4 G/f fu#ni@ߗ]8/-W114U *f˿3H{C8|CZLWw ڝOzGS3߻ШJ\x)&wb0^C^. 3=0FPvP7gCWs7{GF2)c;? 2I"# &A7 p`8'3EӤywƶ0Yg:E'\ Iɗ8w8 A( ! StlbNorpFU+q*_qJn(ݦ0VB'iR^'OQ¹*)[݄fV{g9\uDHwƙ |l(6s:Z=% * 6 H(2N0"xw}"*%9j|E_e:t cX:;mѐɓr Q4(ʝhT*P9ft88*{F$!߯O0QE8ʭ̅)lcRa.{s0Y$ ¥_q۞R:qGW %JVk^yހd=d7QnEkVNb)7 3ƣP#?H"-ԪHi{7E'NT~=n7J>LVLO:f.D;L*:n1IiZNì'\Tk ɇW]'ޔBIOـ;JQӟRTK \;9LcsmؼO{0w/+}+2l9tuNivy^0|8d >߬X?tMo>:jJ|6k*<L*a*_x؏yƑA]__8! ;RPvng$HPQ"ʡ$La 4)1w0טe<ǺT7wHm㞊9TY/ ΀wz} c[yW):7 zufJ) 1#s 0KC }Зc}Y7zL}# +/no3Rs=W-hܼy_H\|O-8 NB4(oi!G~g@Yarm  2< &I)\bM'x&k2RnTah~N|`庲 c1!୛2f$p./'Jp de#+9S{7M?jIWL^>cD t0[E}ʻ:KdeqYi73Q4™'_zQ ?<!Wqt颕KxYdgJ9ZK & wfd:*}e>ߋ?t 81[L;өf tIa.N)3KNѬdIj;$\ZFDN (-:t BI`G?az֙|A^He +;sK8b:$2-hMot!5+WrP=M Wf;*m& Ӕ22;pKU7ht[qt6~gR5Y c&7\_n\ީйX(Eƺ} Oʵ:O)U%5ť-Ѝh3vTV t_Zkܵ\:.N'! HmҪGt{?.fU„SqͬI]qɊ *icfKV &3]]BNH2>tGy-Pq/\=rr}  $K=A7s1fą@TA 3Xr4[^)lŨg~Bu{J0͏̒pgۣ– ~bi0%ea*@Ary8~(eQLXᰯQZQe`|ʐ ַbkƟԀާ&}-j/qMX*K'sx&qGޢ[bcZVPd: 5$-oDi?Yؓq=1e8̣q*5x8l(,<.fzɩVIg >#T V*AQiUE:OX1flf =;&uջodBK5dB)ܲcL̖,N|ǫ?`Q }W.#sWZ'+<coO QY"z%AXZĒmc C_L0.t3w[;m4&M4j,3ަ1U.đTT=lS%r1E:59'a̸be^Khxӄ?I{Wo@w$SFd戕o'#]Bp}K Q[{/oObNn߳;.DyY)܌m5q ).& wBqITi*G} }#S7?+>a+ O n?QI JRre̅+4oQIoZ^|&(30ޝj=ސ6ܣw)}Zig",]HA䦃v79b(2jj%j.A,7UgϞo;gV͹ORcWͫ_l-*>)y+Bw;g{MKaޯ_Sfty;TWt]P]939Ъ{}.ϊg62̑CIs\BQ`Buj$u2S W >q3rQǘO0, @:jw+wsPCMJTW)YR xmF@,`\n%<#̘TAΚ#yk\Gkqo%4A`l1z|~tt]2_&\|2H]+m(^tsj|'Lx%E#,05c`FMOڀfkwo;QHhiM|'yϷ'lsNO{%Xxud$20{/)+̩*rE;a+'}VƱ6WE/HmWS!RR[yjoTm89:N#{1ݨ= qXK 1)c@!qJ)>qskcg*[3dUC=4Ù݂ pۨ|fU2{/{DG6 Q aH7 (#BʿL 5֌ j_`|nK o-gL1l@wri p\0y]b}eTxGT|ʰGҦc8y% ƹ'ݒ℻DVMo823O_{>Z*6Evƛt1reLxp$-,0bMBۼ}eJ0Ck./PaXz&2䐁FMx8ap"p񮇾1!/U ʘ愌6592 2ا%/j@`ʛ5 ~Rҧ8"=;u lE3$@j2o=1wnu'Iy4Ņ8,d*G>ot)V_X#|nxdWEՀ`c'g?|낔-SDO\xhpKEG*2^np^b}GFqL OBdL5 )4#a@;F"NdJ);8=^X2Է}c>%@oHq'(Tc*+:`}̼v% :G ,<7\+9zaۭfD< =>c^McQ/ӓRwuM!Gܓl[ҵUsA[L3RCQژًC qT^K"ui+M Ȅ-POdib nUs RnOa ptp7>.ƒ7$X;\`|NDd89<9mB㰟yX;xa0jȅTdV A:KJmN?Ky]VkGY[j8OΣ~a'͙qj\ruz>M |d>˞K3} "A%caŕӂo?!SŜA(y ®e4;tig{cT`+}*Z$:H+*TRTjz I_gzA+e57s\:"F(5휑㱘6`> G@n:Dr&_#+<ή0[gRb@_$wꍻ{^Mܚ\/SAfǟ͏ C^Par{Cq?~Gz=[,+$^vU}@vi:Vo&fvP@nh)fRqڇ{P Va<7jŽ6B&(O /~#@B5aIC]UތeXź3\*ͻက^u'˾Юk^íh W&y=cмӱ͗ C]}hDj4adIJOp$[ÂuT~$ʢvP4EsY;dŸFaY--U(^/F.OnTc;dmJ&' 3Yp4B?⨌%~{ݽE"K4DΔ*tU~~8QNjCx%!qa>W`cPDnyti :*sJ&}Jn ֲYt{֔:Ytn),FhYm@/2AK5JO`.!#\݌}XFz?^=Xx8VXh-܏vb`vCVI74R9ܸrv"&0Q\.H˷Rc pmQ3ш񉌯y(wyx0Pɤ<ܱV  92 لQ܎兔xxcI96sɿxGݧ"V½{{3ʩ 1w_1[t>OrdsG)K'T$Y䦅iVa;,-Jp+`׏Q$0>$HxvɂtB8 "'YŲJ?U:?h"֧O,- O*zQjhhA$]"Rg)FX43]>_H9 m6;/l̷@$=n}TJ&U2`d26iut&ʊiV/,t~`WW Z7LE&1S jLM#ݺ웕9B dSF܃2,Hj 0آ5dK> |]N@kcdFbvV܈*jX(.;An$|_?2FW{*6qTx/,'ɤ^v2Y X5"dbV-Z&‹z. !ƔAh|  8uSwBf%f1,fCHG &ֻG!8nf/g J}231+Rt"ggkvN4t8d((Ap㘚P͵IM5?Iߦ5Nepfό6kLtjR9I. CE^&JTaRN{/R~B}s 4N2iΡ 49채N&?OX?x 2cym${S6GwsĞ{# figٓ'TnI34U0{]mw\VyK&͡B^KZPd㠷T`[C4#Chq nqKӢޢEj i?qc=ADRE_zkZd##eI1`2_ /B[JS4|2TiVwյNX>!KSfn y?=A([99s__J2>f~FflVsr)d-H( d -C{10yҠQ%xG'_%К lhy~7PO\ῦzMZRoG%Ys)KdbH%,}=V╞?5EThbٖr-7gHBFK 㻐v={e<jFtxC[O4O̥؅AY5_sNmwI*)Ɔ)_ >Lu.,Z81XE9 9 a>8)iz\|tjЕ@bP$ۭcMK߳6ռGw+땄sHO]ih@ԴWv1'"`pN캒cDke3*4 f!<Ĭ<6ky%LJ17֛^bpF0(+|)ϔ7N+Z42HNm6I)qU0.Ғϩǿj-;]7>t-oP:pz ڰJ .w?r+W}kO26=̮ƙ)E5&dxCb/$H)@ 2᷿h==Oθ]F3GP}&QyvM ψʕeM%>Vp_x6+7P̽p?rwlQZ-Ÿ_LDf[@խ<6KBmڒ@Pe%QKWCۜhxd (~:' g(*;ͦoº"_ǃ` K&?܌:Vr+u'Ǻ>S}pDmTEV4r5w.dKDbl>+ ˤ Wyf.ֹY3gCתXj0|KE(+׆BM4 "@J(bgU%sZ)PD-NbL>.T}뜠_u*s>((+u6 8+ρf:dĸ eҔSH--RΝҝ-z&D;@vd]-xɱIJ2jYhm>xyX}mɫ!8. zܙ^X`'7n0mˁ/;tx12-m0a6>4ȇ-uo;G`f3=`jMZұ!S|U&3c  ˜ڿ!,{/xlGUڊږ́#ɰ%8|8?`\ox nh Kuc9AŦ$s*\3϶b<V~]țI3^{_C< qA[.2@p}`6iXNDFҔ}?(S #t:*g˱I5mYjv?)Nm8|tVP;BU2.<ǥG'uTa916nJ C+HȘH\5"2AݾEODK(d$v=z.\I-{xuoz ; %צcBmnd=$\;x"S,aq#[7}Linޅ0C}B:^lДUD!("_z,@"*K.Ŀx8]ҫja«.jf &)GS.2pVUdҖO1Hȳl/?"/!vɺ' { X=1u-jD8lϺ4}В:SrO[Z;Ҽ28iEbo  I>="nvjy8鐢h41$d?{E瀴brO3`'!+%n2A0 /V`{8m>Q8wb>zl.yTFVVij3J]YXL@WcmLix^/F%-H/־W0q2]w`.fd@^]%:o:})vHj"I/0DPB"0YYLno3\3DXڙ%mF|zU!{I7?44L%nuP&h mݧD>+Lv,Yυ]IZ[ ;T8A|i3@A\"/>%dǘ&ޮwp=rԤ_[=0;-G;!MW*phq@j+my'G&-|k|%B;fq0P)~uw=@JAB1ØrlhFh_K]H N5!cjm+Vi0qZ|CWi2 Q2`6YmOƩ(G ]n,''n{r=.e8lujy-Wl1161Tk6ݰ(٤hQ q.l(G:2դ95XjO3,qZz~ WY.uB/Fjs>= R9?@a9EвNnk< !2-wuIXoQ40=^+JY$` c-<ҭij{|$9f"JET~R!mZo)!3}UұxH-Ͱhfg^LHZcM8r\h :j-A+kѩ 9 p=4]4wOB_*k};O~QS)B lSPR[xc0:[<1M^z|Ӫ-ƨ,ﭦNXFO,/"d{NWML+ؓG}DVI. .(d* B0A}] jF z.gnyQ*Z/ HUFDj-(gAj'e֋nYkDoBNy/W'j8gsՑ)G̼\C"s+(.ZhI¤Hp**GuE9{nIPU6O nⅇ]!tuOШBTTM2|n= ls$Px! F؂xF{o/;lIru95RTgt 3LCX93R</jK!E%8iR+\B.e{q,_pfqם 1s]⌣SQN ,[`"YK̀-&j w%k}6k0Ga#g]J1 xϨ ~˞)%_GkwͽG/gv[ CUz> ~qps;*}xp-$7!t2[D^@GB0w~%X=9mU6戺[~N8Rcj|2@_Wʍ& <80TVpw}OZpF_mCX36&Ć3Z`ZelX%*D%]SV@!Ʒ^ݰ6ݖhĬ"7F@JJX;KLB L@1$!!䢑@.y;)jQ3#LH#Xps_5K0 "r}@VG- FڒaQ#;%g1̜ICab m`kqǸZ;)_; uz[YmԖx+Rւڹ|f _}VږSIͻC'!+` Xn e4"m;p)ٻ3*F!Dـr3i`?v/=挧Y)}`Wؙ*G94>h7iށ4lЦ1ҶkaO,v ĖhP-u'ڂw.qݻ[vAGw9@] AT6$e&yZkEB }fxx L>Q㌑+D9!Z1–G5 #E\ &$m&ĬzL[`nV#;N^;ECJ{Ƃb,D([;U_QQyU˼Q,/TP*cJ?A%Unj7(H^'F|jj*GEH.єR(2d &Rn੼ös2XonnC|$A,߷{Bw-qެB"֮CZKŎ_|%y-lfsN/>ōE.rI rי Ӫ=Bb'I= ʌޣ% .jaF"SN /Q+>#bL-~ཋ&abAQp^Sϻ4R.$kh`D6>O^Q'i4$l*w WrcPaVF6UƇ:=D@k<ͱ ՜۟UMV ǃ[AYx^3dNPiPk "* f՘}AJ:cbB0+dmktݕA4o:J 2Rr^Bpe Qx$hḮjGSx~ܛMqг|n?6'3֥C%F笰](a<(*cK,cD6d oYZ\%/]>tÊ*$&~܍徲 MO Dۿ:Eԑ2IO 9ЏK=X2Ov:5DWwEhT0zXh(}& ;I@Mג"-_~ )jb4QaBڤ֞`)=2˞Ũv&ӔN^NBUJL 2qڟDfeV[_]a5^ h1Dn!az}*z?dB M8~%2&J3CY5ʙ*V/<5}`(,o,"igk>厱rjsd4V悤;uT;"QR|I—upbC F4lcMrJr]b"1KA$Ho;.3P4WypBă%\7Hdg<8gT 1Ba#rmoYjVSm&L[nr\m@ɴh>h!QUt Pڐ*^[ V7rhgy 5}6LW[~ObsBj;Kv­P=n}épݦhm>0ش C0>^!SjT3?7Ykж]LAg{P2b1R$e c<콎..t5˲W0A(bq.g,6ar@\{I'Qr~4 J 6v],Dw 4ZFMr֕[Y' ([†4?QukLW%֢GF&O! N#WRF#\=9tRzym7&Xw I qMW@#&VB5?wXI y:m="^eEjXnid 5{ &#|IGAqk]'EAvr\r3S: NM=Q`)o1x[=OfB>/Ɠdqzʟl뎔ʮgJeO3J-zR\qEuukΣjf2e زqazO.u_jR0x]gG\Tcbuӡ>q2Gk~\P `vYעjA / ʦ%31d270R&OCy,C\5qnF-a\ M p,Oy%Oy i4~]O2U%9on J`ئ8P4; -} EQbv7$H%$cu*PB/uNtZAk?2,f& *B`$2Ԛ07ʓ l0R6Y\@#0~Q<{w/۬@A6`(( v_r@/} rC PR;ůo mhh\JZ,xK$Ś]_,BP&z"4w2!CR+tr4Fms*Ƞ-"KYbҨD0#y2d&%Moc=@~+qMnI7,QsG[ 'c6Gm|eD6.q~UMMOc '(} yA<_]$ksNDԃ v ]Zc\xe[EYS,uRє'JLboEqtC(@K#1% 19؃өH`C:Vp vB3! "[*+*&]xWe :r81xQs6Fxtғ6vB A"dwU0 `r/Q#FMˑi9p΂[ޔL,29:E $t o8@721[>XRqQ[X1#Y#'EK} ݎHR$kvLb:]݅7o0.o78?7. /'lcs۟'kVE _zCmho.|P)D<ůD8$H6 l4`k"Bᔂ @>S=kEvT4+g2~*F_ 8ر{ =iƠO]8/(,^3  \ɕꝍ8{g el Uekg@*7Ag-TS_7z%j;]d e]{p9w D~0 ؄vހDq}ufp $-sfӃDeMjz(lv'0WR@ T^MzoYm)DpP}qd2KXtZ22"|8hxܖOK1<){MAX; FK(n8gx}XXБ5KD]Rk/4IdU C$*wa)3XSx'0TC /(`ܰ)lw] z.B!Bld^g_r a!/Za_򌯳$(ՠ1WKC ESq2+Kf;!}tmX,kO֔K'C6CD\@|O!$~8;(|1\}®Gp|pG'u-ܡTZ7oEs;;3HM0#RDtOڑ{XwI3 pi<a9+=M*$<+Jj@ԟ@b!K*wXI0ׅD^?{sǽV2h;%> ɽB4i)\OlʪZq-Ĩb0wWh:CV G*{zY$MXQFDmtZ bXOtEH/HZ4=u7U R6j |{;9m]]M§2JuӸz/mrϔ!?40~. Uj:80;N,Dpm⅙Q5k!%'ރ&Sfkf. o,|ĽDCx6Ý7,h*X 8&2# 2K"8WVHǸSO"fB 2$%!j!JSPXQV௠{axߓJ\) E$DjV-כցieUiǚwv0|Vr^й$o)YQ0 _)KvO~-G 9n[ٿ_<,V~b30Ղwk 6 Ѩc(pъ|_uc)15nTLCvS;ƌ 1yR`vFsB9 ,DO1:\Zm삀1M1{T~ 8 =Gi=='<*w~@*C;l0l')L )CV 6Cݴ l B#%5^cM(5i/Ҽa%9c!Ӳ .R䱜퓩$-5ydpq`H+={p>.T ,-N~CGWH'D!"\&"0Y;cރD`x60$`>f 4Iͥ5zB?؍X̋F2?mnRғ eEJ['7;c UBsqҵZakheVȑ SCZ L "rϫ_4cQsF^O@SW&}۹^^Zh#Qd \2 eà t]J5 ta;J#RӘg0"$ԛ8m$7$F͵(_7_ u(6OYBqØmCa?ӹI奀M+jQ:)sN;d%X\Jmh䃮 Qٯ7D1dXALc;tHluȽ8?cN i)h>SA-{y mxYJǸW;cLn yA[/DM x̷1TO}znmdh Od4|cXDqBZ ʢOzqĖ'pLd˳x8sN!tRgP ,tJBzCmya[Tg7^SW@l7=z=@I]I3P( }Bh8gOtm'67J4 %.]o) ZDj 7:!L.ρ`[cI R{[d]Z8fX ,}+^MH\~d0U4b !c770&ץ[{HSR,ݗ@#/7<|BtPTkulY&s{뭍[!Zl1M20oJcd锌DLULôaP +Rh;#IC*"?"6irq#ֳߦS44Fa\Dg9)@n}؁'0,g  n)zϭ[?SaVԌj5Satz Db!^ Ó7ӆ^AX ɟLdt װQ"8VK& EyD258 -TiCz+iwI%<ޱU5ZҀ~N2i8^k{mWt?+=+c mksiBxPDk$|T"iEJ FHo)drGS Cۈ⻐ɫݠgUj XaFZJ:|$9fZ+H8LIg|ߚ?Ok ֥!=>)0 S%8UhLFύ~.=+Dj@b%c_nԜ>D *dw/?+T;eQ2Ğyi@\q"y1 @fw=Lj;2WZ9-_l5&;qH/6 O [C򠰱Dc7C{O+ߞ}d9:J@*xU=rGݵ*cF e\y0kWhjV {4ޕӎ) ZLЗtPKc5I 6.X2UQ!%UY)r0>4-KsŅA|1xL3@S 5cPyM5J2XU?ӚENKB[( 4 sY. o1r#$-5ue;!B`;]v;)8h=KstmLpf'85ɯ.zͩ˔#UGۻѼz8ે#*8F؊_;Y"0 1!`8GאϳqɊԌW`kW4}r_'[vȒ$}M05uVX(dJ EY3.v?l9ߘͯBɈ+eqHX&^ry^~6jΙ TMf'i(+$ZP3s@+.[I.{{f--j?:8PB#VurיSԭ Px]u 1\hKa}(_vnmS3V|=m _P>"X6TW^sc)4ӏ`H x z8lQ<3Hgizl#sN7.A 37F-{B0RaGkt_IS>)`Z]M0ᷤeLVL""3^k0TIQ8t}NTS_hS[4iOy1~! N]T~rb)Oh `d6yƓ ⢧E_2XoPѲf:L/L^0M-'&.A7=^9#-,<?[NjSh|4 vꌝ9i=΄Uz3$'eYo(a?guJr:XYTFo_D̼WFW0Z[u},BWG[pN6>ҩ\[Ht^XB#b²㨀I:{R_b~8c'b^OO~x{zWJ`px.{A"lz .[ % ,v<{T[0ײJ r [gJ .i^ =3xvb ]yoL_8.5dckS3J- ,#P}͢ئG/e 37;%gÊ s  f>7 &LhG dQVgu*.,6+nFNZs‰&kMYNbkWO3nɏi.'*3fGܗ>Āz/| kTa{"i1F2gSvA 7܌y23喡pIGn+;Uh ~4N@ L\|%-%}鉲,0bS Aya p])z=5QcMD{JN3Z~¶UWSW)6G6<Q뀯 c@۷C'(.y^!ehcO/R9KaSS/=iif͇ȁcO1aִk>g c#Tn#ƹ-y0E-3X_5Pƈ0y<]0`#233aSkp -fJ-]AhtN^׌F78O B+ؒx0%OS8$ՌY9 ɽz !; ÄQBh BEcPfL.RڌgG*: f9Q5wKܿM ?h9蹔B(iY6 ]/S::j^~^.}e9'􉟐_h];MWա[¨9Atڵׁ-7jpL{1Qy|>oNuV-y_Kre<$qTnb;]fJXHI ۙCsµ)z݈Z4Cz\JTGP^}cP=j[k^}<~Eo?>Es]VL~%5JYDx{5EBxu;.٦ ʟMW Iq#hx (3ݑa*qajQzL#M~}vdx u%ʇz!A 2C/@sy) !w8pz.dWM'MeYմ٭Wh (<=t?+KJ;nZ+d'?9 SuZ;nM7 컲~mL5MzŌĆG&54M )&I$wo9AÊqI`mg9>͎^l RW)4;CI3_OsMtbb;_3 =`[[U)"'uqx ͊ɭZZ)RB& /fxGE)y:괎iP-Yf›M ݆ >(0r‹<zW(LWnƉ%PМEޣ@^kݶس֫N;WV@)z S$^yߨR}$:aE޳aVjBqgF^|}Qp+@Y({Y`"(ύ|}g0s'djϴ@zpJ_EѸXMZ+D8YBkD\Bv_H>ʚMGC@DN pn?tuDOmc0!!(¸gGoo)\gGx-zԽyζ39Rya Zh m }Z ke8_!5d31C~׸'\bb]bfn[@3Lpµ 1uF[h'&E99%f&k6zNu2w1Q\ CI#J \s9+uA rEJ CV~eWJSh^)Uj>e/ t˨'BRb8hpVv 3P #4zdKfti\[3ҕ wyJ:<ܱzAubSi!q\Pi:uV,Bݫ(\C';Zl2J=¦oS/ 8K2ȧ:I۫*ج,O?7JhzzZcG6l=dSM&׬HۨPnmNHeyݷCqI Vn Rdjx _٫/Gم5CaI}EQ%}zi|sgpާS|3TKck ..dW1*K<)ܭ"y41[5Bl{cQxҒ^ٟ|@d *vnkEZ' Wa##_kCONoA.2 nNG:t}1R"PkGGAԙ, D{+oV-'BeII;DeZp3S #*1ADZ˘w"E[@'Fi~|o[& mm;Zb3LZJF/@]Y[.uy.O<{E`Lz1 A Y(¨lM,'~U6< # z0_.zJ䫍ɿuxϬ۠{<4zSUV)kx(ƤG48fotyVa+ߕads^Y9t0 7!U'fKPb@>Gcl z/V#dOe#/czП9fD0sExIuvͽ׏DCbJd>}ڈ=Żp{93Wbog ";I%QG'.vtuZ525<4Xȗ[['3d6,IcM$i 7[~|v`{+ɂۓV, &rn譃د^f 1v ߬z1M.qʣjqze< }5 -mN0ZOݨW2~zAy*/,D2`€RTU>Ȕ.m. N,VKr""g89p9FH{]5Ym"ĿHP]\^) Xqʉ+M#CϬo{Ӣ6,DƪԐnR4G`_(R.X1zٺu.p#tB, JpvMyߨHn+Y+SQL6nC:Vg%ϼ0ȗe`\kF}D"5QAA`_3Y7W0M((rIڟH2fU73(wE1"6c-+>bρh V'< iAܚa4^`Hi3 fg /\0`1ؙ_njvڛsIKqXFK-]@% MÎY 3s-`uKWL4J.x,oQ2Ab22X7)1Ɨn-H!3cm*{Cj;zD[c)G!deB y**ܵ]ZNNmgO}Ic{yi(kHSs-SI^Vi+ur0|o/O.BtUMy09㤞GClҒ蚷L}Re٢pwuL9ta۵D{ ъE}tcH<>Nj9+Nx>1hƁ=cԩybº_}Zi95f ݒ@y1Ef+TWc[wNͬk:XpXz huܠ8}O}'A]N~_;I%\8"_b@ѲK&Rth8u cl 6ƇNbhi YBzaZ (I;=LvAUC2B{<1beLu Z?Plk 2|8s/2|,r5b>~^2h5Ta'w0;X1(F 'Ɗ-HFd{9"D%$XN-;p +qwy rpJ[꺜/$ky,Ԥ&4 *nM>$NZY1wy5G&1M˶vZye^kPʫ&"0pZQ/4x0b j[AwS/ .(D3z쯍m|B]Y]ď4CeI• +Vlϱ(8uOyښ7*c7n6/iwJ/Xjѡ#a9 g]=ճwV 5 W,7?L 8껩s4t\Ψ;Olթ$)2Үh!N}xqFv՗Mr߹l=^RE&g$&S=E|"WLࠏYx{ ʾKgQbS@*4Cz&J}suĹИ7/1fF98BfZ2@Mwg P3ۘl2iX*/@?3Y:@n ي.#cṻIpQɝ Nyu00jt7Óeq6Գi,s@>75|eoԯq&YtW bY!-o㣱5yw?)wORSL⻂yH-9?uU.}ܺwy_jsXvQ'q7>#zeC`'~82Jˠl4٣{1'7u?[""POy}PhlfŝFl#[F9X[Vs'揹|m82m qщrѲ%T$`+g56 &S}Ġec`]S1rS}vwn8{Gw̜Չ{HR͎"?3޶hXi n3OB=b6RHM,#+ԁ6N=%gO A@4و%ҋ'3q\J5`5׸f ^8vq#Xm**ƸO чgk,ur9&H].mw*C|Aab\#Krvπ'KNaejg~ G1u{EBA 8 lBf!p+b-ئQH0ndAGT[xFUXô=ۤ`]pTYqvW 7Rs.~#eEc}˂\, 2Ĩ#c{_~q|.BN ../s̢D}1eK'j&7iQS.HYV bRd/0c/B%H"q2PF}1k <Љvw. !AZ$«#w%WLHX l9C rcԌ'@ 02~&EW+#I~wL 7&d H=?&3PQ0f"CFWInSb\=0 vI7:,+(LrZ66*b_C^X-3rŀw5bnt+_>%gZ5nj,_zmrL-ܭL {ezE$uOwFcCJ8z}'w Wԭ$FSq`9ݷSw>iek CX7[wWk1o̅/o+W]'!G7mA@ÊH # )pޞA.@DO{>eeouzsl E ,}]y]p x"'!hijpulbWrDq bs)}E/{PE/c֕o#;xwy}b)Fyv}H 8u~ DS^Y݉O xl>Tv67ԴN7{yT1 W.Ƅ(qG"( .6 Ge$$.GY6( ۭ"4gz1^3[~'ݮ9Ԟ_Ssn-zjPμīf(y7¿7ZEMUۿD>t*inIfu5`x0^*%r ,IhP8ZU+d1`ԽvYG)Z ־ps;1Y`/Nb ;1#j=d3_րwJ &l(vfo$n 4U'X񡤳~e\,nncJ7jܒ .°kpP@q%0S_WdFьC7ndyuƣ6[5xz%cB ;|őIJ8ƢAa kGU=omKhe6n%:AQip_Ozvu Q3"N_GyH.6ʍ"<5Ж=rb aXKeFH59$G E;a`[=Z^=l=tL33.3{нkOtZD}9:3hߔWߔJ7.e~!8 թ̛NKPOWCr`Kw[RS‰\&g⢀?JR1/57VRϙVC7F)?>=]- V@$3 tO'YS^$|{18=#C`gBqe JjUFڜ-6`5 !(b~.}h[3|0ǁ9NJMӈޕ5e12 CQٹ{˱"K}|dˑ'c5)2CP2f.Uˊ:n~XE첡Ñ $DpJLcjw'2pY:["&Q7Z9P(18T Vw6 i_6]og"e Kt'hW)=Y+r2ѮMG!JI%v$aE yޖXڌ`%2}H.vӳazYZO; K:)NJݵ:,IA}<UD*E]YKiX5O); D-v }FΨ∎l,輔`K2=NJ R)+;%8njR/R$4[Asxl{Z-ՑiuN/;^-h B0o-yzJyd2^ +Mb\!=XcU/q``.›2"b6G̼,8>!!&Fhf6BoGr=5P@PTc@J D4s(Qj(r!:P-/yJ'bکK [OxeAf^Ŀ?M&2^SFI ܿɖCWm p'˥ |_ :OԦ%0 &,oZuf5 @lT~Sb[l5MIm{B$G!R 2vl労99Xfh5GW ~cZ09 `3k}!Ʈ W؋D+) ']a䇅"e176Br nh1#AGd3iCۑy^BoluxjX\-_[G;9Tf.0z:qhmہmVD2$oDMBC7˅x ="30Qr݇c Yxow] fU:b1Gx#@1acxeub)~erX (qKٷ5'p2}+C؂>!orKiUГ N]V.ާ܋Rmabݱ "9Ӈ_yJlL("y2DGsXE0֟7NFHVU9Žzq)-aH1PޙwnU$:wˠ }D+a ⟀ˈ~͜0 K K̿w_a18SAܞaHy x_2poWM5Velz?ڒb8t>g9?;CWRLPi.I,׸7f:s/X=38 Ǯ NA:Ab>yS{m:Smfbz?"OnBE x§w?oVQ+lzo=``%ȩAƭ9Q61reͦ9@12+NCYܓ/O,YySER:al~MuauRb[H6,4xTdɬ&b"@~pR~lC6đ34_5wsSRx uurnaBwtrQ~L}6JY L, Nq DHA\ >rg#IsӐ ,xG{#4-u|P0&.إkΣaYҽMV J# QwsXk^ !B7Eʰ@e1KCIv].y|G[ZL>as"EK{L-"J%6掹,xMZkaXA\,X((?1chZ..݆)]oN-0,nev8c#7IPPdK?Ʋ+ﺕK-g۽މX3M=7_G1 GˢVc(9t9/ OV Q왈EQ=pkofs&8aO@\j俔~Fqam|ܟhoeWb\*Ro늆NQJeY\qaD HTw@wOtԁb"k9TEK]?7%S.Z Z|iQ%Uڡ 鿳d>6n@ŸB aeGsdC0%V'C{g&a!bOi׻@lhWMKL[hPs5# [ܦcF/R2(x!W7do^7xL95{KɤĻvrtD&5at1ʖ-Gj3DL hs-,eE(_N6S>E=Ip>_i}GVtdx-Z,C)y4/̫x33/a5#iuE.55n t5/.tQ5hTݔ֙͢N57G;jHrXِX4?8iOEZ@wh_En󒡌hGC(_"cm;=o"V?QјP|gI("q"P+k)"Ț?Z91:yF?z@"/ 6`GXB̼&+ i_N[8t&ޥHMU}vC?IesyhN!h[ϫ\"7lEKwu*&ѱ8h_ϔ<m( p]]-P11sCjӈRgez\dW[(>N#D~\.9;Iã)cVdD8Y0 6جoGDttLغ2Ybצ1vo9FשI(~Hi/pHYg:]ͲVȖvW>'~dA~"fZ9X066L-mr ,Àr2Th\n(y KxR@[tM3-VXF;($nB-=9#T7uI\" eX<М"@(0fL8Kڻ馉n%Yx:<Noò1_TO(,BR8CzߠF+!Jk)O| # _Y*HqY+JfyVp ZeуMüWQA\⣧Fm2Pna(W)b6t1ȹ'`T,/w_+5ҢhT7 z,Li) FLkHZ=^%@@rMѐ4m V kD]'Q#@ >E1w]FH2ԶoLyaN(8rOW=8V8{O7q?#-R;Bʸ w"d/c rBxm`GsJ1q*"LJBN?L;ȇ>hHӱrb.(jwöB h w|9Y1i}Ng*Yq8t S|Uzַ9 n| )s3 Rr;bNdu`^g(.?Bkj?ef/Nibر`j[pI8-.}O uȗ+A%aͩonsqC@ʫ7e2U2>b+H tKG^D H\lB$U7 A`^Ss~(#<1P Ԃ6-r{CTIAavtէ0pJZH*. uxQM$ؐ߰%3MsiAfTKf{ܺ*O Liz@J zڻ={xXOD:Aآ%Vz8®,l]{t~zAN՗0&()d >P;q"wAD6qV/r}1w>a * ^mDn#33 ޓ5geff@O_Ai#(HVzvqmWD2 E$zW.H tZ4:}~4+hɄOG׬Ddl"4[ H<ۋҙcY X n8DʗܒYE+g¦# ?ϛ'_=C8>>"pNwl8ʕ65( g'ԣȌ@ =ϛLC@ĴM~88F9oQ$ixfFr`AևsI"J.*jZCUiA؁dzNtģ0 e|X3 {$$Z]yD?}\Z5ȃT[Y {W Y:-\zAvt[/tjI6ڟCrC}TI ? ̭̍#V@c/Tu~V[wnW+i턀"EC% w0ei?`|)zeóRo6Rza/°F_¾ nBs z7<JAh6ݪYAX CJ*qn3_?F|(ixy𥅊oG bȂiy`|.8WvRs7z7z nW*Zօ`FTIط$~G*wgXQZN[tc|:hЎo~ uEbjWDz 8KSj %2w=%QtE,!ddgHݼ[~Z2߰!E*pȹxM ݈# So΄#ΏdlZ[B}B7"u PDiuG߫+lǭYlVWء4uX9~WxYljYTCIA,EWI 1k'<]A|7ml.㿺ҳ8m;V0PԳkK:݆^!ו>zhǖbd\IȈ1;z4깨"43ھ2ɻX^C W@Fj ìvw~IЬ [b9ݶ"Y¿n5 +xmז X)H.~,N :J ڭ ,1W`wuu%ˑ$;-Ҍ /0^i<|YhǕ #35jEc@qƹ"lػ+W9`W 9(V4䫛4{x {xBL@yRI.]@= ]0Ļ"sG?7js3C^!Ѷ5%ͭuH@Ux D{  W&%*U[ vBw\v1$Mb(WwD)A79K)dfy/qE$)/.5QL?ik50URY?=ȩDQ &'8pNLڪ(ɂsVjjI@ C5x_' 4, s cm.؞ 2K߯npX 7\$E~ڶ*߲ۤ3ܛyBMF\{a^wUѪBMͶͯLwO%+o x j̛U8tGsV=ޭuY7Qf_g(8?kDˢ+.XOӌYAā Y$ޒlAR"jlVӧҸnVNi ~Ҕ ƨNknORnkxzJ-*T!Uӹ#Y7A:Mvw,DgQ\Fh:팦anITvLݸ/=2ㅝUqhd>g!Qg~\S# ;p$'a$OuRΗ{".N?nH;vKT* p]rJ+N'VBmBJ{ #-εTuJ%GnVUlW_@4ͳCA*c!1,GwR]4&|Z|{'H*c74Ju='p ,Aі] Qi4=Ƙdw&^ih4K!!v'#:q`:XԠ y0EH_anVtg x khp܆I wtع=j۳ -8@%t2PV=ZHojr2KԎ7v/zsˆM-l8۰L ?$oEy4t.; eu}=&Ɍ oe?u #|4I;Pyr"}7W8\s.nz QP$E*aRhABH$~J `?/n\GG<.O":L M8-POsY *#_e *,w 96+; Z%9ovt[) RB/?S$NF.z܌ Kd=q#r3WMllU/]]ffvw ~GÕQ ZIQ%1|uL||%pI+9G]jK~ CC=!є/llqNIwDaK!՞69+&- 髸=/)iNoֿvtGa>޾1W(tonrbśB =fRqТ _0hс<Кnn&-*l[esVj#u4}ߌUm2Cst wuz븫lh POCiZ'}^jK? pXBm!fKtN8 ygs)e)ÐeF4)J/xRᔘ*eq{T \ o(2u Wohaꃃ[ 8ޮhMjs(xqBΤlNL.-곳Ny.JBe.>I;B̼^ o =b(#vHrHMUjotબ7ݲ<䉻E`ա.HHD( .of qqfH3qqbqsef,R}HYzhA][Z?F@aN`e .yN,z-AzV#|Pc>ԍP7⏉ȼ"7<^@y$\"mpUa0k2[L?OI"GϥKq9C-BM΃QVޖ ZloqDP3HXmk'we!Z55a;KA"OPP|'ImJ Wɑ8Aۛk䍥k2IB!q0~b ?ŋEz5SeI`!TT$*(-_EQ"@h'UrDCq68F- b-}C:}NPW`&d@dǟGǑg,|/O9`gԁV(*g$Ɂ /Nt X Z;440dBn6n¬ _r:WÝI 0\6,}E!){-Ts8eb)FJ D%Ӫ_&:t"xFmr $D.kU|FF;%}[} uujkDd]0#!G>߿tinWB"\@bϏ$MlT_0(Hj!,Hirɴi6Ie9DV"]@3jRV_TKILktz^|EHh.os„ZiK鄒"[խ&:t(1*EFhoE<`bM?u,s:*(xzi'Pu!NtM;N )  CYnׄO,rKHx҇'D^ k ئnHdC^0,yJ|-5A9WoFC#̫7ԣQSKLvF1XɻQѤųV(PRknZYKdWǷWthq"!X^B;dJkc9'lj.-y3ki;]%\H.,G El5R4^tUΦq k0Hv(߼F/JE^rܦ@Z-cvrk4s:~Պ pD= ֟k0S*^Hɵn /?}:,fi,^)Ky#~fv_4}6qt&q~t8NzЈ+xl'-7@;`Kb_II^z MԹ#¿9 ~sz^yNş-N CZΒ)n@M4l?FШ",űh\S_oZ& _R]I:ߪUvvKlC}~ډqGj#۾꠺%iUk,OiD"kfu&-0%8Jwld̦ὀ \e2n KAtu>8($1(LT٤8Z+($RDZ(tvY0NE |yHj=3TQǹZryQ4Ə0:؄(\*j*WYhv8pT9$txe@7|2:uΖy9VccSӮ7CR*,+l^kK$F?ojj6M`[vd0c>$qi&@.'Jmw&t0gt!i*w[Z hI!?W ]V4D-N-Y#3m雞,:gcEoE[4`APc&vlJouW|+Z~YO*u̵I!!`$J5*Qcb:^qL @ 9NEX՜_Lq8N%Ck{ ~a(LbLL w8[, $ W%{\G Ap`bMTtNeN7pu 2u+)f4^;BB_`Ǜ'ňH3Km jהP<3XN,k`'j:6}T(E1)!s1PNxN9< w-ڡ"m{6M5j}ZX#*ֱ_v-Tx!:*W"S5j@b&Hh#yKpI,AՋy~'gc<'#\͵aJ=r4իpW|}ɬ_Fj012XLL"S5USA@:P{آfə~m|UUGkGF/nd llxNCqL~q[ɑ c0Lwmb.G+nŭN;r =ǹA)KbHU6/g]YEOwe37eCk;Kw%7qX쁦z10㝋 {ϮI[&bTBFcP\puU v:9M7oO+5Ao 0wٹ.D:i9BJ.,;~@F]7:CITdRz']D8 N=%a>ZEfX|1D2N.fOsg߹ {oq(_"ʂl]63&pyƐa?mm _ꋒ:=)†3J|֞El˱| vw"; ^w~bأ{+ 1eCb6ZW*U/~8Ԡ-IsR2uk-wqw,r; fD.OoMed#veiG(FV<{` ZCD%r3R X<${UK8`4+nàKas\:8fMqwլKA p'G%jw-o# Ԭ87wp7 w#p-D25kX37py\2:L@P1yؖ?nK.W3۟a>8g `+Tcq^lL֢5c)?[2? y( {(߽]~)Z3 ^^\/KM-5Dw7orLQ4m.):.uP yk4!ZR!3$P=@HiQdڤ&aQӎ=+H<~7 Q\?7U v$3^[U>[Y H`@{Qe ErHJP"x]cwVdp'N;ǫ6Gb4nMYw. e9+; s`8H&H CGY*2Zu#6l@]=MS=~)XQȨ;b]Qɜ8BҞk0c=TU\y^ADxUͤO{c##Q'p¢Y<.^P:2Md`-mETR p<:̪wV2,蔜"z/Gok9}Y+ٿQ(I9MeǤ 1/|JɎmGrU; _&r}ѹjm e0H|Q.rX!%yU_þf/d@  ̚ʕA>Z ]k;}38ae%z(';KWԙ1Kf A iW]1?}8J+rU؋NX]H{ SXIM B>iV|9lhm#ѾHMn[i(CC^Z%^wdGMfupkZ (fAd #+b(_KY]cӪEkknz1W4NDo½ _^gẆ_ve4r[{s4]ht܃>>ib( 3%_';6y[٥O_+Dkt+f^F?Tl퐮Y#8$\ =Ld|AVM EV|& [ P;n^b߳ҶCǬ`OMA󮠖 MI]GQs 2'loK/nR ^(v1 /ȴ Fo~sܞ#јRT 2k<&?bOJ zf޽:ZAlƙfˡ٦k6 l>x?Osjc(i(40=1D4meX3]O?WֵHc 8RWNҏC #Ebz8a<{p[SPW,wR*}JduI6ZO6D\B'2u"Q)hy?ZK )Mcjt0S6𥚩u9-2A@ }sDRUqȰ\\˖=AFMR 2hKZ7w+&BwrBu\C&̗}}<-Gdp Jڻ}Ѝ!4ʈQp RVr\X >! }cýimvGZTpv'z;zZ8,- ^ Hq?)'y=vke$!(seU=|[c &NJuYpRir`DE\c^WkœqWhBu~n#Yoh} e.1./eF76@f-0+h%5Y$|q1خ`j=m\n^O``g ؗaaôf4G"u3o$s3<|Cnzm㪛">⠀^=!NDafgRC(:4>/:upu͡#L09+vjb3|ke۬c# Lcm[՝ص;rʰGW*:etj~K9zH[4l)J`T)v5ڙHO`|~nj`sR^xm`a':49e+tn{Տ42^)Ľ0}n<^#^Än=jeWq4}4U @eJr$_z2E*G񥻄^- $iSͦڸ֣%ynb[* m$m3xjg)h MuyuY3rS,ٲ߬Rl:R<]ڇ*P-o1?L{J^Q(׏2B[ŗj%\m Ink'">p#~;e@Z\rceVKOQIAP`ujЊ}\cFV8ݗna'V7B]R'M+,ӊp8b:=G@ȒBF&? 4IkV _,#?o=z, P2nZ&;Nɧ:[v} UQ agf7 ,kܝ;[Bɴ?\ξ:X`݆X L_jɪAArrp3,A@p4~MM-`E$L_~M饃;ˊk, ZHLPes13 g2P9_Ȉ ,bpzh(q}Pun=OAEf-7@VCNy 7YqJPwQ8>p5TMtO3*ĉ\1Z4.-4t~jJr|wZK5İ+kJz`LO g!>E_Yo$e\=-n D3׍U+Jt4ywؗ$/P@DӍ_ȥ>ZDAȮufmf*[ij5]K0ƵB/c5]_n4F@Au pjUKfNX8VeTZ̒?0{AX9#\ RMZ蛬bL_V\y3GlJ@Zk$E!J}3hщ@ɟctv'Ҥ$B(S I)`i@[XFvBWg&0l6NiykmQʂGT-ѶG&&9X޿d(+Ң@T!Pwш,g% gYx]Uej sN8y)iޏ>^Dʘ|{(DDs9q qG)v)~eݖ{/bB=yi,YhLqNU.RJmlunqvC o|;[Ce- &%ry2čnYkμPHV`dz榯[!E =sE&g~ެK4r .ܖ#xZ֤=d`_",_eJd֩BYX͓cE$g6StxW= ޵hu$&4.[1ml&F*w @˹  WD7 e~&i={@FXٺ |@Ē!D|^-B|=lW_Nӱ0d/&h,V&{̐3#yw`X /C 7~<ٻMY1(NPx+=dsS}˞3,sw75! }[JF#yOP{-xk!uUOW!kMfG//_L%Uh #5:.+k0}FlĈt t0ODP50ZW'MMTlKCϚIRZ#h77W}vɰ5m<~9QM/*K۝{GTHS$Scf6ޝ}>?6C:)b g8, 6, W4 /|k}?[53#u>THW#XwE˖~-m) 4X/\a~$hlHlz+k?=%HK; dX>;e3]L"qs=e7qt"9Hܩo3 b6<0 A *eNi<%\8uB i & P#lqVBr"qeR|sjPxZpC ~zcbbkz \o{F? Lvn_/9>/:rѨ(K9&F\Dcz,_JF\ _0uv\ȝOE<ͮŧ+\'|Khnj+E3B_)HX҃-u.=㰔rHwUɚJd#:4M/Vb YW`@"`DU[DNEktIֽ2H3yxY1^&Bmu[~)cZHi\'_wQ˪ey[]u,l6.Gh: LV˔Vt`5@V#\b38v'&M=Whw{A |IS0a{@_x*}pPV9Ԉf;hY#D1`|d@zH<ϩ.< J{;P4uBvsӥ,Fm~m%[%? QE3l[T˼RE- Z<ݸDi~If^_ = 5R^cHpUjbs%r;IEFAr^$b&z/VVR#00(.zGд&RK Lځ|ٝі6)8]$[A̔Kyb0otDIiVp&t lGvK~8zw^8Nqg#VTתG[lpk7K~~%[crG#SV"@~=t΄D qseRM*}zz>H=՝ឞn?Y'Y3^KE Ljɧ3D- 9H ;xffL:NJߎ^9Q0SIx]IiQ;[N/0v7@A͉bDB2toT+BgmH鰼&n/w<baDDu8֢wTV]uD u9T-M{Gf!6!JE{f#cNɜ,Bz&KMyh!U5q"F$y 9e~~ !AbHK&OORKd Al-Wϓ9KfeU* 3֎⋪ <+E \JҮ*tILٺ;%f.>DBS&鈙gI.~wm-ʹM}j@q߳@"ghQ5Z4ʿ DciF8擤`aþŵWLw VL0ʊ1 CyY9Ϩv#T`j uV̤ qQh*LuPBu^!Xr/эL/Tdyc2P JQx#A7L-.b1K2ЭOŶ nPȱ j}jUULSMI C6Zv-uv-:Å2Y7)4mLjtSWzWz9$k a4%ys[+8E{=}n`^gUO o>Lc xЖ[B3l+`N`D7) omg=B׾1lRcMqu\Lw-D-|r.3J~骗IDC'+E 6T?ԏfv3 |SY6>l>PƢςwv`Gƍҭ% r8ݯm:^uOzß1En :>TFe&0ഷ< 8Hyo<8Jr' F[߇Źq׉}.5Y{U4>a$G)ZDJՀ4i|ʦ+h_{|[K0]|]|ti&"A/߀:]: ݎcth)<7\H ʠtmրf4^UVW<성fn#,',3i*+J6Is-a_ _f?r">䄭~"BVB̉{>ʘ.#k%QPkӀ a]oz0*96n%I.IdO1,Knj`9IIZF#WQU V ~f4{h9(ߥWѯj4X \ks1l]|9eAyߪLBL dJTuFz:»ȔqޔNޢL@ Ehyr\l`BO=LW#h)N" Ÿ ԳͿ~3Jm^]u]@JBy烧PFoE%lĽ9e  iC7jĖiN~nܟЎA6 {(ŎV3tۦE׷+]m|!WxW6yw34fpřrf{3'_O5[C*Po `BYcZ큞>$?bׅ*I &=cdD+SF1ƒP;s+ b=;HYmu9AМZ,-5ߌӝ UEbd@|VݮsRyzFdRm66Sc $+<5/}ʔ>>+PgY8{re|NDa;O[w4t-u fX>YUYEhY.*NͩrnؿODuHd=&D͓b-٬`ȷ!bp x TT#pH.ytg4_R YI.T8O߉=!7iν}dlNj]2/.kP-Ov9~B9J}N",mԇ0tr_fs:FRY2+UXGԓSb;f*dHhf-ќ2ʤEbh`e5MF"kx|>&f,BMz!i;uُJP&VٱUPM>]2nzz]0Yw_^H͟sL=hK`' V_HG5fF|(3#0 P, rP|)ӜJ᎙v&\P o| *͜ 6zk4GЃהH5k2? o/dA> &u0LwԣRj.d&1{58MMዄޜHWTnNyy5,7_=>] IZgl _)&¦_Q(>8w~$U;ljS!WTIBU΀9X^-;`8W71rֲ!];ZPܤ/.T)wcxL+r3sQdLrNBBЊgfHlVT$wB_ta5[j1iXWQ2; TjPK-8h73P:e.ҋ:WS{{߁G~n745c]a^DWKmR߀p|E>OF8 VIQO&\h1ۯVsDkOx<7̱|7`bo&_R)R 'jewK0BɒENb_Eܵ˱bVQ>NyJ @A0 5Z\7~k: ܂K̅!U>"W:qfEY@Y8z~ Q܊)y%54yڦB:l oS˂n5?S.JL`TSRBr\/a|dDx\TzJuNNd/oGKk[E'b.!O= V!읤Oej[7WVyk_##0`!о{x92> 4*q~g1'l">aD[iwy6Ɂvc% 'ڧ@34w>D4I Nk{CvON||R.rV>9dn 8A CsGf(MT!8uםF2` N!I@x}^k i*ՙimG_V*e&EF5h 9bEB=QYi@} v}D|w%y-k̄y^rvLcֹ>]]Y3M=Xp.hBA)5>KB m/kr^ :dqY N]MMuuK>MwB,9Rs$O yWqFFg5+"h@ %IXX9}+W`w._a\hL!] 7ĐahFN[@ԥŜI Q(5@W:z5zl-Z P]*9̣І/:k׶j_{0dW} @r!O4E@y}j8HЧ1ÀHCP>diu8v0/pr UcOݶ5 8aR"7!&NNv(T~%;1h/ZQNSa q`G@dI#vw7MWpl!MH`%T !))D^ #Úkpx NPؓC(oI716G"!W2,4?HʏQP5I3Dckc?ah-! on)HiC7Q؟kUmwħ}zf9-UJs_^Ia p`2S!IZkzh^p+?Qڄ)[5c~B&pȈ+ &u ߓX'ErCqnENP%t MeA|뷾 N13t rbxHg¡g$׬=OCI, ȤY`ѥr(bB:e]Sw; ۽S5~dY%aW]/1f5aUF18Yck)/sDzՅoR͏igL} }!O*=8|&nM"GK Z&m"6 ==bǵ鼟*{1kfHLeW(r?&V9AԿ6\YCg S:/ %Q^-:{c4\[ ɗ0z QK?^\Fe%~Zݠ(sL, w%"*)d?>6b'5  9k/BꟆ^Nٵξ Ϲd܂9Hue:a͡#0#kUc $ub;$~7iCm}GPl'^-?_M0OZuSC@;i7X]OpfLPNZ -*A3Ec9BrYYu$b;jI6J7et#ycB8b4NH eF 6l0)c9ܱoHhTz'4d_ڈGZ_W?\сfip9yӎٵhCp5&)c.f>VY bѺvIaY#m4\*0£PI빪8g^rr@spɯ /4n4t6 %^GaˤdpRhd`V=GwMn˷em19 C5&P ; š>O|rm$OsBAiLj~y(^|L# hus Zb>tQ۱:S &o$ՋР%́'m ^9ʒ㥫F\g_PI>EԶU[B( E Nu,q& %HlSjȇ73,NRCQ]6P`SinX EeYhGDɌVeӞQVG i9 U ;2sXzNâHFVEcd>o;ˀxYMY3$k֣w`g虹{%r n8~4GL<DPxQtg#QDѵ~ҜzAgW<K,3_G[W7JسI.WV' ʌKm4 ?6gYpr-)+Хz_1̅.o|5nG"o{T E kc!&SX^y^urq y"TǷ|2[-ѷ-I& pq[Pe VH wǙ/:ߖU4؝B2 Gҿ+)I5|s&[qAZ.>=FymSS-ҔlBӚ}dZYEf lZ`UÇT EΜZ̲kUO$哭+| ܀rh @xe.˩~HPy1wStM8x$OY;ΛdJ82;3S Y4 yNض{EIQ _ӄ(i! J<`82`]EŃގ#kB"WbĄ0% `OHZtZZ$qSu"xo!S|w]mĆ`#=Ki:n2M%̯.qGL@cfNolyZ[v~PerD[g0aYӅq͵| kME檀q>VK«N&ؠaK~m.S7nGg Y~=ǞOn{}:#m5T(<n է0Ypn `ļ{g\/QM6-cWᾝJZmC+Oύ-S-i(>PpJa,\P |( nuxqrIm2|,L,Fڌ^*OC0>kpz,Cy`k(*XXJMa;9RNF{#k+\}-4{ZQpbg`T[EFt'W}V"| ːaѻ6ѩj-s0E25. ].OTZ@+ Jj{Oa'6QSB^7Ҙ!$SWG,!"HH)ntiѨ[(@lfBVv7y&p^,HX i"݃1]f781!F˫ͅW,[b*̹Q]c=D^NTE9T<'@p$(=|86=m*e|,3mU{NR3ifB+jR+ <*wsܵ9͒j- ܽy_8jY~" ²c:iޜş$Lv7P;tJA~3*V .tЊ3OVm6 "bOWe6Zұ%֡$Qr 5`t|>#'}7T_q] `oAV .| rxkQ;HB1"`;R n-kKm}vd2\+s6b̹eZᒭʺi[-5uҬHFdc/$}Sh.:fGu-;|Ś ]߱ (AW*=f9 ,=9[mic_3j``mwKyӸ^zu#MKpⒿP "u^<<& [d: i'd>W=ϲvsB5vh0..‰q#_[Z`<Mj&5.@DAIg2vGg7r[zhgvU2;I\❣B"5BHuw-vDM^?$xX"+eɽ˿2p1€ ". N1 }I x]%Bo\Kɇ~[tM2yhd&>>Q7jE%RVBd+woz~eec-1Y(ڇf O`jp~oA 1E:x]#4et$߿z=#˺bM.7skY], åtWdJa~-3b$80D D.tI @2!+{BnAs }o( 6wg,`X8n=أar gw4DL4p֩4Cg:V6+$J"=&A@S)K7&.&醼Y 8(}AOZuTv{NH_V-N$bpd÷AkP1OA\F`meZz R`X ,_fq[*r JDNe1w𓴜d 'l,py2ZwNb˾_frv]WEFwp6ف[,9hDG8,uwVn.4\ٮ!וNs43c }-k0q?Zm .],@)fƱH;RZ`~zLSȰt@̰ảF=wW%x1%g%a=zi5Y1j ~wB u2\8=q$z>M-ˁnx6i5KGj,UW(`xŴu#:ؿ +1~<_Rg L-Ji:1)ER\*ZvȾol ^ϥRc8ǴC5 O h''I+xnOwh ӷƍc6Z6:dAwGJuP=' ["'h_]$2y0Qׂd2 T ݃A.AqEÙyd\S#>1 I8n9;Ve*w&4Yɻc28Z)vqP,;هVdشoE'n;?o5s5:y Wȳ+yཡul:Rk4q@FO_<ʽo62ъΚ,n@: XjGC?Mg]jwETzPS UYQmD)@<7%wv|~+?fhݷ.xp-GA X*'^uctN~?pQuf?m!yƞ| <^I6-4Yqmo7t2/P ;RC % vXZs HG띹Wv0%@QL]! Hr \mBtPnC2wYLc`g3ۃ0b+uRzRTcSO,i]>녏Z-ūIdAAyVed}4'}݄s`x>!ijFRKTEX™BDP>jmZؽ eOIYCU ~TuAPs9 Cu?tη'\3z ֙kA­RBיJz =>>XQ)S#HX"!G/tjwLʻ-%LOX;Rd[ W0:maXL'ߘf Qضbgk>³vmмTԕ-u`n ȝ٬{ja^)$Kq/jʶĆK#՘ahq/H/lptj ē ;_0]ںˁDևQE}Wݬ#Gg7QGKzrwJ,3jRZ]x }ŢZ(CjR[R |馨,]D]cjɸF>)("{TpV@K'IbfXoH@ڒcn!Gk>li0RKg\0 @:pK'󝚒Bہ~|WAqjbZiM'wc,$';Yqug$n*O*w^B#^:]YN&0'Ƽƌܪ_xe;ʕwZX=u O1[@.m0Ac:ҀC?u oYwMuB_vs6[uD1gŶA p{*gyN-Zu4HvZrVcm1vo^"q{5pHE!ݒr?Gu7X %i5XtRxysC<>|oJ 5׈L* :H ?CQ@Ʊ忌w- `[24[5ɤ-|܇}4ֻj0/ MF县Zޱi; i)!OaO}b aGuUck\4{!H\r;jsUC} ^9/ Za[Us-dGbד+רtmX?B C䬩ڭ"agr 02[yxHd!mf~RCuU,VN?{;U,(-M=FoU{Z4R6@[1ˣ2hp{8:[Db$'ަmwÅX L@&u/i-PW3 I5 0^j?I>4Ip%D# 4"V "VmQ*E[C29Q3f?4f 鋒;h֟Ov1;1CXv0s2wςv6|?XCڍNEcfA;y:{<ʃ).9(. kJhO$) |NV sGS2aҙ(ƭ ލt:kAXFJWYy TO?1fʞ6v;zo/~`djv*h3?]vd zC3G{-2@iiBv5d, YAA ,n{M=7|~Ƣ,Y2AFyT{YqpįB=P8ia`E·Q?tޥts=8rːT雾K6eeFXsrUYdo6xP92UQA'-g1ΩDl3F&}Hk}Cf+doIe"z%U: A Cf-;5*.Jwsp7c23 Wܹ3()E\:1?0r:ɧPB$Kj (r(J*{)I}`_ ˏG]1r]xR4ցC+>T\A`|P4mCV lOpr@_x4#t8EFt^QH% κ<vڃQCah@瀘B wZndY؝,%Ec QЧ ojߩ_dgB*>͍mX׌0DYpQrpÎoSHOX=+9E,dhܖY/A FqgS!i5E7'RodnH|j_1v6V4 Hq%TB 3{*cF#CB~ɬU!\-k|1&.+n",9@Zpz*ySkgZ:髲,.qa*.uvwT':xNMiomǣoP5]7o xGaCTǻ#>Ϗt#K~#|葟9<2Ob[|roRC[,DH7J{d4KMcCCq&=uzt Ht; xEÃOwXuEB}khZL͜9wA% ÎG+/kcf@f7 M~P1^P w"޽HB ]hV:rzlj[h=X.vI#xM4/ 0WE{trbњfWrn/D`bj>k&5I\%& k\J .D{*ܒ+loMBhTll#ogLڥ;ISlP%h_'pXpI+/Ai 2YM9{w@ݕqp::`+yo_^3YWm߷:vGn@}2%ż6Ma 5/x5NۿM% ˷0O2.-KeEo]q,^`\dde ܾ <$zwGxCLO2޹͜eƗXPNu1T w*Sb>x4!g [+#p|Ma/vɃHo> ?v8@=8aZ,k=ޒH< 9a?{=SmhZ";)g/_dIh,a翇Pzy,odؔyi\NU P ꅠ\p\*ĽIxkdys tϻG30m`~@:0#maWlfh*愦D fFPK:)8|,;gn}$$O#xAb Iۦ e ͅA9gH2OXtC#>@r ]S2)zCS*r)A`ZNqcX^= GP&1.7/Ed3b98\5ԒZ_tY6!+ R X^k )f+AaWYB|"_Jg9A>H^;2GJ޵>ĺ%)9g$|Ո{anwZA INV =,A^sFyp PT(c\HTn/ö׬Ч3ei4OT.J3hĴϑvE.q Zѱ ]Qlԇ:3 P2-Uj."Tu\(^Q0yAEi%e xO?qb# WMb-b7x5CP)&e T쬧o"y y/pn[19!??Wr^܋ h%%wgc(7dI/(UNPf-.^#Ev9'N1?-6?pn3hRkb F`,wg'ffvFMn8aG1(%)bnf8Pyz\,cΜr\a߫nc0Tw>~I+T6o {=pL'Fs}+qz:EaڨSBwby\֯׏J{EqpovuX({5 < Mb͋8‰YޗqSg7 cK-M@m5e+*8 "F@LJ.*ů9-Y'XA4.S YmTL`k.)٦>ֲ %ʉKo)#z2գy!.-zbI͓߫cs 0QPGSd0xFBԯ~1` %rJrwQɒêg0m+~^ VOt hSmlT#+簷G, %F9mϓ:ӘXLKXGL v"Q~ˏvye|OdbjhVaG}jC.? aR(t:=_f`Ik9Qk G5xjANtV/L+y7V 㕗)fFvɍ;VNj|b,k)s׻URM&i+ ߣBāQ?B8uH8:D蟚\LR;?5OJ󣿶^ُ̽I5 p րp{&DWќk:70y]F Zs}󜩶z3襋e#0,s:$ݑH&@P@?lbU {V@5sF /`a;c>R1'mߞ7XX ~g2zAo#̦W!~a\#_=j?,%vv;-Dxwn R4y|Uj=W;7GK[@y6@ mk ؚ{:m*o/F6YQ}SPQ>5sm0rJU ىN1?99lQ;+odž.ʳ@dqKN>h[! N+| gKVeC]~]6u_w'_qi]: q€‘@8b܃%P.]s$ͯȰAF0"\ )vKN2Iy~/-NUyJ+FYǞhZbyw XreTU8jvm` ^oL?aIC%.$#QPt2(LqF %[i)jt}uz.IK\~eOwHzm' @T3*Yʹ"mz@N:(bon""߀pOOO<8'G-& JX"/(%4[S<ֱT% 41-ZRWvUDULs2]l))Tk#$ ɄvA=mRzH4o)6XƙN@.% C19\VNêHз!L9v$Ɂ?9d<8xb1>Chx8N;xæ„J1uh\a'3VϽ7)f$6& <n$1:!=L6[clP{^;f%Rx:7*>X:Jٟu5^Lk|ĢĔ 7_$v-y2vQ]ڝ.(ŐD!ni"kb;I'N9tyrqF[QXEՎ 8fj"LWQDǣ[)'b7"K(kk^z\J j1U!̙;h_=qfr*"\[`S6cB .Sn GVXȝI^ZISL0}DwݖY}9U5bZ])yURjG瞬o'n(+KmpA8x,!c1ޖs: yw}<gvᆱ (76|##ꄣӑ~_3q3E]Fh "0nF5/Re~k/@Ojr34khRnv KWu"+{!=3DA [ Pz<'%sJ?Jge2[fذEdF ʂE^ {>-dإKG_:3E0-`ܧ]U7S9ʥ"}ty3A7FJTFg7,C##ALaEr,R Q`6rmoƶ=y'G_1iG01q|W'=fkc}_ %ݬ,ZY0;y;S3ù"Y(8?t94F/B9 uÇ"0y4lXyFNx3D";#gĉ@i_4r{Μ OK5rv7$Ȟ-d?RJ~wtؔiCO3X\>̩m1]wjЙK,mO|ڍ˚lbwo;3C{Hu䦍N5|g!n.}+ur+f ȝ R|ryXa?-0` tdU3B_|2q{J?~с> :Ozn]>XX*x_NKLR/ A81˴jz:·!P}3Ćp7 K! +&6JeܽKj؏+N.$.0S(ЈnXL|'^>F0eƍ5 cȶ>_Q@G%:@dg 9㟬諾Գ=ή9Y:V% tbp$ik4rE S 3݌õ4FȍKDEңϪsvaz!<'ڛRW3P F^bpI&!p~[(r&P} h[ XzOntiǪU2vab&kDI<6ɔ) lAz ?5Ug`"@͒xrޜ d f,wQQSlXsy&p&^?J+jxI!}#rW`1d-Cʫ %!Z$m͛%|?ț؟# ~g96=04;G9ۦK׽`*ga4Z֌qC~F a(qB9\ @@bw-)Q? ӟcUbR J,!`ҿQU[3O&R8ۨ&kHKmZL8}g cޥAz {]'$[:xKcS&dz">㾝,I pn@=6.&:}K¶ϻU\ (tipsiv}ӂ TMFgƈsBtɒSI‡Q$eiS;SQHHD6LrWPrѮiS0R'y=g"- .Ls1Y@hG6خ;TۉkSeT2eJ'veWT:7wc,'gɼBq -74nڮ|n. 1_/&%%`z|j|!GDaQQ.A~~g,LhfGQN-H U3](:H ZߔMCE93g m*N3 6ݮy9H="{)S\xթ;.l{ XoklEW'9d^*|,Y-G/_]'~Av56PLI%v &~ܶ'?K9'!;aQL:{TŲu$88¾XkP"[@#Us~b\vMUX 1^DŽH'XFBAv4=lWh&SE ͜R"o`M7Gbμt>/]fG6kq)5~KgyE<Fļw`!F6t vFzE*xKLR{(TiG2|=U`𒻏OV-ȆiM~q#R9~+wS7hi"Vy+ڃTf`&fIzB2KHjjƒ޾`\atȏF#u/`^9 ^'$p[iNV--u*xYEYuyVC <0/dHleQ /36 ey6M;ʽD5Аv\o.yЁB& -|8 wA#<{fg?"p>PeԊ0|'vh~7{hZ>)r@Xڭ;AAT5up ryӢ_084I{x zLL %w1d7vK`I%-iJؤMvE@ eJKZw.˧MJ#)jG,3Ox[u v<:ipd (q贬<3fb/MQ,cc7_˺_CgUfc)?bHn4v32f:s*Tg2KiT"/0d|Ŵ[&}F"B-:IZd>Spzˤ^~qA)rؽ_xabrҸzi#T\zg&nF{ [I{J`7e5zD!WפV I|3Uߞn;zk_VTtu,v]Z.1gMØA}3ɗapZD`X5701I[$#m\QF8~égbgɑč3qB 303ީ磞l&r %MSɁ%fNo$+|fыK`~m5O2U(>,DzGf'bM$=2|QpUWhS^NنF]mPq;ħv4ތoB|py_QOc bɽzR4`H+P5JIlhnbmHӜ1aJfh^x\%SdG.k~I{]h١`*C3)Lζ7\UZOG+h/ X.RtVP&=~Ym(ZӢيS:`_ntӝӴ'ކN4G: xdqNE=] ue`FUhV_{Isk54(~*qRPf|bX7fVӭҙmv8NS:#/ѱ+ǟ[Wa;}Fd4E|'bD}z$򘌤GCi:xl"2E,E1)ƕ kmzg6T|oZlEh{V< S ͅO-jG =.>+QDX! ݌(ecAaSM F:7ћy@%lW]Glaob-jc#%|ҵIC&Xb.[y)Qo@h4pP, dHd qWu69D{Amwq Hv3'zI _`7!TCAIQi{ܼ'QU߹y /hSx cb2ۚ dIw')D6X8nU0Ժ@07vp K'EtK}2tWl.F䚠2&l " 4jTЄO޷ĴD_ CșPbrI O]:_ONKƷdv?UAPv-O8x>yʼnZ/_8n$g6 J֥q:mh)ܚS@Goxm+[N@QzJ 1VI^8΅ˌ_B]Ɨ ܊tbSCD5A/t vE.,4q Bt}Άk8SyX椹LNp5Jgeox!F_=mЈ>f6Q2:AW iغS~ZBgr 6}{j@&ʻW]Co$Fb(-,Khw=BK 06I)RȽnh2$LsT$Xsh0u'%ilUZ[6;pv2r_vn QiC^~Y_>JYͽ, +Jg.jSH.JB/&T1xx]Dj~RQhvY3ku]Ӽ&=ա^q[M=EfzdoYGU<eP*8 tC5չL̙1ϚwWï,aAV@IA`W|m9V0KyTYu>D<ǒvZ|2mջ6XMwb>q_j7 pB>܉@\ɢs.-CLjFf8HZs|wz>u}xN: iDPoR"H |9^.揈]UA. r0B19 䤙)**e45߉9_op=\҄ՌB]0}/?'/fRJ ,!n3:]ư>bn?;@A1ŹC!-. L0+".;R~YA2Av_ H ?jeiN6Mqeࢵ3^_zY0vVI[P7Wc5!涱.htHPϺ%WBD蚖_MŏTJ@]Ue'Ƙ+pK3 ,W eU5*GiiMyzGeU A}HWCh)&ю_DV7sឈA 7]KQZQZ;FTWzO /GpTj\睉J ͺ=5q9_Z9BgSV#Ǫq%T.G&an9bD/:c_ɀGՙC"*qvK+1BAek;`x{dClGRcXuClxMnΆAOA v8M$¼73A"0vV]9+|VDStLTT|_AtaPDpV(?*2'͚wSY^Lih#Op7Mq RSI>qL\+^<1B`oA$tfhm9썄bvUq s:/)e莗&L#X(_2߿SGyМrm׆b=T?T?+$g`©hMf#O_~`Y=!HdAV~$i3,ymj*T;nQ\lD࿎MRne6,zہ']%ly0KSښG)l,c#`quɴJ( A]/Q-0vY!BK} ْ0'-l]5#$ݖ汒$O]}nA57Gw{\pIJR<|nhfP{_ ҍW7qWv5t={Ӟ`N%o*=BfZƱɠ{th>me>4Zq>9" +7$3u{" z*Y/: ;*z ^3TZ r*7B\[\\LHKfGɎM(  DP %<+MpۋŲIGllGߘ]sNϜ ΙnMgc5>1a:ir5 bŅ«5Hބ}τ7={7kIOLMLg,/-W^r[֨zP Fuw#' Cn7o'fs+ei$~BO1qڋ&?f)iTU}a,)WK;KO|-rGDcF$7yZ۬^+bIW;jnQ rv!{\X Nu]:G㾯)}Vt~ YM֙1``otVj,uA$_rcZ9pHb@kpWܒc ^a*j)__|kkXVҹK~VQbKSJ^Zglk229g9.#SDZ@70SRV3iߗ5ܜF`KkmFWԷ,|EI"jhEܥX?p=cw看J͡ѤGn`FX.v,0l}C,LWsX7p87Nc@3'0XD6I] /V`[m4 {=~[+),޴]=;>e}/dgK*Z'/^F1HwahbБ&%}?0:3$qwKTZ #,P̋=O 9ėMbÊB^ѫD[܉ǹۿ5ƧϸR31+m`L@!0}Zr zA<=E<~ִ%/ =+]EU<k~TDkȾLٳ96. ¥"ۓ #e4ܥtC;c}pKз)1VƑ4K(Ҽpݛ{4 eȘ5(S*EFrYVqb/1U̡ݻ,KV?٧BvmgiLba\O]$Ü$+\=yߔmqU1֚ IlxL&\OWTk͝$YlT  55ҥ5]O1J <ߏaWl5dLP^bqb*TMJ=[]|Z^T8*|X0߄魄["ONm-[v W+`UV>]sI2I͏v}"\;DӍ4KalS^Y/#Xv7%=jFn~i 7sru]fNC!uȇ6H.+E ل&Mp ҅Hgtim^*{߼ s=ZW~g;Ђrܻ57|m $ QĤSY0NL޼4|XGcw51mhuc Ήo 1vhig%DwtY% /L-?VyYpFS:Q#HExyvH`͛a" ;rG18?ݚq[4u>]$K^ɷܘx%@mNmo}2/||SE|c[jܨǝWEZ; `Dkp"cLK =H|~vR Kq8#6P˧nVCVi{l@ol~ WNS(o4}}+ ߃2*&,Mm}"9L31,s}U'EZ'ɐ|/ P–S\ IN?yEH;C @$cLξU.nJ#DZHB x6(Z i'PCNRlɺTČe}D1C;Nɪ}n`v4S><||2|աH{W8'ꓟ+!nTX T)#TXw@h ֓"5O.Ճd㐢c O?L^=ͷ-P++5`m"(PRD@k"g}^uG^鰍2KZk)-6ll񆶁R6&/zH-s&~_Q[@  7+tƧ#9ʀLM|"<3J?YKc=zwX4R,rV(OuR IObiVvQ kPjsRqܵ/'/M, )j^mȍا8kqX "Q!HynZO k9a(cjY0 k`ehV!TpH`Sׂlm&4Kعt(H(["BVBs\ui3a`pC[pVx9kcQL>ӡXZ~fꆰ8J [qKzj{R JLՆ8BwqT1\%xjg1lkB(h`~ғj+:H:3IYRqdOAi0f`f8 ÛydqFz+'nݨI- qk2jWSpC+ͽt⓪PZ ', W'3 gM pf"M>N_:Ģcm6VXe\tZ,N9~u8oj"eIļ hS>4R69 M>u  . l{N/qGzY>?SګA;rDblI==%R#356ZeP#ɷh7iɴRs E?|;?C`@,9jWDgYoPͱ_ =i/ƏžDܠ/W[N6n^DJ=F>Kޝi h6A{ ba:Ÿ#2$%`4/c xO8#y(TA)XȀj-κF"BJe:IeMэ eEx=M"#- NKbq+fu2^NR Rso2э΄dƉVYwtĄ"вK|-n=^ܰ F m-Wi];g!j 972轌8iaQbgUYD-Ta l=)9ZS quC蚎n#S)X0f9\ݧ2Gŵ#~.˚8Λ nrNڹι9);|9(vD*pC rlwP/ڔ@uodJ`r\ёVPQnswƞ4l^A1ڒ7`K7+.6m#[xEƖ $j ^: AGjQ g*^69:/]k5Cƾ1XYF(8X`W㫜r; 6=,Ma$,".VQ6Wm~C5fM -Fi8E13,1ӭSN=n?>dH."0Q>%o TEYڄF}Jrxyyݔʟv"[J&™H'N B 3 =@wy(?͆Jd/uku??B^f\'Nj/JUb.΋/ -y-4`WgfrKn#jJOO'fAqvKHY\vqOWHOZI [wDdFE ̼ ɖDS"tOɅYBgt&@tQـCv+ꏇB<:FX zē>,YSC>C*TcX&T7Iaۢ87xt}kJpvخRVE&sZ)[I?''OxeadA%uhYا$y6nDMPd/V{B_'Q NK!|IL^a*<*GKczԔRd }q ,I0Mܦ%f< qip 5fR@ϣ|I6ޮ8ܨʎQEsX{E] O=z#>hͺ%癸 U"*NTe԰w WV_ EμPD8 ۽Tn%Z>VJ| hNF#زp$?(JBtG^<o6Z9Av&6wp,=vva 9]0b{>JT.F>oG5c\4n<\l޶aY@){T~m-oӕu+X 0*J59֝Z96jMDf2uyL l?& BQSwn/u_8*GۘdP @JTfjrk#΄FՌ[B^iTFƦwAsa~]5O|L[^r-z=MO=Arib&a" ɾWp ! ݊D,cK"NDWՆj H G6ʩb&@_3" 4v6 6wK-5'N۳h2 VJN[Jnwi<ԙUj :F%o{]#ݚ!R,7  ~Q0ɘၢ95m>9N=qdU~9_ /Y{NZzyN!NpU0/(+bBV0!< žQ6K/cώ,RrGDmemu~ȌPm9gpî.aqwSH`"l [Zzf UK>5VSʲkf_iY "&FmdXrcyk%KĊg"IBe  9 Cʈ'b`@7M@{$-c9͍x@9 .flA=ڑ;7."c:- k^ CEI_yMkV%=mp lR]Cg~Lu?;+c,'5ix"blT3=$` i}Tkǐu퐺kWP)@`m%S!&3-ZJn? aFKnY+l'Mкo m爷V֏"zӌ,*㯕%1wpϪf ==9 lUGQ9.@  (ۏ\g97]{g޺gҋtQ]VACӿVw ,cW)k]vж2A Lb \SI˄Ŷ<&sF2t?H?2 ImRxVOjTI[&ѳbi_v#@X~S'|p#۲ _9HHr3J5A//6فS0=NGRMΧ/ 4(iUj]wf]o'{>x EX¨Qʎ<̳̉ktqSuV>|̡/YzSjCf OD~L]!!)zLy#J=PR;V;ٯ ܙN{%)+/_7m@֒Y|囏7~vu7C&ZGy[W.ɺтE>C}=R @ !H{.FNXTDXR&nV&_dz;~vKk%&OsP=O/Ů.[?fZ&`Cf#VfBSF:+;x^ĵW ha"f2hUOк- KܔRoNq OnK3T,l% j¢wnd1[#o 9P+ Q /"mew\\ڬq'u0cBk7]X6ߣ!T m,J:3/3ʌ6'A$L(4 >' 6qg^=꫼5#z4vi5[Fr8P +S{Xmg^Fn}Yte3t]Ji[o`:fD=i6rw|ǫӜxSo,&mqKiE3AuC˓rrլ03MEt{%ΏK݈d82r 9mv;CHmC]W9Ѯ=<Ɓ‡<{φ s6i [$DV}xx1慤MA32 >2U==+|p:FrhS>6R6"ntըp$r]egORy qą\qi̽f KfviKpmgk{7 d䭅0ʗ-Bu ة]6h vOZm-ٸpŝ~70&@=# l%`]'A_nK"3q@b=74VMd#~>C3ЅzEGrn^ZV7 zmbj°RVBbĜ:ᑇOnY Gj1I{-垵Bc7!~"4'#I.Ņ}ࣀ[kWd&XYv?79R> ⠩{?,iVyy0Ce!mV%}d{ȁSAQoERw0*.@ S>@Y\@Ξ:'#J|4 7cn0BD:7T: S(s3+JoRupa,iQ@ ղ]/)v2MHS%[m*# KstE=/'GGɝJb!%n,w}]vUψcV)ĕ fIF`VX7l_Bčx% N5R}>1v=wL:@gyW.}6AU/x 1Rߐ "S%ڸFre=/88;htl I5HDԾxyaa-x1L|rvKlYP(K,"KQ%3B1փU{7} O8ۡS Y4MuH%E 2WLej)S>2U!g  8u;Sy^ V !3Dj7*O?8E=DW"}c3,ѹ#0uCcT$UH"VXXkQ[(j6r/M.mQoƺv`2(@gjZK䭎;G_)6CW@I_ ʾ&d_\t\0Ri vоi,kF#nhN GoPt - ۠'{oU2kI:v.iܳ|%芔'XKk锘d'_rGoNصN92FK&$yUOpX<=gsdm3n_a">}~g7H{{ @)oZL gJÐڢ6 ֛ȣy>uΣ_km]W(-+}uYQ)3 f9zBGi* gL%2 tm-'}7P OG5#vTo|L*[ 8I==x(I~4e =`P2!FP5"2t,5P)?/!U Ƃmn];VPkx&HCoxyغ3>VȤiUې[.%|7Gpf å\@U>FX8a*X}ۊ4QJ/ْ, _ j JpnP+Kq\)CG`; nPH/]vWVՕ!A8&ND 7y=5+%K.-Dfw o{ az*2U*Azcɂ6DyX-hM3,@0^5[RX/E2FHK'GkupHR[d v8=p![wv%.NAuJAx/!,*pP)|-zIP3ILYhӊ$l6;ٯl n#1ψ+MR$v$C?%\: }T lP@;_ +Ok̢G`_zSʋ"i.F`.h>As+}WΨ,3.70kv > !,2 ?W3m w*V Mqksf@_$G0MZ^72IJߦ[^ :SW8Nq"׸j]׌%F%j>'W ˕]D+0i6eS7ݗ%;''S.mVT8䢸F"[_jxZHB&t?'x<*>qHػaS+Vo=nybxX2 !zᅭ/܄($kAkcFF7"0vPH&xnb7\>3 ޭwb@R,c;7 |=2 );o(hQi ("@uq4Ki+sۡLKӽ8-&"GbAY6F.lO"#g(+,I9Wr*w|>wo3} ͷNXKHeÅ9Rc" $AodMVy}D:HrdJC9pgA3s >L5D{>+{cpa?LG ,Tc/I}|Pͭ*qx HΪe,a#g/(.;ETBa>]6nU͞yImeZ-/2RM b՚<4IdHsuulzEjbOuJ׊ý@ڣnqݶMϣpƙT<,cku352 ]AkgR) ܱe!0L_>6;W =ﻄsv,4vڷ("&.Rk Dn}4?:?ӡ+5} ("P I%}8E%kk]Yep.dq.A[Rq=͢sX-T@:, )?wDŌI&g}`^ Uk Cu["QdRΩH }~9mP~mUb>u+m7 ?S']zi8;a􆕛 dD;b D[>*S0[(%pXQ(`eD?*쌮,>iE,8g$z~p?:aStS8ZbRvsVE5v0F'U++ V =\ʞdH {\+NuU# Ta2=O^*pW&o$;hŵ,FE$icPT&ʮ*]K? ,vf1xe i '\Ҫل 1 '`]2@pRe*ݩq~߲LO!pϥCex<1qk—wO_ E`hHI`G@&&6VZIycq@!Yv)agD~NM0aw1Lk5|,3LFV ?34j>oj)1ZfQȪ O tC4(W+X)Us[Θ:m#JߑYM)TD_ lsݐ4XfG}ݳœ ="7VD, Y4tF|\+MEIT~ uwfD}뿷7mLl6'O/{ R6|m.3kͦ3dK {%ok}!;!%`Rȹ~3k` z2.D5Qr牼-OdqPlę:},L&w=gWm i^ [yjkGQ ,^ޱ߂tHA F v?*:G<3`'?J#b?!7 WaX9MiӸ &UȫWNr+ 5b19>e-c; qxt K8SyԔG@J&`QtTڷ)1Pι&UUp0um߄NXG;d!Cҁ8Yz4N|X!{:5n.5GWe=ZP՝뭽nd" 2c&n55䭒e>U Uu;Ksѿ)^_-om7"/>!L(^\-IoBN/\1X*'\@;BHч;%Zꁢ (~Ox_u=wA.R̽^XUx:MφhBj[ F%!*xof@3kl<`4f` 뛰f'H&!u~4~o lF&$:+<%9溺#?!ծjUǟ35ظW=?֓lwYwt'mfU,69 sX1(*a&ݼ$i[;GxDhu-u`#xp:*E7݀c|#[u* ] T[[Uϙ&Jb\grM$yrhHڧpډp:|wO8F\XΩg|yBS_tˡ8Hn~|!Ё1zY3 +zfpcY8ArIN]: ʶ QD `5񥎈0=P$Txi\`Grmwё`f㮆kL(hM_.zL;m|t HbYĠHmw#E]djl;mV;/ +v ^7 uDNX`jU[ߪCCV~W-4ޒI&F| LDϊ@85XgȝiNL^*o|& $ [6!R#)nDCDaz"y;!pFV&KwT2%ty4o~]ey9yr9Vtl.-Xъ7T], ϼTZ273{Z]T۾Y'hG/ d ?5/,(1%w\E\bpG~El=9B_ lͭsʐЪ1K9,.#p^n1{vY:EHޮgL I:i,z';˪/04K0F_UCRۉwH?GL)"WgPiQ&d^ej/*`?ԯB`a{2p G=Mtb@c񘒐1G$j'BRBߥ0!ܤdF?n`$ +"[da;>xFh"H=^@{sTyM{a!55ǻG %̥y6l5o/AҚTvm$=52>9F  FJ;K32.GșuO`p.O@dWLw!, ~%- Wnsjpz8kLmJ  wqoV7a;OE9{2ɘV_d|EXO[i˶A%N呟6!sdJS3Uq&$9>@wTZNSKa[R>JߥAe4͔WoU@Ɛaw"SsI/q$DͿӐpb%{5'"vQﲻ6L"UA;6V =2<.N$p ^n՜Y d?M ~_QhxH6t8eg҅E3Wd'M&N:&TSo0̙ ST޸!MeH-,1wZpN/GK0g$D&#+r%^!+ok ?.jFD >@'[*L!pF^|Qm]4MkeW45t75|'\ ؓg^er:Eyd[wjدHvB" 3 _\@N!(18jP)M̪ex*G@3F^xI=DX%?l-d+"Ӗu6nT|PPײuuA:cto"2'M J:q+X~8]s([71sdYjK ˁ_W=/9lgm" 3)/Dwr`z[oj"ϣ1D(E_FiFKF9.yM#ky~n%ȣM{{1/EE;_VJ2:BIt(:LD(u@ܧ)}rPxڀ>ݒnٿl Aʟ(fsH1^́f"DAgBpIa]u[g9qL%?f6Jg S p6~ >C5J< [c q ΠȜ ty2xipۚ78*LߦQUϯ kv»B03T'-@NZcb6Zy2IHجTɸIN ݟ<@["5F"l"-"ift˹JK`"]i >'ѫUkg汊8OUWcQm$/i;b|کѽ0V-e<>{27ԏrPZ}BRg8<4BWJ1zPtTF0ad-vgNJ#x p@ly7ڀ3 <}!x)X`1}Q( WK3_sD[ SXUa `봝X*0x1}[(X]TX!nuhY$$jP-bbu<?Remka\{I, N e_vX-ĭRO>l ^w\/ߜ}V tI\&ٍ;ٟޭ5ڔ]ܻcnʷFW7dkT(iu7t#Uj ]b]@J0˔ v\zktZoPźL2*y. teX}”n]@#m/3'cꝺs2`9cg솟:rd zϐ9LK :yM_8 uTI0K(A-(3fgpncP;ؐJu,4^K\@_jQ-X'koA M!I!X!W iz-3e5RN'\?MڴҚ9÷z?Uٿ%I훕2M0}D+O&> e픏?]h7_Y0B{Y_?E,;'@gr_v>ez`Ӥ/4= m{?ui$sqEuw)w*.H'O)wZĐ=׉`$>"1"NJ%A82wdn̠%N˄(!/v̟:۱*_gWr/0{]X9曚a+Mն$Yǹg)ȥUj3};߬DQdr<9@3KeBoh|r_=:>*,@I4sԶOyA>+8@MƳ0rL'Dž io;ZH|Iju_e u w)!ƕ00Ipk!*zmo`CsŸUU:wXu kk HV!p6<B+J, L0"5~mLn$=,b2@*W<8)ސ"WM޽Y5Vm{mlOܨMD ]sM?yFTWY:"bzsUHIm=RZF8wn7I2< Ei)+. ѵYrij9xFN(-ay3@&d9ϛH,ڔFh'Va-{V%hJX?04^՘M@)_5ԩ`'zf]Ktl̔f;31i8(vpȮoͰz:!`_Xlt\wj]q @69wq&4z*z s-9KUx{dox^U2:)"bcB3\t-̾N'Z\_nY/ ͌{l&!LQ͹'f `ƪ.Γ P<4:ڰКXGaI +CB!X6eܘvF2fCѰ9fsx\q4 sdAE#V.B Nä_[{ܑǁaJr 2nbTٹQި[' B'8j]@pC:q1Ő}QӞ˛~3$Q W]C}֖)En/0fշôse2?DpvwB[xOJt33Y gMoKvXScqɞuoZc4k˝#JcV_GdFD7Mw#8e'*I滹E=Fs4C/ؓq?A`/aMilމBx+`H錦 ] Ǣ-Xk[SD\q!M07/BQzoj ulz$ttNto;KDSMҐ'QP\@eX鲴)m]IɛRl *2؛s0 K{tsMy,,RE/+PSO3=G`oȂ>3IڢAxֱt!I|Tk& cϘtP97H"s]@*0bl凈j4(-"VnXHrm3"J{/EZCunw,(E`H5Щf>_1j4?) )Pm_!#UWy T_ĿPTE#=z`'rS֢07ܤBǤ/_G](؜(=Ez>}hXN^|6#[Ì"6Ir9͔zuwHLȰ4sO#dRKz|: ;p\nGNWpO8?*#=0X?F|/g̈́ޑowtG/*B3"%Ly*i7 6;-oOy,?D2( .ǔSKvH?^&1J|`p\ڪD%ǫJ̄)ȵfh1%TedIBcP}뻲$Nb쌙̘C$y` J<@zZ(:cu6~9`_-8}k ,z+ID^񖁕DSLvS jQ ꖪ%3Q 0)! )*_+&UeJT )UfX#BP(Z#Tpu%z)1BK( /g1GL(%m^oþ_ҸyPG;(V #:tMu9ZArՅwTKFL1r]z?ͳmj:0Ľ?`#$UyK3iq'z|hFnbT#t}ohfem gPUo|Q*eA}&Vi _~G\,{>Q8Wg˞CLHcR}u_3@ݘ I5lWA/Nє~g v+':J&r_?m}j1,{f=:_#2ב]8V?LؖVu#@9_FC:Wg+5pT{LTg$^xy=)08 gEݱ1{^uʑ/5iAxM[dF N?L& a@w"i-O ;`ڼ+=S}!XF!; `67Z3ieH$&a7bر:QACVd>-4| 7&^TVW)kb)ZT֍iASp R #n-?r:B/1B&71sֻvt1 Q@e$O|j˺^70*vWj#`@ K4(oĎjd!*^U`kn:hcU]'y'7VAp@f"}Np`J=˼k7.Ii@.P)iJzrϱ e`앑kGFYJH6J0F-挺;v_CN5oĤsCf*Ӂy + ^2'XYgYTI QXC9HKWi\ֵ0FQcF4WBq5WL( 8Ds$' n\?1>>uAu0BO –Mky L>Cl \ޕ+ZuNI@It#q֡&&2{*.=t.{Jn×&E;_aVV>i*f*Fj6Ŏ2G3U}=Xr@ ԍP~xQ5Km9>GSUԅӮƮ(ja@"hsNX>zr3&(?FyHS0: ٩Ӹix;l-E!0dK[, sk[_=- -Olj=㶹QGVSI?LS1Q!;87}|*zwI_u!''Qc <ZX'rV"p j;jg[CdԽkט] RfN}u£ֵ"B|-2%Cڳ8uu3 Mx<, %k >DD #~Hbs{?y|Zas@ lT{z]'I`~5ǂnDB# !'t3UR-yKF6|ņ]Ě ]@82܌=dsUfZxX"-G41%afG#QK".@x -vjV˸|aIe3Ct! (lX\O "غxFXSuLa-X h2:$q;W=A=ΰIE&Q٢,􏛧hluvx9/錻\syaֳA~^l߹JZ>4=lnʼnRx@MV_<'(Փm]F2Q;=XiƲj[Ih:""Ur{M%y6*"w±LJCSu+=[LA)+9\U:]V: #.n{k:n dδ)hb]]\N(+VEقŰUĶ|כNߔ7؂N,F[TwA|79IIܟ0a)Ň&v;y4R~=́" 4=/ e5e@@Aff ~ݮf&Z]㿇͠*s&+Uy\oB=! v,Ѥl~F{.[<u\6n,G%%!jxLF_譌WG {;kaD?!3(9eC,n1;kY]lO:  ݛߏM}J[5mjnǩ('i拱XKx3{'J _BS Xv q3xh5jzOjI' x..*ȫHv˰EU2[G6nEObUn%*-LӞ ۑ+qe[h{HDCtlҎlo۫s[}2`@1l7^kcwG cFgf *+ R %GM^S Qs]BK1SܜE(^ J8.w}~BM-#MT(pԁ:Ԓ^+Qtܬ]3 Zc,ɰ8wXlM@hɊwQFΟ|5<*xumg3ͤ&|`)4Lp"8 }Q&_4GN/#WTcu2ԝjwRn`m \l𣗿7gA^(?1(wBzV,鵝Vq걙Ǵ@YŎ!]Ky <.-[ ,NS^4o%߾ {^,~[O3߿A*\FtZtC51HyLz: ;>d>#F=|AdzJAn4כ! U!/E;MGB-H~pI^!Gz2Wk.U,2soRC LvPwA4] 6ftbncaZ*e_i;^c ې.)N:I/[D咃s3G("%4C8.y|3t6ue ]ԁ)4g~_#gV6໊PqٟVD~xaíwa`@wC@Np.e tFs[5k8W;蛑X˨&}KeO=D|Iˀ:{9F3+ӱLտƧ՗mh#2ۑmPTP(5xOp%0F:W7ˎS6Wj􈡈K^ R h^4[HgcFbb':BƹJfӉ)ld~! ]t:Ԡek;YPB.ki.ʓs 叫?V}ƪq ^^-fm_;žG4ݵ}F},Cq;b6PWP5^_Δv J~ PK-X`zXHdcqg z pLFM%$9Qd*OM51ګW4,XԳmshQ0$o߿pΠQ(_/늎DÀq"NX~dQPj@⢙n Np#u]irF_ZeݯE;f.;63pƙus\ He X*]Bӡ"(u7AҬ@èU 3ݟm qa`vPІAcv_ɥ\~ܱF~xaM;gl=amXI8n)W n`aMb DQ"Y3^pz? j)X2&{>fFUQV+v*s,(_3̝Z1?DSj445:Nؕos6Bp&T8Lis,>r60kfjktU.ONϻ*oh{}#e^cաs8+E{ mX'&m+& pyv$) ڞP ~䵭Q IZeG^ve%\;#1_b/=2Xe?6{L5An{_t hdTIAhR(77Zj`9v3t[ธMi?D*{&y"kRqMy 4Ďtl>6S$%&].ε0 GKmb@ٕ\n Էpn6@3pd`G7/g/־Rs=qkOw`ЈJZ&E{Կm jZJq|1ڨ oQu3ccG =4rđ-7L&>oܶ&5`yNYab.0a)^1{ţt%R FS -x;svIN`=s:Hbqɘ#E&oˇ-ph{l=StPu`Kay>vg+Z@PRM_V W=~o ' ]ݒ1BCÿ=\WT:15MW}ƶƺrOarVZSڜ n㘣?.]a,MG :!ӣҎ^l:!3C HijcZKi]B)fY^~6zJn| qt$*(qVފ|Tw&XZe g՟<L Č\hMcXDIrs{Pc:#^DAA\t yaL*֪ÄaM{p czJ3VSzP;8eC[f"= `nf$\G;ufl)BNN$f+b TojM3lմQNQΤ>x}c& _ĿX*S!b'UPz>j~05bBÔm,Nao &L^F>mi.0.h9Զa93ǂ78U8_wPM?%WU,}FZW2Fb0D#גqV-}Wzų-LjLRy $\َTbtzz^5.R/ #tb!URdIX"+:r{,V/ ͤQwp8s۞zr@nhҳkj _p|.e}r)`,$i>˜(TeŗFQFD>AKvQ/pt]=L ):c`N.4ZQ3C=O'S6{UMҺE ~`Pi!n=c>4QӜ<=ȗgr˽1)hcL 3:%ŏu*5p? 4VM fJ ǟ=~iva=R6*;,7[M}zLXKDAnsX}]\3(eUuAO+BºMOoOY<zo@ИR]&A~ 5}4 PTQB70dH*=qTލyA.!ŦPW=m.(&FNt0f_I(&Q`ۅU߷YU溜 -J@-Oi-P^Jm!l@iy!,{盁v.?W.ؐ>1%з!IKyۭZ]0`#1V5I}kY}}`zXfT1{ .ݥ1+WZ ǥ$S[S=@gcֹ<ۈ JWd>E5P?Zjf`=N(("hy3Prw*J`\{2i05)x)IɾPfUԥtGXۇ`|F/@F,=N1h$q,x=Ej]ͽr#(odZ Srf0"ƕaDiV>v,f6V7[K1Z}^>h )BFtSS=MiLhuĔ0,Y\dAg5fۉݬ=p}pCѬ/x`3]=4j̯9%ǼT{Oq~<&P"0KSӺdnQll@PSU!e!# 7RF3=xKM|bE )\Amv{kIׅth g Rcfj8% R$榒N<( PSf=-YA=Ғ.o XRmߤrR94r&ɀkn͠7 vl|t('Z)~sÖ Ϊq՟^:߈EG((=vu;)`@>@aT@xZ d٪每i[vKN*f۫+1_[>%l-CP59F>r;TulU P9ac yqe$tMecrV$W"&%iƾ+GMci))O!TDn,'2{K.(Mr9jwwy|C Q5D{^Jw`4Bw,'|8 1+yc)㟷w!q֬$A[9FBi+6%,wٚ;$>9"&0+y)Bp驗e\(wlUKU;Je| H*8BTǛkmP3=Ģo'#~R5:j0Mq7/'wä˝z  Zm[PU4ׇ%2#bMΥfؙӣLN0dRQ8)$a`ѧ2BĆU6m{KL}Qá&k݆`_F$uT0* 'q(6KF76'/ںMSȫ3jb8ßl'QhHÌWh0hK9NG}wjY$%dW22t$-= Н_O ɟnP&nI]5;ܕJwJ+'`\~{"d V+Zcklb/`>x Y6`4y0SvqB,vDl͗AP1, ɊWSK*E5T7Rkל5PG4*FuBDז4էmVb>$*k=Vd[颞k7NlTܱ[I]d?\j+TpM3uϟ nMNwc0}Vsk"*&5dH~B&S_d:Q֘m@Lz{|ˑNuFQSg6z rZ[~唓*:ĬۺIgM أ=&EDƵ@;F װBF{]LF If <@>% Ѿ房x+3jKZfMF<(CzR|":=RŐݘd0.Sa & C*X+9>[$G4FէG2X㟲-k)s8bfRFDF8U$!O;7IBE`?cEz`>` |rxVs9DmbM^fY sH,B{wL0MaWB]w1^Bu eIpbӯ%Kr6ވӺɦ`vM}\) |* V\;ݑO;}WV0_io" r+YvZj?)S՘3J>\&Z"):%7r\=SH'EQDx &PMS|2.gF#} ,_lJyO$;tHOΖVf{ar߈΁hvPɠwas.;P7if.NRfx 0He\x*PisI?` D|p6g?Tb1l$ܫvF`ȧ }wɨ YBtUCFV /j,fȁW}44e"a_{ yNT؉)']t]Og{RUglRbZNJY%y$lHH ^#ko ~WARɪj@#~q"< oBA٦wQȁ-ɝQR}#N@i4E%5h6*\Y?yKq^{=r5ie}_?bqe‹7򷊨  3<֘-~̒y߰V5X-褞ڤh6 2㋬Lކ#"A-m=uɋ?[.he1F5(W۴y*I!_U 2RtRC4|˯.{RĆ ^ 8WNY*xd~4at~7a.92״/$|28io^?i[h`L*X#c)3VA7,=+~]P4xQ^+'lk;0?}%3a$r[JOU yMnn(],"To[6~)_BZΎ*\$Kuè*iKPJEn<&(" Ʌkj1M/ݗ%on#IN~k]g|ypf8C_0vQawA{@=TT9 k 7Ue~YZ\rT/B ԾSxY?)I Л"o-p ઘ[!|cBnBF{[NT#JxE|_ HM($4)~VBBm-0T8UJu( j>2T.RލMzäpYѮǝ>PM3KTamMjVX$C#~Q0G?2deB#{E3=<8d))uT:%29~_ϝ_BOޤHR']lzqƧu񫦓92KOa T{nȎ턹*Oڟjt[BrW|)taIגFҩmbG zꏀӢDFg@{suh.H>,p||R#-zDgx8%ఌORSsY6?5XSd \6Cfa_b3!qd:JB*d;4EhTE:'\#qXعm`FK .&a1C#h]D}Vb{Mrg ln!hxMxٗ9[eo*u}3k* U'"\Z˝u.AKwL3Nzacc6okC.k0 Rr @]ws"\+s ]^D mCx ڙ<@69%gOd%gЮhqݑVT.y)?a )Qzd.DV034DJiS*o+u̥|ί#b'uD`B? >Ylhl%Z`=6QP}#(@Vٺ3 vS>s:Gb*`۱ut2sy-B kɾF_VՊy鈀;szBz:U,I!(`20~%t ,RԯtB"u3sa=kkD) 1j F:I߅'s2_jCEF(~Tr#7Rg-%S^=ƀ]ר/鼐iyִQ>RCqsѢn:Ue"*\nEb06Vi5Zeڤ/&5* (@')P+z_u$:yD(%qKOƖ[2YEygʌ"3EjC^!CAK=bXw#h1Rx g dz|W]i#oJ@B(L ^FcaeI[*qn pz4Q7^%Sij h`XxۙM1+uh:P$\f.YyNyng R}%P|̉;N+GƏR jÔ1Ms:|N]:|YbV4wrJ [% !ZZ{[ѵ0åρUn;uZ'!,Ӽv0fy1`T\~fR?A`^v&pjFAb]w,G|T 0 moXAǃf osdܯac~_1BƷd:|7r:Dz0! _9.L͡*yg;n,B@FŒ!4_U@>Ɔ`,(9F"=dEe~"6g(wB)^ _$!5KLMh== ki;.(.!\UM`<a⪉r"op5GۂƹVrim4ʤ ,_۸JW #xYa>I]-ZeGk ù9XGN=yy KrnV$; 6[OO,pbTJ'*SvI!z/cѮڌ2mzE;3ltnUO[y2o'k8<*j~|Hj`iBf/ ΃3LS@=C)3f"nν\AJ]Tڗ4pOp}b5Etv8Jm,Uld|v1/jFYpR{7߿>'_+䭇F60Iv$J->ȉ0U,t3* >֒ **8O'd;LeJJs0hX`(q 3(`1rRDr2 NVe{,spp;7)3k\@jP"xzWu(Pk[VgKwZ]wpٙ6poŌCڼp]$"r b9>1J\1  : /|u9L@/H %[Ah6+zX0ӡ.##R4eܡCzi7;EnYu#sd8SjLwXr&-RY" q]Nٔs2c% #^e֝K Ccm5{:gPhOCzxp{µTZ0QlxmI69 P>!&@_z  0Yy ]u횗FU0f5Auq=HI^20݃* ɭ'u+Cbut}QRu‹=@xjF0MJQ*#Pwyڮ-ϊ_쓖$%ʸlR>{&Kpk^#R6c}) id"I l|Wb8%UN6X +2 \WfAS>k(OxƴJ|ߤF>rQ|_T_ۛM2n]-ݓ#jcH>-= nR H) ci4"YAL&S^ 93w {x?x5RZ(+eFh9\ʱPBNSF>]P\<[YGFa aeŕ;ityM&_YuђXz9TD$\^-nB>J/6:Dkח{S>JgV %aŖq#;,!+f!\2 &{~}_Kp)VyMi8k؃(N[@S-o 7smdƮ_u@>y3?[74`v4 ʼ<=6jWpՌQhˢ dqq2?ߚב]kx>{5'>,űdR8GY@`qu=1 [t;eӶZĠVؤIAy1BmBk*yT@oǖe`!LMr`93Tˑg@Ҿ24};U@'c  (PZV*p9(b~|@]( ~n'D8IyHK r28N@po RB *v3X_(S+L7Ng!F{ȷ`ԁM V~5`h8-l ?~nWRv7*SDt8=r9Kf"lY+G7 83z!'3N9 Ιo ݄1B#8.8R2=l?l Ka58B)A=i=Em R~FSX’3z!>O) .EY`0N{ H:0m#7zz&BGW#i1نՀ"TS${"w G8 {D#Yޚ ϿwCp[Q(!n36 M"pZauM뿾$xJ5##K:uy;j(aNy75MButu*aN 4\'AhzxEخp%^%Ht![\$Rmס],%s$&Eu!wYB_g\GtٲY[ռ^cUQD"G/nyi|;?*y+6}gi V6y\DAOaeoog9Ϻ#7}x~ 4"IVCԤpI#K*edHK6p٠QbCJKPp%~8}s 58\#F _>7YvF~ ԥ# Q"\{+=W|R:sh(Oo" Y H3{;((~;E퓆{|Ғmt2 T}H o22}"B7'$qR-DGͷyvZROczzm)=$C7R?=I 0uw _\=1LZΖ%ʣП9 R&%d#'=+[zgQmgkc{<Ɋ  UDRgwR) wi4(iɰh .NT-~31yҾת'6:\&rHqq[X2υrgh!W^4oDz=V3? &8{.VR+S]Sm `w{:v$Tk0Sk숻^t&opu|RWZ> -ﷺ;DTbO|ٴ"1vuQnSWGn57E$"' ?* Fظ ]bBm^LuuG0 {`Z3U_[N r{E9(|VP3FY *30fm1d H{dn#B\]e.~n޺Q$C&E ^P]ItU![ W})naeML@Uϸa n@W~RksW%.4%w/y Qu2|X19g%^)z[!AR6-]9QÏ!B y0VSg;g53f1@{#VƍWO-kx_<S㐅Q >˷DHF!&q`~ tԷC #j̩zSLF$'5P`)DR=xSThĺ:nK*!!oy٧}{Z! CE?ૠ֊¯7:柝ka]dAy"{]*bئW7{RD@+F?M:HPFOtx~q(΅3f;:uգ:0JСfj #T#xQ1?$ۓ1PqfK gh Pc)#j08|D(Wto3Kj_Ƽhq6\DZ wn$jYzYkz^xo+dPJ1.Tyǂ1!: (瑵+nsMxo'nOyyڎqqtsy/pivs|m`SV}~DxDr= D8;p!?>R4c=b Sޘk*^%T AF߃)s_5ƒi\κxlNNg:@@ 367`ɑd ==U@5= Dq]qEw ]7 څ3|g\)2٧xyFC TW--}$^ MYbQs#VrJ_YS)5^ )Y< * `xp6xDNP>Bcr$#W@Q][[{3Avn/24=SId ߸Umu8DiY} 4Z M]T.'ZzZu~g׵gM}UڋDkdhvMIl:W=czj!`" "$dj[ZPG!BqYB-ŘYNB.a."#c߉uZ^Pe;}5b=]+a}~ilujNA6v76՜Z3d)%(:D=5p'gC=+JkTkgN}mĜ`|"N$9;p he˲Hz)nI ]he/Ps'i#gma!ǹ 0Ea.`WhdڅS$d$Z{wKFms?M`0DQǻ{FP=mϷڰ.-3Z0 Ho" Wa]]lP –J-jX-bxUbq31޳( hnK˼1urN]pK9QL+q|Qޮ=@'~K;:z$gNH{,1G>6w/ UkV˫RʻnR4;̫eHx/MR?D]Q>\OxRw]wSNגbjI !9N2\+EEDq-@ !oTiu˥K-1 i` -'U6Y'+ u!O䂻:-L<97rn#'89b<^GQ Yğ_nK\M[1pp8t/mK )$AnK1)vgJcq,-yo]1i&k0>ۈh}0 d.}N6+&  ]T"@+YSOy4fA@Q [D\kⱁmShn` J(i!qm҈Gf}Z%g轇q\?r&{ *mwVz#u1ɮ!]kF$ P [;Zt M`x[! đ$ë/g>yBZE( =^v@8 ڡhTlZEL/[EH4nMn |c6&Vbn>)ni^oŕ"nNw).U_ XƮ#);MP7B &!~ x$]ɭE@)i|'ZL&@wR`Ҏ*z& zGC&~)mK}r'T"Z7εH#h#@=\p)uzeFi)rΚاJ6_R=+0\Q_R\fg ҀI?Pd1' IguHgs y9-5%˗k:KөJȵQ:V7͈|0>o6\́SV L9wVҝxXz9܉+RJ[OK;%k~ DPI%_y_zV@wډU"TDj`XFMT ]sinbV+MRQn@W8naH:kTFv'ghA`YSP}6#GpU]]R3Pgw]#hTEʀ\Mf-ע fp aniS汷2<'k׸Q0s"h(_~G'=@6?M~LXv%89R7OFLr5t_mݮ( ݥZK(H(Td}[RBbM]Nnʳ+F,(;ٮ w4aDZ#Io@sF( 77Pu|]_"<ڪ@&Cc2 0?zx Cr%[aO,miUpWXLاSe'](`;vϘLfY-_gމ Tra kuXm)I7FRJ?煁\h$RGIx&KHܜ7sPh=, *:Y3\M n+2D:QNt@+iv]FMZﱩ=h3\TfpRh,Κmّ!O lnVhBmHQV En[" 6Fxs&46@H:T8j>ɁII\ndɘ\r\Z,<\k Ѥ?MQͼ(| d/[r_Sz#cSɛdYK0ks5L:؎c*I U/T}M '`|wLBіio5-Vv9FS9BYJxP{ ?(ӷ[>tBzM+IgR;RDVi: T.J݌w~|;̓3')8F 2n:vO}sx{K̜GgK^'ku4iwk:YbpT/=A1{es2fmckpFdX;unoXi@P[ٚ/MDq)bQD} `cM,f0Ɠp$-:U4:]׽+^p MfexʄbZ!$4ƊbStgڬ!Xh&:U:ڥ&Bޢ;ձQmxYsGJQ^;uI$dF#~Jy"̭wGjtފ{5y9GaB/nSDy=)W.j4_2u8_|;M<` TJ^+;#Vfr=qBer :cf sC|ڹ9<#2uc]̭38X :p휖mL&s]([3 eV{dJnk<&Yߌ^j#dD O9!y  *\:bj)G(cu97 O%[LP^/D^ؘp[3ADJ>Ohfq)T>v3fh~ 6]1}Rg $<"1: Sl;iݛࢧTxƄܓ]@NTLYhX_=`jpCz(-%nob[ٖMkLc8T,zs%Qю t1; Ƈ(S͙'(8fT/uϵu=]W@pȐƩҠ)],bjM\#ŗ`5if ]Rg!" ŻqTFKf.E͞.64Y:J'm&#'"hvXia0oRXqkEkI?կ9HW𛇋$~e;ǖI+N<°kw8T[nJ7N*z@pRax R0I8ZrqF{wW0 [ojU^=}bR7qF[/`d{ b/4PwH6i^|,%2(ZJy~e q\+zSAH{l#:b\.\ %FZN P,d15?>j$`suQV09X1V6Ag,3LU8v9v}cc2;Q16tjRk̘]vq_OgWJ\𫝼BUeOzyOx&pxF 2pENHߠm+\04 Vg,.+wmQfDjw&cT/ ܣ/E*Qom[Q 7Ga=H$~;HkW={֤2k i6p_|wliPU/Τ:.͜+*@Je`ǰxӓf ӽq;- x\4j)YנwHQ.U3=K[/&\v99I8UneREŢp[b;VCo&":% ޾iMeϺ ET_a`ըr/@kBX$gڜ/<9hNW <G}'LL_Y&d0EiɈgH7 KQH` 31_I7&9Fmܞlq{U1S+Ԟ'QزC#Q3t8v}f-cёk2]}Q ʺC>(m`tu6Hs3Zs+MHsd}0_e\UWzgh`/OI%I|ujK_]gmow-ōb:8fn𛀔,/3-'*>`ж38 AiuJ6fKX7WSUs\J=VnmrTA(l=Q(EIR|"5AvKF ͣ|WWZka$iaT" W 43ԆJ(Gus)msԧxA)A|ąLl 4gDPdMTЬQO7ځ(ӻY^G)s{(km.K~gaQÎI=%r4\yP%h|$%oxSdt`\jOWo11-tcpð-mY5!F{Ƹ~4 / X*YLU:J|J5ĺ|1Glvӕqa MfCkrw#?+>E۵RK$zdt< /; uPv;j-`Y7z2"@L)Mb HKs?B}+%}hxՊ/M$(?f; Li;_)o}M3H!cAԍXÌ'Cb=E |$zP9jmo[<׾-*FI4:b6u| qφYDġב+ĥA=soUee yȽ˫4m?Y9vv3rwDHhHrR5G? #v7C ur\iImT*$VW1~V 1t `īWXE^r񍖇O8AՆ~AEe׼@|^O)lhPO7J2,V,W1v, URd@2qU+QFw L#^(K[ &1Λ?5A [HaheA;'N7WdmV-`mR 1غ+z+ոZk.紭HY#ԍ!xc4^x?{ V3ґ1g H1`twcRHsL 1o1|;-+;Aa)ȻT6/ہ,VzvWd mj  wbCNe$E\8">"䴛쭗ޡ80_0 X ]5ܓ_̳ca~<Ĭyԏ҄YtۧchL~cOt)*4:XZM08,%N;Pq^DL GX*Ehk_2:;}fj$W6+^Y?NnRU,U37cL'`VϠt@aaukC<ŕhZU8ѐSl$1'ePs(r(2_UƶQj[{4GVS{35.4~2iFBh>R J%geND-OHZ}OqzaG=7y;̪-ڭVRp 9 mԥv. m=1s^Mp ' s ?֊4FJ$jXl:]U:*]c]MWm+{ECEW-׸ ]s 32hdR٣#wAC X~qKKsH|\M&Q|$BQLDŽp3V6L2&szvWVȫT4ˍ]@k [LW onAnʂ[5؋Q}% @)X2$.)P7h-T+,ف@g5p)|Mi$bIq\ " 2(F^RiF2_)&[pD6{aYmڳn"BɪeT}6l(eBcCEwXD`i|.QCAo2mgCH3ȪָooAxMb,Cºv6˻)/-t3vYw^ gW،4fre unDtJT82v3Fn@KIoIB_~rrsp%G/ɯiɞZ.+8"vu\PZ-:"V+ q\)$8%MmϹNyDr5/xtL- zPO;~ZF<ݎ^Fj"]lgZ]R;X[ZVgf!$z$aLLtQUYR)S Kc7M0jv ;*nw@,71d*$ܞެGU> _pw-A̺E%nދY6#c27 ,bR C]+ihMؚWQ]i hBW*g{*W1m9֧`ydƀf;PlFpAD\jY^D- AnڐėAD58<*P-t6MCr;JqX°aw:w:úV[6P!n̠"-lr%VN8ȱ@Tn 9H Z$Vl6`{!gnT$]tos.2|,|!ڬƅ#͇ڷ,cU7fA)UO}9`蘆:$s4s~K[D"@hϪoGMnFcGUGuq8#K$͞m"ZFmocyV]*Mry]5ι*߻] 㔜jURr4eW]$ MUOX) Ǘ?}*f;<>bL%~ ; *u`(I*"^E# j~kjF}Ob"LZ~Zyȇ>KH 0h,̸6P}'vE 85;0qևMV0nȄIe?bܑJI;@lu)H>dög`a|^N` EM@F4$t=RonL+CzP0TZ ׯf2O6IUNw}qN'&/jɧ]NaS<_AavsؕR%EHmx|n{ ivRx%,'.$2p?kŬh D"d)ˠX. 6&یa j;յ(@199Ohu4gO&Y9إW?X5 q .3A}K[`G-5kJ4iZqIFqpa0ԇvP~Qk|Ȥ~Uٔ`  C .aLC*CUm^(4fOҋ OdTki2[QyB@O،l>@ sf4V,Tz" ?DM|^?I&\ȀކZ֭?fLyzZ]\cǢ5( 514Hիm2͎8c%Ɣ_GVU K\b[%}濐V4=:>DWH\c3}M&+ڍ|r؊Rj*&·fh< gOύW yI jX]} Jo,)g#G ICp&.1Ehm=^=ay4v~JGbTEx9Ml~.<+c(<#3#CR{_yYx"2XԞP),xvt[haOpO\rvY7wY1@ yWd2>{3t+yCNpQ ɏ;3RIGrY`JDTk |a!k\lz> Ec+<86aseE ⃴OӶ']m5jUe9OT>W ,eBn8\{.f*"MڌbDk`́۔  ~a#[;=G->> khZTqz7f T#Ŷ4Jh%?Hi7債5" 常$<,IUUT^ޓ |$lQ7fp >`0蕁Ai}d TPP]5*UA0At}yrH0NTt\.`⹚5Id?\wݵ󈠏DeAw$㭇^}R|3PܵE@0jLˣ тw$ 6Z}OEX^ &bP^WC5w3TlnDaycR1'ψchYVm"ȤrkORy0R˼(وćOcMZg>r/A H[; ~_ y>|D"cW]3bl@=wRBM8%X*?#O2nܺzЎ iޫVehw;wy?@CSy\-bec*cJsZo(0e*1 `i~^XBqMKi, Hߧ V, 0i)e2v|eun1fxNErV*CBTЗPr \ &Qy8Vk 񌲵FX 6-+cdcs@,p77Gր`Nw;Q"Méw|XyyR\KUůHk3=+|ղq \̂n ^}$&^60Yu)ۗ;@fA7̻zAI'ݘ -E%gTlrFxGnhLs@:p2nQS%S/V%J_0P,Dmɂ owBH[,'fٮ%˗paz&wxI$lL)+ȝ'i^+^sf 86H|CT}& λfAyY}Ew$yi;(=r*BX 䯱[3cя]\kC=FX6ʼu[qi& {z!lG$QU@)Y3 F5 %TK'`p}ZGo v ~er ѢH3<{Sϲc͇)Pb>,_ˋ;-Z&ٱ Їh6/A/ eY.]Y'uѴ+ؔ{>M'OŇzQz( `UGi_e{x[L ҠdPYF_'J* ZI܆/QO V!9kەݟN076E&J5PөwP*ßwaj ʼnAbIq(6C5Rk#x-T ʨ+Սzj_ݘj:W[-]$-E'~k8qz_,hJy>E+݈q=[68M.'Cgl v+.9~`&%H њVFw[!֜dxK˿$Gbp{"A LH|@Do?R}TSƷtޔ]w!/qx/,++PԽ/)',g6 }(&,_@ÜՔiXI3-H[C+d5uLD_klN3+A;s@1uqm&{:OF^/5j,v, "<;!c/YmWO)߀vI0ex*.Ids"*}"-0i2N/f(QVJT7_˫|,,1Cc`҈sԢ k/\W?\Ds.$F h@WzWBܢ3כƀc(6a%\e% N7|YYnՌ/-4=UgO{ԟ~l\X!X,HtA6x?Oa>#&c2!Cѓq&YZ| j⊫#FxGTqؘ;Ćm2|b%xJoRoNt;Y(\)-tr%9Yָ5{W׮v*n$yp4@L_ëoIuc[!u}e6l{=P9#ҵaCr&%m8?J)*KLm+XT5(-Df/) p@rK[==bPs'X1Q9xd}ْ݄“W5x0iG.'gkݦk2**KYPVpBGGe4C{t\2lڑ!\4ʍݜBUhQ+¯ S{`Ȁ3lnx<v_8DFRBچ(}xK؝?3qBB[<o\g m=rWHwo5.-9KpGT[` %e`]*#1SQCϱk?HO:`XPJd8 & G7j>G>&~s`*7v~HCn(;#vVIӜ*ჽTJ9qM Cs[H]OTAu,q: M@Q/ٝճm:4&-giX(Lhk3IxtR،}¬&+)\vj_JK.1v1Cÿe3~IMBrJ:P!]%x "k#Gչ/^t< Sf I[gC786> B %4y_%@m r\d8^Y.%YOBo31`wcNB-T^vO /P# yP__ \܊ؔ&*oN *_x[sLAcJ<|wMdm<&r[-rK~+D?aR1`vK.iEG{K&F6XHUENWJ;o^mL xpI*e#`jj_{r t.pUt"|O5wr?E3m\oI[.y`L~PgͧZ+" &%}'x^]&v T vK̬ҝg%۸&EBZ]xZYwcXDvªZx@{q/1Jc`+q= mD;)nҽsk[P7ΫmiM_Bh  !PL ?7@den KAsxĦj/뻘,mBKvZ[4Dxi=X!;)gWdL>AC$4Gr<~gZFvhXq|q{ ǡiI DCƩ,+M? ;m8 t'ޗΐޖ¬guK[G]g]yЊ&/>nq 4Kl/f9cLb;DE!i١J,0oϒq6@V훊~,7+O2 zT+'2{hpTιag8㞏P_R|LW=W` { mcĂkJ\asH2-J9՟EٍE 52m#e z߲^{?03ޥHtأ:%皆PUEPJ*[䎮!qb=k0k@ trhFLP./zD ( m~:ɿc.LaC F m jh0_$#lt, RNÞQm" ѐ-T"ޞl :]?>Id_NffzTB_5/҃Dlf/?[n0u^S>@|\ V1h-:Y`lX+GX}-m,ev'1=)ا _ѓ('-v Dc^ 3:tc./pn=Pu!~~^3AW~4D*^uo\ar&gz]% X` 4f *[cu5~Wr3O40vDȋD|3 @Xd_sx*m$}FDu3?@ƎyX%4׺2I"y6=r2B |Fn(|wL2{LFȖ>x%FP6WY3fPp Y82nzDk}O^M+MFi\ҸȄx7Pgw)?~NWgt_|kp_bZRSlŗFL#B%0kJfjK'7aDVUP h;hqڡX8V:%gHtroz!rtclavp :Wqŝ3-y10lPcsziK]uX2IUac2 N'g3D{xE~/C00HQtM0A`rB W0N}W=6/:qGWkuNJ%(F۶V|Z=;wJOXIUMz@E<&~^+Ttf]ʉPU糿,A7OeSUÍi&PfZjŻDG^Dw/~W8e:e!gv_%{A'~*VQ)+YݪԶ0ML2f+cj9b ?TW[yN\Xw Nݬ=h1rU!aI*{ZA5tTGI4,CDP")3f ք3naDH-1*k~@rܯQKm9ҋE#eQb5M C{ыP8'<rDLI#)"w>~@XJpeH` <9"w꺄v}*ܞ`\wZI=xnYO.-(bD V(bU_G :n?vh-쒙\N{F1;YkVJiTn'w%G$IN%XrKhU;tKFJFQC6;R4lkaZW7^iϑrx[SIVK.]߫P.C[ٖYJu|ynVH3Bu`&n] j@pS u^Kfma]PW|\}C T{~8hMP4IL4M{iNBTv ?; 7s;K jN&#~qzhwMڼBpv7vϝ_(slt{ GʴԶ  \ p?E,0R; DKqej|`:ъV]]p.WGy̱|y:v_%1;82VCCT!}Ÿa g&R!LBvrq:cT4XZsӾgq%=z̀c.%k/Wo|%{ɩ!:-sԞ`E$7χ]f@z,:E-( RϫhrmPY`- m3Tc֋/HW=b{yTʍ{8!F[`jtP9 =3F̝ۺRy>W_v|/1J:s8|+ ģ!e3^)/b#.!EU㧦Hk%6ߕV8ŭX pcWaP0bD9ՔU(A$4-oM>A~7х; h@sZFq/o+^qLaU#9grRzH9Ŧʖ3wx1&P1w?@Qƃq=փJݔS}:o?I*p@@v H7n~q#u8P&ʙ߸pj+9.5:`D S+M avɉJs2pf\ݖMrҢݩ\/{ '+ӂ"~5<%#@QW&NMTHEcU@=|\^s,\GWmn*+\1m"%(bBd,&T} Mڊ}^d},tЁMW-[{K_]qآZ,cAК-Lwa_7TJ Je3!L)HEv*\ 3U+q^4"A-H1!q!h3h=.*8yiO%n^:̏iKl^ռKX7PM熶E۝m…kĜ!# c0eP1*}>%W)}_e+ (#cAXfc9]~=Ɵ* _oY12U.3=+O)8+wY%/дk*,%~&.57_-m1f[[Qd2Vbg|Ҕ+8+EXqn`vQt_jS.; P#nFy)a(I/AS0 +~Ynz +Lu [:w覡}D28E=~{J2ӡ2~IlPJ0J/xzc2BR5HXH r*BE #~bX 5n HMz4 *T 2b1r|_. nGYnɱ6X,o&^h64AmA̽io&Ml@GGr+p!sgk]@tNS8y(Aoߙmӄ-v+l#/qtڳ4nƈAw~83~0+23~ X/H#e:m&]|vSg&EQT_eFNH37c}}97/N Mt޶CKi;#oBҘqO4A,/R3&gct6ןE;8b~1ͬ>kxku)) ؒ}($UD fryTКxJv UZMAay(6Ѧ /ȑWܤR0A/$(;MR]#4P=fWV+VuMF=YwDMH)&vJi~6 9eH<<5RZr2Lt3s{uc)xB鉧-Ff׶m?v(Aװ#  %*)a(#҉Z)']W]""@ ['Io$DٴmYD ̀\ 1Fj_AWAqE3jlGq,1lŏWq/cp# q)'Iink<HO,2I=7 M_Eh*.!|rEWU4[Amf)Ҋs;b0tśjcʇT7<aV )x5chhg7*);D1/<\lágtuJ$ǵ%R((^5{[GEOZ(oYsQ]91Po6H=\ByG-L+o @1#Cq0%Cڣ&41>H'̷NŞ35)Ԑ*Q@T3=Bܷ<ۨ!S$sC-w'E:YE}si"#:W'G8R>\1R:rK]ov$[yQĹMŕϰrm|3qNWƉ3?x<Fm"!c"zK@ij -I%vtMP&F=#rKɹuL `gd<3l`"tQ@@3Q܍ԳOޡѼ\G4] d'gƑ%di{{A2 [PthNXǐ@oA+P]N܁Z8>d'д+pJ^ӓW *]OWD'G6Y2R3W^;'=X3DJ w5&s3_ gS Vݑ-2 @>=7fi~9gE*rV:eTyt86Lvp*1| d7|x f=h$L%Y'K>c) &T&Dyl1|IE R +HUxr RG&dT.E=[7B Hi\wͺ> N2eH1וJ 5dU16zV9~+NmꇏdZkR3aHmmڇ|3Nhd67KkCYLg:J d7-B#45/b k9A@.qbœtY"e05~bO#z 2X'͐Ɯ)s[evIPS5;ctGQ#zji2*Fw<OfX\ohbA;MKks1E̤q |>l7@)yJR@9V>p%OŪmPz msI]\[_[[M4tf-:Xk~âm9 tЯhy\F0_klL?iQ;Sll.GzϨrRcS67T>F@9X_TH-߆8IiB&#.N f,b(^p0eQ h-ElYBTUo"gCXiuQ7(¾-k. l7{]TBb{eP{ )vmTs,"ϭ !S?fM *DHc~ oSUX_T)z-wWEQ JJɊlBp}N-P[GoCҪs}η=OF ƌnY*g1 /8k`SAIdTuiAAޢ:%Y`cWS"K< )Ip;'ye`FgX U#$ƭ۷RiBwL3D鐪Zj"xqƠtz&8=WLbmtv$Q>Lv6cs.DiZpohB5e׈ּ|QD'0+Z0"FUjݾ #0P}kr[2c X*T<0des҅3 BbSb'Ҳ8c@:*\m0ŦG"ҏ m'y?|ֹsЏw4,HKlkJ2ʼ_F zo*K"++薊 2{oCN՚YCFGT~TT6-YEE\Ď -zN@<f&|M%C6c~r6밆g"!>AؖhSibDZKj_HG 8Br]S|R]`c$M=;!tg::|㹽<+jkQ_m] *Trg**T®܅- y@̈́؎L}˙o|? [jfv e(S:ҳ7xpmu[cn>ҜJ| ݖ]w)gVJ-޴] d^1:ZA]ܴXV͸?˱-.k #WYu{[9wmm 6¾e>TNr$5jƘե#z_#Q_|%_l*`8Z75a`h(GA{3Tz "-k6a e06h[N'Pf#LHzBw/W4F$ RĴ/a+|S\ȽWk oe,|l |~ еLMlg6ፋiDLRAwGf|h*U`쌱?uzd{y1)1UO4d\ ߎ`]Գ \!5sxEi͑2('tcq)e4} jST4x_?䂔)oIJD2$&ČϔiTDB}Qbܜ؁hQm ;ʂ DAKoN Ur?w^d/TE6;pg!R%*,Y퐧KbG{'m %@s8R]Rs`t?VsڨIj_7n4tI$C > ȩa%l5)ĴP3lnzvlKHnZom"'wX*Ao*qPgaLS}z=F2SH0%<j.Gtz%z:Bb "Z2@v1"׫l OĎi B =" %i /3U)`AQi㸣(V0 opZk?pPo  ,yKsOppZjt^ݙjWmB#hrh菉}b5MY}coo,6 ^9dG{ 1AH!/)(!S7ӰoJ]˦y{q%\F ;Hy$2asA^G}wZJ{1$R }Q;C+i*} I,Z)Q "_o!vb.{Yg-vkIHbܗ[el`Y ~g?ןr%n콷r`BYx\ι;0d D[ d GH)b0=TK"3»qʎzV-onՖȄ 豌3rA{L5h %8^r\cVh;-A}Dq;%籵( ote6Sya;+ůe(4H*y~xuڥڲKihSs/ ^݌vJ%`.,~ 'K5vp| 6GϿCwsF V/HUѸ%aej.yts{] dvn)/[kA<+鷓U99`L@ONhs:3l%t{B9 0AY98 'Ǟ#L@zQT8NOϟղ4pUf R Uc:l 1I|Ijkmf@C #iy^67lDA@A=C:6b!7N!/\NcճE$j#Ԩ\? zǽU\ϰΉ $"iL_"¥GCRe ">ϜM)Vx~h9mnѧpQ=i&H Kb@ 6Tک:픳 4=ǍL2=LBpS~%7~N ÚqTwʊSOwp].^ Q0ZBO[:Áu{E@xHP0ȿNmR)8_4.yOg]" h}) 'B#txI xVBȝx^؇;55W5]VRYh+fCwѥ!#_[4hӝZ,;Ofa*S5xǨ_aFbc]؎ ؀4 x&Q[p F,&o~E = n؁*N"A!/Jq}fiaGZ)M:;X+5uѷ?-}4 _XN f0)L]DCe(Ǎ+[=/(\B#k5#:Iz(ln`q JdE,Gn]6#_fȌ}5_N]fp^I~ 6[4 Q: F4:m,tйgpF>t|q//$,+!Q\LuGuEΔ$]25MߕӒX4њH{,o@V wB]mrtMKHi)*jlOV"ZH/gV128*>Yqݞd2%a^a"C]y'O=| wpAcm;J(l<_|;ڵmN"X4W5"NnvTؠ]LposM /' 0(rV׏@1B6L{w: UeY%oqOϥzQ?}I{l,Q:Y!0G!uMtƝsghlvzg!|0Xh:ki=z g+W_3&buyk `chH'9Q,7]o~G|F`8K#Q/FS+^A(٤}>|y pQQe5;"wqƬWEX.D٥DEvb;L3;{ގ&'63IN(_.[ Gc$pɷ]pVXh9/ Ĉ$ ͙CUPĞ́,.y¿. OӋHQ :7;Y^Pe|hvQK!=$W5_5:2Fb8dɉₓtPqLt K_5CxN2/>bV=u]t'/~ 2[eޮ0q)/oA& 9ҋ(x\;n=ľPCg89VQR R @vzs>#l3nj_`X0(P -i/pK: ?qq ( :ƻNY@O{߆7\ԮN~D`w$=Mityڝ~в>ޫ\A鄲cUv teTaqA&YSwnNDMn>ZpA>)0NWvUv%q/\ Zzcl1:`T4Oժ6_Z5Cl8JsL>~+:ǽi<ƍ@֫L^^f3w[ 40cryHVv0U\'b&KK1;yoz4>Ƿp[ <^3Ig5CCROJƐa&UPRMdKxmSIX1uX BL_q"`<'])sWK-p*3qF(JГU21y8N㋄CNr~\zRVSJڗLtD&!3강qbp>*L~'Y,}n%OD%gb ۶ 0?_[O3nB]O8*qfs@^sqR(rȮh+]Qe&VHs:blb\}U&V\)8}J_,Vdc07vP>l]z!!.in1hP/S8} o>VUaܕ@A~ruG} >A36w٧f"QNj>}#Sq(l ¡w;0Y,%RL7Ysh=xDԗ<>9XX!:V̭08?`CdK4ꢇ9*3]ALlL`Ih帤wT)r`rB)ݳٓ)O6ʂ5%&9v{DŽӷg[hq'tx^%$kF))ڈ dz}fCVdW.°[Mh?ZӉS~L3WM7:û%8ؔ4.vn1:D) |e l #\9z`yCZVd Gj6C5Ze,AihLoT]Z2N_. y4FhȌ}~[͇̄4r38r}C9\l1Žw,RZW ^+.1Ɖl-⨲&g6s{snv&%EpR2'CJxx{>*0h7}ba S~+zu;nV_Y7 /o~ ^xth ܂uOtLI71k+{YUuӹ[f8 Eux^͝cِz(+܄H"_ F=MA.@_g[x].5oFeFg 6|- "P'܉kKy8樂z0bk~$@00Bсi ^ /^~ J~'2 :$,-#:UMlOFRXxShdZV誜膬NBhid_EhJƯvVz7rz;Xٟ/N}?Xg)u>t6$.D5kC_OCYͅ*|bf hW.C"[p&3u@xBZ!_΋\l(B*ȕ"I 5s&C֢z6`f-\Z)Cl0y1Q!v'Q*Nw{[*OY::M#w 5Pg;ѹ|,?7@`" Y)(͋].Z_ Ru:]w!ړ.РeNjpLY!HQўI-qS@ 6ihZEjc!zJ,sCDvJeD"_T1Bzq^:ڢe:kss:JeG"F˵;[lEPFwUA<4i6ldM$>ћ7o5'3kgK ?h=19}h:7P7N+Y'sSܞTbv]On_*͉ Q-1vr_/ {3 rIW''@HF=f8^XxY{oc+@NNEb}শ>zc5}wB3mIoՕpe;4 bgVU?ۢ]7gl*y$]_HU-̌'n6;%uKō,q=g„ 2d^wV-Լ`۾ [ 찇`툭0.wf#hkpo P}|v~L ҫ4 #DLFzwCg=GBwN*ą##Qp3#LV.{LFP&^c vE֨6ϹALQV}ƥ$ vEaq_׼^ J)6cD?f[L}5 sA'LW8 nq3}Ph:x}|BL<"ʸSӘ vQ+Y8#6H ;* A3t.XX% ᗽ*rd&Ư;[b%[3¸{&<_X̡!I[/8wBif1'/ "aiwBGH#e`, b'LAJGHFe(+3fT?$nX+u!Ne.=sZN^g1^tg*'.&-tѻx!F}]b6rɝ$Zp1̫ٜzSVź)M_~f"|23 wjrF{Qvfd)t(0`dǻ="4zjߢJ'%hGr2x.Й^Dmuqr(*[@u!G俔bȻ*jvs8K`3go)l)P$A0FZ/ZUAPY7X8:+d*$GQwG CZAgpa0y~߸mr1?_ Lsܤ׼9;F)~PF[T[`y.Ԅц"}[4)sK~=0ornXCլ=Pnqux%x._]>ဣ_cMCEdj( ,NPl\垉QJTUNa`[?bԦ =L (WGuNW㰀`B}O n.Yhqvޗ#[A`γԑ2ܰn@lOJB#uEL :j 6b6b4өO$WbHw[j3XxrƵN2(]QTuzZ}~Q$g71moDs5]Mk,۟W0wPݜVPB'`)^1s͓GNVh!WU3TTgV4W*GEdj0+5?QTPS,׿Cn0[s]<}OOo~S֥;G)r?.t)D1Onݫ4/'ӯyF (Lq}?G(0AT(Nma'ƔS؜ 3-#aZ(MLXh {e9;CjC]4hDdYr(v}xyNvAXI#}/rmU 75(0E ɑ%?:zS{)[FEN[8/ #L*B:<5E{QA"iHWMH:_[2{9(͎SXõR}pteEʌ2B94^48REU%|yYJ]C P+PY/`b/e\_YN1xG=;dhΨoM-O/\Vo O**8k~ʷqºc)Ƶfނr\3yUZjbu+ǯY4Ɣv ug?EkEۦOO^+{%@'zF?VQ@䓛hv@eV̄e+_Jb8ʄ)ӮF2_ۑ=EdZeUxhD9B)wa80$8]L k PeGOP}JԉBL/,`i: mϖDA|ԓtA>xA2U؞}hzlPGi~p-4=f90o0?9,XW } ]WI u- E 2%ڟJ÷ő_ɗ>B^̒5VQw/.5Қs_NxaXj\]z介zTK<}EIcDUgՉ%#93,j4! ̢M K{4*-e S@x>FQO|GzO` ,|;rIt^pwvw1,JpbI!EQa7WiL9 'ujg;gM|=gBJYD:^bAUᗐ4wQ 0cB}? M'XU) 3aEv͙z [vk*`f`?.'4ݞgҭ\t^8a+}BpV2G5IJxϺ"5gg+m֊ 74-`?A\4ﵨg3ՉaVZSK\r6F]Qa^vDOxDR|nNsR">r~K/M.H{>8^v}"PC7 ia(I/ V^Y z?ȉrM5ڨZovS5g8P݇MPOIW&Rf)փ6m怯]xօP(MW>մT__@  u㴣+mN 0`[^mqq}k.4'q묅byϱ}Jl0rid572J 7n KnNlTRo @̎G^d.ҿϻ$jV3):T4rBqs`7&Ȳ_n:04&h7Q4E̩Rt4^츈VoxˏXq1`lr#+Z[,u6yg:ôcٍ҈} uNv C[maq>JaشzYލVC1EځSi\ih cR}EPzlx8hhb*Npq֌!wu!r_=Vr7m+j[;i?y-!K+Й:˸4fhSƐ4lwh`ikIkyx;1pc]<ca}nP5@ږ\7A][2i m otXGg)1)WR/[xtgm^Cj GU< DW>KÔHu}۷}9UqG|]."<ʓbXxQwxZ,v99 ܠ!oMv\<5׋Ns- 棔`~Xz&ZsBa|yf&0n'￞^{%;%דPJrr Z!r9ZfޥBa'ʛ]| ަnrx | yYHY@Un n6t-[ClX*z@V{Em TȄ{ݲIZ^wۣa-ށO~L"k!nA\"=ZZflt-m hiܳ#9O[B-bɻUd#fV"N])ݺ˶ʁA\-h41J5E˜ړ0ag^<;!0_3u4Gp3amq9PurbSB[뒳~,>9E ) A[BiԊ淖>HX(2JC(ލ= |o&}7(q/<5*=͏Mz!h#H E$0Wļ>=Lcj5.jК`/6J& *$鉋R4g^ mZ33X}z [Hۀ2ؼP*v.o7 Mw6l5"ߕ%\ʠ  ;Z#ie | &Г}$ICJ i}O~yAO+yѽ>+l{cs_.)Rq1VƇfX"{Haߊ4ӳ #漏4vb#gYŞ'e^} YI2ͦAoNnBʒ7eJ>3)S4 }rى{4M$Ѡ`Zs^Zմv[c;+=7 *^,*f~0vLfh*uD*4WYy> G)nAvgR]u^Ziq./ůa:֚h{m<oi[?'$h,,z#3lnݡ8'=:vjv XFR{1.YLB?"JNDy=aF !Q0ؿgiЕf94(~|rԶyN"ZLj?gv6Ϭn^$+=E=Q,](rO.-s1ڐ į; R6 mx€3a^UQ^ʻȁn(zfTc9zyi& ACxrg%"PO>3 lk`f`,_hAv9kD&[F- b"RoU<'U!XLqjI%tȝd0"L2H'ؖ5%1(ŸW ; b{Mn q|k9GVPl3Kqx{8L7GlݺzktJ *H17q.VΗzZ O>)1x*3Mt#DY.*UJ|׉2[Sy+Y\7ȊkVce Q0˪ƀDqO%f(;7,? F q0eu=&~[)NS Uw-0^s[u hx,QR+b7Z5z$F+TbWͧ#.&Uwr[ z{7c /_w8*Iuv_1s9"wQ9 64kGN;Kp/auNoְTIR)LHʫ?nKţNλ8G2:? 7z;RiզdcSʅ5?a&zAc(/DggN7Qnq(X40If'<Ȫ*>}O1նh6MtUt0%-u [vciT sh- za*--y$I)iD8]s­:bȂ:!A|#+HlkoR`( @=XӎLu@6&Tx+P8&iY `<`2!"nT_8o|r>9 g "قr#~>uW4kY}$_YFlzIIu ʏugw;s>P[9&1&c,/FNi2p&m{"񆎾􉃗_ bZi<4CuU岍8Y4+%d(z/tKԎ 2BFEx&WiɊȕXU6_B`'*=lyBt},c!D8٤/hַ">x-eKj@arwEgx {uk~J],&,|\R i5 Ʈx,A߉F e`_=z=i !PаBOۥW:Y41\V7IGΤ]akKrT3B6T+ȇN{v@{AҊ"umH6^J繹LΜY|2\d&v FPQvGFٲT1YM.h6;, g ҢTh5EkO/>g"%%/bƻV 4Ӊ:b!;ϲ!X˅=jG1b6'/սC n&ӭ!~ձ06?4%6ä2y,Ʀϻ1Z[3)hgg~2"EaU;idXڡV|m$ `ދbLn`hnΪ!D'TJU=/З>9;&*Bqi4Iȵiv,Yٹ]p*E>%3̈́K+.gĊt<>-UsXLC p˯9A.Sбf'kĚhW"@<֖g8H6T;]9_ ·@VEI GƃGza jaR"='hu^ [%m8<$#J` ՅB649 0jP\y󢪌t={0όAN%:RZ}&\k^RS =9Ʃ;4g{Lb :ׄ;yd(6*Z^6O{ n"I2$=4Sk)a)ki[*$T`9Ay"vm9h.\Ha{?UtC9]oW#ٺh@ K]+VʞGNN)D!2Ag3M,%Ш}( =/K8.g_>}+A )BS)V#E&bF_76=Ρ2VMR's!{e `ٴJzztV== '~,%a zO Fj=+ -cEv8z*'M5@3' Rޞ*q_G{$| +1~'"{Mg^t.[ %5}j~gx,!FdVE\/\mCbp F*fGYm^Qfy`>3 mIWU@W7s<;S /u]y yώқŽ f{QTTJ_³G<+?_p\ X=Yö<ڱάRhw+ 2*TL>m ۘ H ^Gn1UU<060#fq2SA D$_9Mo']B.Eh6 TrnDA3xC$*fL-}S׵W5cQe-sO[e|38gЦ!ƫ*Y;ޞeW$BJ 2[Fy#BPƶ(.^y)q-E0cCr -u"E@q]cxxQj91 荇;l!k\%6$6c|M^T-*Rq:~YY78G<}7D@ŋ9YE;-j2pF%]&K=ǾNWq<8"y^i|$.99Ӳ#= -ņ,+=%>bԑc2/H>A붯l*dภSpD M. (TO1`I,[ffL"ݏ!-b9a";a.4Dă},d@V䲙eOiPڱ4yl}h] *G %LDfDU\>E;!?arƌW9ꛋQ8e9 6C=){1 u鋈r~غ  Ga-D%Q;]y%%\WJu&_<0G]8kZ.lul-\cgP *~-5x z<˨Gw}ZrH3ӼQ>+~e(حO֙f?Ru,ڋ&/$^)]lÖ~P+GNNߦڠ4k^Q=Os8dW!7B) GgBtXҎA:%(Sыؑ`w=X*-CeTfkBm1i)!.^[n]T:xFGg!ї;:֐C7p"|'VlrrԣM67VZir.1#GeWt/F}`#,2JeÏ'}43{)T1Y.ӣ2'WVޱl %QkKC J ^WC ˺Y9kr:<p^vxeHspU5zxe+ϷMֹ9lG~^zn: Vح֯İ/^]6ud75rFS'ëLlJw 3of~C 灛Y?|s'qe 2D<(ʼnMt+~oۃZuU?¬ s44lsBҷItqf,aɓ1*%ʈ yQ1~]bGas l Np3|&=0W`--: H&QhϛeJ%]O>b!UچoX4 .NŗHq&/Bh8Įкm4 }@A)4%fAlq' M[T@4>AN MhLV]=7$׾z`z`2-el7 w+Zb@5HrDj %e/Sc%`J8'(2ZR2X3v;eZduEvnpj| |ra:$ 4Nt9\b5EinM.ݖ%~n6ZHDWE Ƙ|wa\ ^$嫓: Fi[l|ޥuGиzuxr@hGF.@tW:Z.aM%oG1e}kϙnz#U`N ,#$RGiH$ŷe;LqUox|&hpϓ~Txj 5Nsl`K9[U&=RV%:Y lW|q/dJi'UR) y UT54L.YwH>~ o(1W~~g܋䆟\7 >}6-@",JwL/zMj :FEa]'&; A.D@x4W؛oMh UgP[P .r_ƾeV0'v^Keйqqy<@XZ;{`vKh[boUu̮٣$?j/8^fF +pd1R- iuv5k6h䵖3%zyV}dI&drlF`OQ;s+tlw'^ ʠgs 4N0cNNGEК  wD4L5$v9ÙX' ǘ_xωBi5o-OAERADtOκ[ly)L^pz+80xMzH9Liʹ.DDO3;Q ;2RȘ#jz2A1glOIl> . {,J6R"Փ.K!yq$aOGGbTK\СhtuŠ"n_S˪Kb`mMԤ Rm4>)=A#P&%33 q)Q{=|SAn" p IpgL˖hڦlF7UAWdWy(0IΖ)@{ZW~M&?Q(47S5 ¿*9[E1N^mneΐ۪FI-_tEN/![Hn^_x \rTf\ij{nӾ%3R5-eeCZ  Ʒ4]^=IAvYU[L< nrOR ^1:x2-l5DW4g%THQrX` o<( ɹ7s #Pͭޥ;ta& mU{1& ΥPtl af:uD!KÒ2/ 1lguBKYjA!Joa`eeꄾQZ$=W +u aHURwL\s{:q:77n7rK˧!ptWɻIj вD\2.´ukAFd=mB,֗ ~4fS8P(<s8y[<'֞a`h>Op7fA泹ݢCWVTDl`#i,D\:zvG%Y ?jh:  @xAIM ߱ض f'oh½20'SQ?(WMcAi88n '=b`p,L oVe~b 赲)>GiaЕxǶq&y"H\CY5ZvTcM6wvsnEn,w-5k)Hm ԾGU7#/#':Mc4w0έ;=&v ;Rw>ObI<vQajɶojf$)&#_@@_ a`Y8X6X('uRF\3"嚞y$ bE79 Bp bzQheA^`Qʝ%l$SQW0O"M4e)PC9_ᬱ0"qctTk) WdC'Bd6F=9a -`Z-mkl]I4ΤK'M7Z 8끵kqUa5aErgQj M0},-g[""0 ֗ B% 5IZMR G&" Mw#:ׂ3~SbK"9FGd"&٘K-Ջu5v uYLWF[y1H~X2PGU\K+R V>P_ATGFv{Nj|f6MDW{e u)&+()F1mSs.p æ.s3yQ -9F_[G ?@g؝)v֎o)OI=5ߤx y)DMqMCp䑁 QxC] q3Ճ%n u$K{x:kޤteăɬ<@э&KS!psrE` =Ox k_tCe%owSj ܆v3Mڿ u./"/k_g[js@FCmY_76\+`ABo 2%c]>wY<)h_ u|4^0jjZ=Q;<':HWIM5sORE p(iG=7+e!I9z%$f@ި~y>(a2 pl l@vBAk5ɕTK^Cp{,!`kfvcX&ؾCڧx/_V,;]F[* ӭ=#;p25)Ttn_CVy^c&vY.P\bʛQ۩ UQK 3ɁFocv 0z$2[X]M\KЛ)CM!r20uO^QJ vے8$heA64Mk 0 &>eguII5 bS=e+t!VKuw+ddZ7jv}WJT$J95s6zgT'3@genc5gXCEdUpœϏC xwx:ի {emș]XSx»r󻍲u q1"`Zs䒌RmVmuF;_u[k*. `ۛVMR*a6BB5KC<:2s8]) hϏ!3=Qٽ]z4\҃1\+cl&9-}gטއ?Xdq䗹bȯZ'ݼ̞D&"c{, O!}^S;9ŧTvF([\ё~@•k޳հYAHNdg]5 DѦ<ʀ&tEٕ7UfjčFv_Ni%uuul;vS tR%m69^c[}f]/h= #Vg|HBX({])mSfTbOҖBj0B6wK83Y556h-VRC-BbtaD1Ɇd,QᮖD&EQE|pR3jHqdDٰ?}Rmm[ǡ$ ,bS,hǻVov|7{!`AbX2Z."Q3I؏P)j:Sus}^X/>`3 IyCEkPKFEhtބUd(;x1cp=LR=,LD[֮x*`U3֯v瘓Y?0wztE[u $}皞Ү1D@#[ZnvGoLx#Mj.[ u!ڀ`Dbm%$@EZDLiY$kjR9(ۤey9.>uU?y3A\eŲYr:b\]Մ&U<oo&,( 兂nk;h0IП28Z2Bѐ^3<d|G ׀IK k|;)oS9d aok._j%g0 m 4M{ErX$ETaٿ*%MU8+7Cz [(hS0uepKmDF 2hi)ɱV됙Y9jRz,,Dem#M%43cG3:1ux |_ Gz.NlGt{O2[ͲdA07j[YɈTX z{j-(?ON| g$ l&@|"6>Tb>4M]G6tIcCV=XӦ&X׀cU~eDɄ;Pu5uKN A BR @*=-8[cj}'锢|X!.)hdcL<N\.Bt:.щW9 Hto qܺ];^$Zwg2+v" ê.o:9uK/^! RY&t#Oc#TlG=hʺh!c;BGrS⑗Z)@s&WDʬ h3`OUȲDuZZjnte&)@dyͫ4d]9GL1$p 哬ewV„*@ZVDʆՏ8/h`n_t0?gkqg/:@\&GQ͸_{٨k!cpQ `xr/WimDTz ԋ+M[?5XZ/:t/+MƠTNqF;a(XJh?Ӄk;$cvoq LI݊kjeP O;/K*RTlm5N]@ˌ/P颢th, F.ϐ .Lv:%A znkVM3̾GD XOe>۹ x")Z;o鰱ͤ "XǠZH*}ED)y7K>{Ά9A9yBX[e˯XHŚ7^~1H0|{@&'uZRZE[ V8f6?^9jgB F΅e2(6ΘhHݫ`/ E4e#_3@(+/B*¡]ֽqV,rÏK&?Z쒍)׳Jy~J[4 &Npf>K\6GD 䝀a`yEcn~ Aw%`dAd(O@SRCIf\}T1|Vӕ[Vk!D?8MxJ%DȮЩ jnk!;WoBU5r ?Eot!SJ8n +<\{֩ݙ~|0ce~OwyΐQ_; `# c}uӬ5INз}ڙB3Sa yā4!¹)P⣧3RAWL #U|1zebʌZ \?n>,&[e /G\S^`Q1 䅢?=}#?!OYa5%1bEu#8 澸ׅ5ړp[&p83Yx޸ @oۂ5r i,h " O3F>U$0 az _C&yG<}7_,Zv$I 3'_XLa: Q#8Mxeeډ6N/'9+kYhYq)pN[S~v#S@9NDl5ZxAGpN%CmP{ 2!)$ Jŕu0D0Tc2+ {2.Sn^r]f$[_o^*u á>^@bB3CX"@C!y9D>\LxB)0mmCdl<Є&ʣ金lV ~?J=;.di#}=(눵~ӂyL>>}j%1C!ClziJ!pD4*hsaĽ\O Lk"փ 뺝ntvCr}vD'wMJ7Ͷ(_)B{:55wj\CLĸ^DǧiL/7w7Wgj qC e4n͌e6Pze6Ye/@hKJ6s70ifsL'p ߐ8z zs̜h]?65ҧD|o&\w0HUE*x ?9LR3V%c^m}0-(/*biX8M2vݯ 퉛"O˴Z} 5ē^^\Q$v!BČR+H<ŹTrzL#N K0Z]H4h1%j34~0v>]sǞ+-0Y L;vhdGc > 0T-EH5|AZd.HӅCOk) (\vSzdװBZ St)>exw&Ucd^􋽔y@GEj*ԡnwXT쀍/yVk^BM0A?34NV2^`on+g{Wv(@Xw‰TJf}f8|MinŬEQ ?eƈ5ou=3 jqJ14dpQq9-  (^O'i>i۫2@Ią >Il?G699wJŏބnsW9 `*)'xXzymfO™XfヤmQ|ڈ۞"|6"c֘R,?U[ȪmZ-\]Hj%ߗECLUIiqs}%Z[u2{P{?[4V+O 14Uq~ ,LdƑ 88Đ~aS=ĉ@fm!)2D "Y l[bBhD)3I$7Қt9:ywteX f-PY~xt|d;/̭zX")lgt#hpKLdԻ+dRUXmrZ7 {\/G,sMrwU99-r1jhD o#(>z%y܉9xE499cyȚه-kbV@}̴ָ75OPnP6-8!׃E#DZ@;OQ\^E.US&d b0!6߃"HcN648N(kFό;eڿb={2Fz"SΈ)r2v[2NjB>/S_Y(k4}v/УF*olL:*v"hC?˴q(WS'̯Nje'x0BLN3yݧ)JҰߐ)4D!6"cE> 1%]⟧,Gv'{=Rqt,L9۳y5SǷey0WaD ]BűDS!şU nQJn$50$!*qT~oeC E"Σ9?'MEHD'lc&c E)τk”. ;y}ؘ;RDtv/1xmo>J,ፋY* tZn襣 %*la^Ca.,*lnS]DM# b+Q ;㷍…1:h6 -"?-mv'mC`b)mIzC1a-{AGG*H %m7o+u\&E ܛʛ-fՙi/^(M~3gF /%' 6h t ~'$ pSԷVyߛL<}IKXv oJҁWf7~ 'SҞín_{rCc$NH1ܳF20I-\ٶKٞ+cAX?鐍[o瞲™+Չ?%R~ipQR⬩š<.St}EûqlN=°yVO "hSJ7%7ޑ:i[ZK6uLʂ3Ipk7t( ssPŰڧaP?m5`ba xGFDi/G9. HD+`lkKqfH˴1WbHB?0kONmFJS f?}J̀iy!%0RmA%| ޻Ю(銖΂=j<* j˃$"3JR|+1-ޖ \uj-[ 30rCk u}SԁH-u8|xE[[V[,#Xٚ[;aawD /6X3Ti'=~^]J R/^X(Q>™JZ3A oJڛ,l7rl1{m,2RS瑴>埡 ͆q Wޭ 凰 Xj9EaRnDŽ>:J)nx^Ļrʌ,=A0΂ɸ!no&[iy?s@x AZD*^?4hDQƉ[o9ռ wKՐ{K @u;HBV2Y}.'d!*H>H `QfC3e{S @*w2Of0?>Evm $N2PɛSCчߠMjfih1Χ2LT )vtY52NVHA~^ʶuxTtgYj ~^"ous,\.]0)ĂV^q<OsS` |ۧs3i=Ք>:Kr%L.g:?}̯ ٯs}H#)@i=!4WVB62LC9kMe[,YTP͜SkV10D@Ve2 I j3(Q`Qvq#jr%gvۦ.X+r0>><$F^"Nv]s%D׫[!77}@N6֌px5]娨7Ɍ)E1Ĭ^rGB#A_e0%`bbP rHH+K|WLrqvXfr,U֗64 6Lv<&R,Z`1x쬺v*`}Y+z\sPVxB%5=irHNI/goAH:s,9]de"Ǩ1yL/̂#1yL<*?q _n'6Yq|+۫&*˞HC:З0RӅ~_ !&fG~*ۅT\Xۊc:K@>`YN+,(kEʷhOclKX'8lC&.DԴ' jjUc7nއ-޵z@ӝYHa-0/a$9}yU,;&[[~JpiV ]<>@qG#}|n1Pw2 APa7xf\Ư[@0bQ8`dY|Q~KĶC5UnGRZ#HhmDvd W3#e$۹]uFjIɒgSx.[xۣ 0dZc,X/U ބ1m ~4\de ڪ@&5x7l aPï _ч)? &NL 2z oZRcd}؄58_GݟTtV-ߵ! NRkuKgCt$6(GY`|cR y;mZ`L$G2!6K-ApHrۧO%iVfz쎡!X@Cڒt-l[xG^ Y^Hś;&ba*O(th%N`X2M4ݴ [wF@ʠ!03kakZ&C-?5tW{3XCè@o y~ +*[-3cXرBI(q7%3JH2(5C?zףnji͚ȏk~stblۭH2#5#ZhU "`Tlwdv[D3S &8)w%,AFqkr@eq6ϱRY2]]&%X2GqZ.6R x'35(){> (;{7dhkE !Ts\&W}>(7 7`_<KˬA 6 ?GLX]3$ =B=SfYkKQl!4|C)qX(/SNtAtC5EE WB GؠJ`d躦_F"T"j5m {VZ/m$m]q[ ,S691#U1{=A.{f`+Mpd!7@ ]o`I|MP-C[KfmM,_#WAiwKzY ?5AVs2]WM&'}@vѦ wCԗ=wP*,oWloa!$ûЩ&}s2(vn|E[<OAhO :~gEЗψmXӕl6P-|hLuIn'yŵu! ݞypMDC.gz9!Jz^rdW\uB> Evz\8-_6TI$q6Dl*j[]U}LA|! "n\a)=>d'f͡"bPV;zXv R]3nISh~_m6^pӈk)Tt٫Hڑ=jpa c2_o>bW_)x:Gbt3e>X>M{A7&2i ^ [ ;o3ߏq/A*531Uۅ\+TӿRLփXmǎ՝ly6"BU`n'Pk<|>:h/ixc9,w!8fgʪ yڛ~KSXZAFNߞ_Ǔ&QyLq S r-j XQT TSJ$|X*~oƁU\vvzñ XpRc^}b.A1:kBBW'XKPQ &><m8ژ/U=ؼ ]2Bb'QOq w#r]Szit]O3 i"; o.yv|T9%.H>O-΍ϖ5z>2 WUz=/͍rvH[ '欠 !& ]*P̟,f1d x{4hy@oK *=VhjmKYt2f2zK.4\ +P-,-~I^Zeo'j%\F {*hĆ@)Gl1:C0#NjP1@:iuVSEv\)@U5$Yn\` QYR*W?e;[j 0wJ3>bxHTo7 NYw٠a^ht [z AJ@s_G$W3"NPFOLPlɔ.Dd`ℍ -WYaZ)ʐDD߀4q#lO4,??ގDO9@1=%%Yv<', ~c;-HLNe9ZBߔ`{lmd`sXMp3/Q LN8#rNRjYE_Veda&t3> O:=ihyVys=.} /îXs@(){3@I ]Cd7 '0~2R&6sђsN«o9]ݎU1#"^@_Zlco!z: [$Oޑ/gBweNh^݃f}8]C)N#IA"J`c,Z)S?^Q(Mll2MҧPa.(T^F: CG5{<(x,1ڒRXՀl ;쀥g&.nTTBu5f=nIC=G.O :Lԇ'+1՜X霡Zǵʶt1)zsMVL,ضPirΗ:.r^;m,p$b}. % gylr{ fcDmjrerjD|AY WO:P  2٦ƃktuQpajGl;A8$Ғ{0c~'+C>@ :q1wfsLYbL1X_}w[zޏoDT.#V}@[s6d"8aյ6#;ڹاaNJ*Gl(Ky YQSf|J喋pATV]e?+=U l6mm]'j+ǧp>VU<2Jw0C8nG,+9X:&tujvRS6u?DBw]o=Dᄦ#qBer1!D!XhQ5{>K@S[ҦYc۞1\'%Y\+mfZIkS&Spͼ;hWथ/AA+xH$1GD]I.tftS@5h. |fD‚91 q>#2RZeZrwmN}!R"9%x+Q"?4~ƻT!z3<AU+EtHQdrvOY3Oު pl&^ +.4CSMLNJbzu K {^V:_{)ʜ`;GbBB U@cDl˝.oQ"b+Y=Nj@#_Dckݮ|`l&]42#LY >y6 >Z6#,Ҏ(6PP Z@l?W~o8 dT݅V9KCD|0CQd1P|C}*httpK ok,0.\O"A:sIYZja[&JBLk_#7NOʊB u&l .pd j7 F==fE0!H?nF YmA=XNvyC)p %_1)b.щqHH䊅31z_Ku|v bz܂l; pH3DN $ɔVZ_i)0Hwg:i VG'oƽڼkisv}79>i4K`! 42hu=v9V -8Ra=RZb3\utYvә`f a{)ixg%<1sJRY7`k=Hu݂,idٲAn1ǔd nPv `_w!YpH4P7< %W4~&vkK9#xUr N.5xiu-qڨrojsT' ln岉3fᘥH@1/Ok,MI/?e1W|qW'6R :I QN[LZg芼 xgܗȉ^ɩ9]D`|DXDײvΏKD5Ъ^ܬ.v1(Ĥw̕CU>Ec!w<̄=JlW 6"vCM 5wnUyxT~qׂUݦP!=ጹ[Üc&QWIS*hmB{WS@L楶 Lj&Dm' 13$Y!Ș:b xeH?8+yCü |wR˪Q󱯩ȳEhjcy7۷Xkb֧3E$'aC`]AȗU"m۝]"%Y`@ ~gmРLb+o,#(}IQ[wk&25K_W:-?SZD]5ŧxpdM/q'jN81 GlJrF&*X jlwLə5/~^*ptU#GW*̔UWu +ݍR |$|(`*Yjb~ l׿!"2'åL۬c|g1Ԕӆ~l`"\%D% ?%bK}9=Y|J'eɤrNtEA~}Uڒ5Q-^l,E+x{!K$=e즜hFŧR*a\f7T:"ؽg v;ܜ7_R HfbUD}y#\xT"d|U |~n S~/Vj`I](*FFY->EgH^%/ҕa:9nryn#kO]"8qsz BY7y9g+O;+u*M\$~x-P-?Zzťˆb-qa5G;k6>%,lZ@hsy./0Rb`"k):6gA)̐2^;Uv0@qzZ"_;94@O I X9@B@`La٥l? / 0@yF bL>Z^#'cjҙWFo IjOhUUa+;G;SZp/]+Caj\JMB aN\̽ֈaOO[@",XBmë\M~?roDqs%.otuG[e}sj6dUnmc MF=C,0})؇wv uDʳu lT\%6[Z0Q pb$O8x`13aV!ø& &56k/hSq\PejifbYeJp k}Bq5 )2j: +Äs"-0:aF.'p~2dWo>{ O$R1X8x6hZ]dCׁȶT7KՕ.px׿u䑃Ŗᛨ<2nӥJE4x銳Nq  ;9u}<#&N|کۡi C_R9^5슐d8?+#:5oz=eZSPVkJ`3KMq>.k,5 hщ uT~%#.Bh+,qm<;U+8dݦ%7Qį~dZdDJ佉 fr$9;W+FS onBLawNuz@%,ٴF TYZϱلQ(:} JՆnV&~؆5isL_SOF1p ,Q#2ûv .iÇ8Q'ˋtN] GFߚUX4VCA0g :8 _j#tM&*M$sx EJj _m՘a\ &9\<`nV e#k-^Hܝh>$6 "nA :|r[q$DyYjW$D)442V.0?a#Լmw&A~fv]SCZpDᝳcs2|;:Y:@_AW7+4zn/O%r]T7\v,]#6_b7#9_1Jq*e!b÷{*h)6Si.HkM{ɿʢAÒ[vh,6`2CkF HQ_[V:dtmֳZcM* De+8)}CXFkMz?"hM}7x؞1DT1Yd Yg8F쌴d5;d[z.D!&܈"6>?)pxܮǏ6Gcd$tx0TrwW_].@G?!ošCz^-<1aFIc@eHJwSj0?F@yJ#_Xg dtOaX/O(Fo4pkz.9 X]F>Ը%Kdaݥ"P=Hį!8kI\zBMfyG0~H?jR,kw3Q[FK\wobOՒ;C{)6+}d2Ҡx_k{d}n5 2#]&/FHUcI ŢER#rceJaS{^@jbA,| ^lөH-pz\ gF1|qq}^5;hRh>kFFT#O{v?;lJW<|_120G-F©vuD.]uCCdRD+|LgyQ1r$H AP:Paw8JU=*?i@Lv|fZ匇k}B#8`OaMxv~| ܃6(+*p>|\:TRR;!KC~md㇝rd<%a2M"/KUE6pYtjO3=YEָq-8g׉Wat%feOZ̒3, 5R͸83㩲%>/^NBE&9LA9Q!X<%~Uf? .>FUǣzwt`V; tI̊ePeh(q>]pj/@Iq<~3T ovX[{$1 9w c̈́̎"|Qn _.]Uރ..O_ZDCZ7ΞeuOٱ bZ#K@꼄G՗- E$uv'HRZ6w\Au~;rʁ D ZhʤsMLfB'O ArsjގjD$=d.[_nj 0ѝ1lֶfQ9yA"-l=QOl"&S&)YY?Cӯ[ /iV4ԫMK2SjZ&[;_q|-k ˜ b_JI-_D{I[᝖- pn l^7]=ןtr̰n0CSΫY| v/v ^nB|WC3"7ְٗ{-'i&ZXj;u䍌 *N5˅>ך-)cpW'R&N$X:)nݫ) G+GN@F RoT}G~*}bb8+QLƃ|sKMgGREa6o:xL>GޖӴaV$>>, &}}woHgKN_)9M&_')UG3mWp~*wDېͺY/i@ -Jׄd*֢ɊIiJ,`ux#,ZZU!f{N4N̸K뉫ߜao*" (u@_y6gv6$b7ysޑiF+J%VQS& S/ =Emy>jx3C{7tނ>t2q_ԛ Mr `- 2| (S)IWҳڹM*=;-Bg$lh,e4ooY9M(c[B.גּ,̥ Wk;ޫƗdV|GU)U=`|͍[",C?= U#M6nXto;]$Kjf$_ ʿyq%0RDgT*azh{>PZ̀Ec]_N3F@DQP7hY2m'~ٴvl629ft{kL@*lupҾ-1F`؁lD$B5uk'e-Ǐ[92%kMk6O<}ց]Ցê&F =fQLtrM^YB =Ȩ&X zJ*\p)QQ"ٹ]WunP m5/Z,TE Լ}9Q̫ٸl &]Q[w̸z%B (5#WˆE k̆U%F" ,YST\}w:nKFlP! W[|QJ5o\VofB;t<^;q-ß6aS"ߚjSD1k:2B4C1g]"zmk_tW۟L 8 5@;I5! Z?R jqEWT~C\+k>rQ%#o;M>frc~7f' BΛ:/}=&LMn;g&^؀ku2@Iˇ28 >}ņC;+韭,lZY(ˌ1%O7AO \_D<˲Ն76z4s˜S&$CBRw%l)GL4qCd} InuP1$Tb4>e+ (8H"vJJ\Xq.M ~/E ozrTtRguݨ-Ћ'Q+]BEza:W"xu`SlQ ϑ(ON({(E/E)%SQ)lD<NPdo~cz{裤v_`ٳp6dMKeCU{(jH]er]& mdFQ:{`:, ր\EB#Єb6z嘝 I"A!B|F| Əu;jM6mL۪^ S$/״l ̶=~#:av]F#ώ>P -&p"wbH*Lf&hFmAᒊP25'9*DNeXokAkg|π+ 3zuO$H_ g9XdT!ЂIpϸtˉ^ۢEĀ(G$Fj3"X_Uȋ*=zu[ p&bzze-@b -X!*NcF-xJSRD"'R(a0l4Fۨg 8+e9zh9,r7+ī){U.B _.vw~*)wu]* Dj^qIT;Pcێh&,"-/iI^<L1i-7imݭ,FgDT̹ "tGop&_GB}h2C.$Ჾ#9z^Kw9 bfjbvVwG4, \|TC'/N%d6#9^ #]>]lcVgmtT'W9U =>yGKmjVmHpHԒ`/͢z%Tڍ!-UJX( '䌕WTԽ$Zu_%d6ǺgZ5 @,2$/~N0}"ICN ׬}8`&DŢJT^Kϧ7k n _}n(}h;z4@Ggf}HR.[bS,z.jeIzJQOQZiqڿ @:1<-:Bپ韵 Њ,?wy~")uؒ8L|;/]Jm[Y a'Ɏd gfi`2-GCe$ǿdvh1G@ (EdG6e;C&Pڎ^}<_‡0_  %)9q`0[\H8?Ġyoh#Sމ(u*ߢeÂGj Gb u ,^ /tkD\; [-YŊ,YޙMDeb5' "J$Cr~t8#ZYQޗ3M"wZ[oX7G;32޼V'0J7RѢ Mos^RגC%70c:i v9NI<jgtx݇H=7V7VB;s´ih\#&yޮ m cB[jdS) Z3ҊLE5PcQ ak9+1\>a bR s8ibV\F*$YCsJx)uA`o});׸sm;T}bPvS71Fϟ]v<ijÿ.HBbC[`c‰ǽ`Q6 {nà\9!>?tF[n?g_J?aXY?!m˄NN.Xwjg:8YOf}OM#fE5U' WňnbE%-vnR|/G~YWWAqye0LJNV4pE@zk/Y` ÷=@-$_Dco<ؙt]I֠ eꢘ]ZxɠTm`R,Fb>],s[??8>([X'f%´<Hgq&3jQmP3vJg%lAY"ޞ%l@MO:nql1(5OjyĪ6n-4~JQ-;LVJU) |Wt$ҙyuEQGK]JҌ|Ә <+|joMJdZ k=DH`P-ixߧ7X˷KI0 !4X9]idA? EJ7a K'#-WO/uaa.AHUȎ5r[~:#CU~=+]tVMv) vɓclݖDWFgaR/[>Ys쨅ʡ%;A|nbgRH#w[w9X,|Ă$ *ַmϣ3U|d<=-ũ.IdUMo$&%3h/ 2ϝ_D#":-fy usMpq5ӥ z6v![.W~ :\kł7>dƑ ; ;Gzu udTZcE+LV,ѱv7Xɔym6!@RlN4,(N֔[*ׇsөsW/sY2mʖ},wvi(StO`6IG\.(oAIa{gtXl2f4&oE#ZrSmo@\OrTYfrA/>G>OYKAM?yl1ڮ ;9]\_Efv?@ }qY0Y=Yp臜QE!$s u>Lkd!Xch5s/2*qn &@ IoP$y Y:1ߔ\za7-,ɖ \Tz w&)_=u>C%mKJ?(ՁGoX;qxuG#o~*~? LHZ+k_s|BRt**5>燻^#w(7R7cϺ(518#nCJchҏنDA},8*+gwȜ6xH9#عRnOΧlQA"KU-c;*aY=5?h@laݜ" Gɹ6. !z3|TS(8/ 鞸e_EHV$k+]w-s(K椶?I,NSlSɵp61LxxqK."$ ӐQ~ZL90u &̜@[#cވEBOTP>G5pȢcj$I~26aEf8f,ܦePNzyL'PlR& :Su+k|+oX<ib<cRQ9n&&Ƚ.oͼ*pV@jrH!GfqP5Jdi368maGA>LN,-S.#6ԋ"ner zΟ;-cn8cZItjsta/_,,=Q!^|,9%09g^}2Z_qMFz/0~BMyLrCgܺk%!{dA De_z+_KC<~ @>X!I:*JHQ\nhUOfV!n˩E[ jfI:x?!i03</A iU#~-;Nu3{rrӟ63L.Cæ RLG.Y'Np7! +`v:j91ыGاv;;u.˅`9q ^s]T/\G<|#FCZ>Ҳ0W*'bU dJ0AX$z9 [PE 2nI.edt~@CM+ ^gB ņE]mdڟԟW<3W~( ,ӏ$-b6a,g Hҩ9p ͯsA W+dܢ_3"؜!0soPP3Lɪę3Vj 7 j #5y7sݙ|%V4l*phՕP#]p>gVYK\ZViitAM>̪FNKDDՑ/Dȝ'J.lt=XyȷA:;XnNNI/@F)#T"<{m\8K/HI ѐ{ȷ&*e+Il:Ɂs NjↈGHv~֣;9K<8A#; җJK^#bj2az%dN9]wh/S)S4$18CW4L &% T7r=^[]X/7DV 2:mۘT˰P4( վ~5>N?D~"OLW>Њǝj݉cUmBP#'N ~l:.0ܗ=a hJx40UT-CN'X*S[Dd2_I衰$F>{IK3;|,m4^!~= ɯyѲh"#a#HRon0BN7'2!#s=t{ȁ^F ųN`WЉ@^Zݏ&zAJd}NfȜw,g,),=ˁ~@qRt95YO,es秿s7l!j=Sf+JX°o8ꤩ#>#X:y?u '@vGs"kTkX| RG6&EB@~KGECqQU$⛷Cc_RQ_DPE os$qibG=7$ Rp^KplE12Qu 켸<~2bPosnJ =* P/6+e }:*VTpLtwNM!Ev h]Km"#zr^ 'H# bge5YFL"S Y9JT`FXZQ9Nׯ(hhw#?OGi>b.dy_/&{֤g{۹I kŜ&P M9i#@AscckȢ|d.8ܠ>yqVZ@ґ]Q%듧1 VL`&µx5tdVڭkl#Dj'Zh)\BĊ?PoNy ncnHX^XgC9ڮvЩ(q_%llڬzNLFéD( \YZ؎]Qjh\dUH0aEJTI{}]ka PYLEn`J[E6&чzjpcdBҫC_ϓ$̩")m$1 q3}<(Q4Z;0{:dXR5S.t|xqܛWsGziM!H ޶uL$}Cֹ`@p&puD{7=XWZXн*``Mz'FusoQ{,s% Q37 J0ЯٵV~yIUQq5-F!1*zx-&R!+2z6L 8pZ.킖{ϐWQDohIucVwAɨN "^^ōUH#F0m^2Џ? (vm J ~]I@6n) [ZrkAOSSD36Тծ*FoŢe_JxPa'YXUhr4=dpn򨓩J=3e­Gؔ~^ y~?zȦC4 u9|]oNp$_$}`RLFq߬tXFIE8C0.9uҹT_+Y"otB &#Xݐ&\` F>śTus 5ET$.4_}e1m̩(ٲD -2HoO4+1ueH˿E#}s,9pBs =$_a G$-,2WO^՝# l=_8yhBpia9."f"O i׻3 KhBY"} W_N_enhuՄŇHyt\h~I/F 94%? 0oK9a"$q[E.!qbNw.ԟc;  ^G?0}]iʘ-Mm܋![޻C{ nqؽ'Kxhxl78'km6FإսhwߺL7+Q-y'}pD-dO9Ek, [2,i~a}.Eike~al!awhJj0λ'/K31,Χ{Oݐ.Ga[MM7qm!\}0GtIl0Vԏ|9VY{ yExYTWdži͸wEɖZ5>c1.wpߚ|GiVbD7@Gǔ" ͍u.ג%?ȹ 38ҪXyyqX}F7ekN},9HYTOգ B"xg.5m+]-=@90&7C>`]Јh037 =udzܫ ?u6V ?镳!mn7vDd c/KU:3=|U \LIoZP 3ٹ[ǖlu]:QDFC?hB]+@ bН"Z3hILkvrJ%1 EOifb1#-P(&+m'sз.'#i(tQ Y⳸זĹ-Ph.@TtF;woZ@ i9ɬ?h`BWL3Ԃ!,_ ?@>вӓ aGS%+/c6N|AC 9|;yulVZC +p`)[ʂn0i 1ې5' =s&ѾEMNzWYµxaaTt %zst)M>y-.0ʾb@.ƍl#U TKKDTZ r .{gCc|Te~/pG+ ԣsٺj)6E翜 ] ,UY1U5rz 8. pǷ1Y=lW2X]ȣb ѯ5~5{f2R %\1xpQ7m>=>% etCnPNLEc&mHrD)gR[Ž Z}bv45fԈwSOW4oTI?P&-ڏlY@+RSa,{On*8Ƃm?V!lҸ+@^gc] DvkTy~q\[:+:-_evs'́+ld selQ<*>A6[WtmO^{`7f6&օ⎟i ԏ '׺k| v-y3X崼۷IoOj ( ܭn1MU[)`Kn01ʛc" 3v}c*qmFM COtS2sʩ4(Pvu%.<~ Ԉqݴ!e۞=UwA`ʯְtG07Ly􃥌dUXL/2 ҕRUm64YF;|*0&;HD#0_Nۣ|Exiz `g$# ebO$r}jթZ4; ˫i5-!M&/|ekSD8aii$aC,V>@&pv< ,Qa|Du7v{w7ڃ`.=00a7x z(C uz'ojay /⛪:.}?VᏻH:p-Iݹ-A5'#fva`W] P/}bVNU F zmF=Ax:=V (Q68cW3#tɊuL)*A7*+Gq5f-&eLK˓;.Y |ϧb0}\j/6/ZB3!2 : ^qE\Ⱥ +l [Pc@UD%STNuz1GidԐ2o΂;Q ur?[ˋik^o1.  a yxG~}v@}LVوuő6f6XV[#^! wI9sy\f31"ȹ1[Cc({^X]xj"Eb`>N~vՎx.q^qY:6I(o.|RCr\dw,n CWċk~O<*QoAvxRr_m؟Z?cb[?OfҹDD!&9_YedJÆOb(q8ɗsx<|/4IJ19^9{F-7?FM՞h')f"[8D|I߄N懞b <񔙦3Z Փ.7~-wk;{h  ;Lٴ:V}DO1a4S{+9B=o#_/4KلZv(r3tGFGZdI&5$1Us%fSD2Ҏ;`DEdo'_D8DUQ'x_~`ELND1&5^CrIR.k!2մjkKQH$L⊒588H 4X' *bA<\([t MؖwfŭN.6Q4rAlxchJY [Wsq%_p}DG>lמd 70*\'>_l(& p3<[u+&خn׳a.9^?2~A']y48 {o%ڬ ,)(w+2GUATJʎ8*'.3T \oo+EhV# fѹvdXykLD-1Ʀ}H`!3(3@&_vݡIw7 s21ao{'h!eYu$ 4y'9kF6X L~0p>з/F}q4?X8/Xe:=-?:]$LgQ7W(#k|teګ؇ 9Wp80mN>ƉtwyCmFyǤۍ:^B;H/ɣۂ?Qa9AeTbpm8߮k1fɏ1kTqKNwڝ$ NX1S8?1ap oyzܘ?,R`eRȻlƫfތ:Ci ]7Aw?qg߉S.rTX^d\e- \-C]}S?]Zn S 0 ǭC)O6Qu!moe4[d}xۆ@#5hieK<WW5̑r;GkIO@^3gU,, gh3|wAh IK4F6HB`6f0Ҧڸ}H4Mi񊜡(Jfu"}J4A/+8*EpWXRKYu }9aPuz+;fxs0]qФջ8 e.]ňF*~$5xP>c ;ilZŜs&Ɔ79ՔQRn򲧆270b܁|* ,+JnzƟZEu!)D]Z1? };Һ<J(Eq*UHZ; _aFdu jt?Ad\`*9"B`1T!@!_5? 4rOmV"= V;/K/}fѲJcW_ob/ކl, e%˰+e6ɩFoB;+?o0} 839t ]65d&~: LW!N>Ivt*V -3.oSV?g FaL1q2gbݜ +L{We#Ԍ|w@j6b2\Zi+q#k0'xX+Ԯ\AnO\7&*Vh]==ˆ=DƓJel^U˗zJB쒻ĻB{KkP F3\*}3d436|qvt,1w3q1jo}fhM)[TQ@J>vhp҃+l})N5.F_8HG"&_6KXlLL#)iM. \'>iqaTM܍.fqfDf܈)`FAnSWYӁ8P V'S"ѧʒ,A; RcH;hv-XNy"Xy v qw@x'5% Ub+x2evZ,y!ǖŹGy4`K:;ReFii7k/vWLRWsTpQA$FrرeЯ( /lWiŶ )lRo9wC\)4ٙzd~)[l+vs!G=(V07b}!5e (傾ׯѓnTBap| iO/AZƼJ15쬀. rB[su܊uj4R7UWmJ 6!]?l"B׵!ѿY 7,P\j?=bR{ӼYj$:^ BQ^Lj]@Z«c0?L觺;-k?aw3c34ZCG.Ǥ) iRJ,m$VƣuՎXa~ʍC Z1v Fّ%fǐK D7-qTlQm؝~'X:cEv+B׊rCcz]],בz 0 Ec^]f*e&diFC\afHB8zL%3{ hEH{;gJ#=bpmAFh!wXHGVDt,=*Nz9ؓ_n ҵjѬsZ'|6:A-qnAFG 3vSIUȹqAbxrT]r]܌9w.`z k1Prm>V n60W6[ؘlQ_tP*7yhש2&LJ~H-a%D N1"K!}a-v\s:Ng%.) ^Q<7Zb-9!vanqrtLf^&LG!̜H[֡ w(qnTtP}n_hJmi ċfo9z&FnrP*s aqg8 w Nz!;엇dG!9LYw7p%,#xWLhz+vIO?juSE+T.WpωjN|LɌd]dgzeD^sT/-息0~ʷʻÓ4 b]!d[{m$xb 㦮+'5e6SHQݦy( Pr6ocDGV1WEy"a=Ŧqܗ,'D.9ɴ~>hNZH$KITUcg~s$% 䫳~)L[dL'%&9y2c&J;z5.q&wᪧoT70.r8RˆT!)ѕs\8ZNW57G2SPIe}Y3zWv26O<=-i_';րtB|xZ!V s۽: #uCd*ONͤ%X_ֺڎJDbO&`Qn5o4snCP8v)Ji@|?o%ⰱcLxSK?T^xڊA-Ɓ: E$:6\<uQʅ @YQ[vmLyB">wvȦX{TLuH5 OյW2$8 FR f5e_{>E(Lʠte}'UCG͇RfC?a*V*.0<]`FRKԗAí  K/nk7gK%4c< I4tŏ-y7FFl|)z¦z0sW$Cu`; zqdv hu ΕjS=3JRuQJk}c` ẍv?R|KIk%B̘~c(2,WW}_JJYKG~[od>h%C"m3C+R(| d/B%IąjXj""g[U(`=u\CdҊ;Lq)nNZOl8P Ֆ `sF-1c PadX3tIșI ѫ_Mn^sUBQVEdGEh[u)Npbej=M=uk:1:L6 i͜!pL Ah¡:y.10 2dw ɞiD#;:Pn̸'w e,o*añYr6Ύ^Z+r Xoo5Ʋ&CU,>fCַ>6Uho]c#L;+{MyFm .$GIg6?S-9='.:sschc8i^e6l.`GPy..e8v/6ƷBt'=!kZR}wZWʉ+P]RDNBzqr 5*7[TTUv'~ /vQoh>;ZT뻎ٹW(<rte$w(~AO SQBW /p9qFI[aR5 83b zdwQ`9VLR\Фwh;HžUs+x]{4I1$VW(qxX6Mlڎ?o-EGJCdq2OKCQd|k'9|T\5 WHhq2Pޯ_ O  If3sPۋ_h%SOp8hu֘gbU?hѵ<)zl%’<ﱋԂԧ1Pa!0H-"ᝀ^jcW(d#pM K_uH`Qum:TveA5nSdUѬeGfWՆѡIM6ԯI7qOSBRhA.88fT"E?$Pu$y-<faԶ&k={!eW[(p1$ ' П2;Efȑ}Ub6 WGFq ob>k[zĨ\L?Lw#ILn_uf}3$ODۧSZ<fU}}u(_ DCr:7 s"\B Mspl<"Kp 0}´YMYu3>1:ww;JA^y~rblB.ljKxbM[ RWHi9+;S1='IJy/g^Xw8^\'E;Fat(%nPCJгN Q}ӄ?[.>A];WY|X 8=.B$cx,K}fݛzb[;)UPţV'LKrs̓N\Z?9&ujw[{D `*́NO58w]ہB*[ix6g)|9,ÖyY9aV(oY.<6*wAsVE6N KY?O83 ,z,#Vf‚Y "Sh(Gg!PpXhIl8iV2-~54`C ߁{|Fq6F'GVmDS4MQXiU-RŢ`ЄJ/*-On-ÀY{!+_/P?4[ '5fS(x Fc˘fCo};AQX^HYɒ*@RE*_J}~"0#Ƥ+*8>|2-% 2H+'́R8M%ՊL& |nK*8> (y?ěO.^DkJh:ېPtjj=On"@rxՌʼn7ŕ&6['wrĶV4_Ǿz6V]>^08Gvr^wHtH߿8X(\ >9 "+)P/ٛ%_#D8 '41!1Ɲ8UeD,6@öKH'6k]2-{Z]$!3 kvޟZꡪקS|X?CF-RKwH;԰\ъ)Tq?v«zmY9''p>&T_8. xkB ktJRl;$c)a &G~1<{\34|ߔ!;W]KHt9A)AW`3v㽲:MOhbhThKvJ*,i2`f  lVw_P.<hU7\n=LNren`E1gMDg@cF~Ǿt(b |ffB= dFV=tVլvc3Q~~o,X$׋{?LLj=e}Y)`Z2]CrHkhW-sL~8#,N>*"v;N>}^:إyC=/`O|RUA@%u\)4܃SS9mڇPV띑Vs~vMSo6DVU4E(a= R\Θ:!Z2ۥ U("2FI\id&Z%MѨؓd&y? yҒii#ԋ[e_%$r^PŦ$Nj)e,leRCU8߾IϛG PH ԟz`D`),AzK%&IwĪR{׸>ͯ?:.LRfD&hJ#t]ׄO<}17끕Q%jy(`oQC6 h>働[Jkg&n}rzq܄.:\̽{d7WpxHYnU[ o'3F!Uӈq`pDvۻ˳xoG(e[:-ңO /mەFoy B42!u 8gGAMqO`Ypu]O;ePCAX!ISn}nw)'šHD3%2$BNT0Q0M(y׈z9[O`LNV+$$5%R1 J'v '7C]JʷNy+0~ްiu5eBdS_F`}_o[>f6\7O(|p9M,5aԤQLSde*e'e S V|=Vn\|qsVniuss6;߈Z1sw_}>g2h>1g[ ǣ<1GfJUgQʼPkJh{z#@ub7v(D-Oc 1#zW]_GѬDM~2gd ޿Gjp.+6poo ^ux|)=ǵ2!& bR˚\/wFw蔸o;.´ar^_8҈Yya J$@: wgH ַ>Vbyd!ל#aCnSzM.D!i؃U[ yX\(trv3< Iј/b.K:o0OȟlsjӇjXo#O_E[̈oDCcUՈ)3|D$Π;4YF&Tʮ-Ύk# ]5ʒl5yU ) IYsݽ0+9p|wd |W G&=d<ǎ&-g+Dm+P``@jR*A ^NWk(*j|Ď(d"jy}m4qT+y_P2NA:_ 6]?`3ZZS/g r+{lS ;?+O,'^52P(o_M\+tܮg@MUV:hh5ew%FنIՌr'pe顶K08hq AvvQdr/iFU<ė 9~Yzª0MGw2/{r S]e˰Jci@@=oѴ.Sɠ4°VRYO=kFrqX+$1ڬ#CȖrG P }#qp"o0#IN4A43X-,K\sdQ[fq!KFYo=s<ɗÝR8̷X`+"w(A^y* @uQae/ID_tLbGQ/sir&g#j5#ڱX? 1wE 4)yg1l -P0Ywk +oֹRŬ?.x5˾״-Ƶt$pXTZ(j~f0Е\5ON C9oP Qsut99ǫWhߊo Ck _Xhib)]Z -rܡ ԋ kW.S2T^ea_h+4hu'}+ Ol ė\эPAp+@#ܥ'yWS&W֘6Ja9S;u]CzΊ$\ BFZ.!UoOw)QȦ~y*h":NU@%D8%DK8<׸ +VOOVy7 <R,l,π8I~r֮:z@;dyyB]Ũ{Tٱnh`^})o7aOEaAۂ(%@z%!An?E*LaMe!oL*ܞʬ-#P1GpfzvֶL1[$u<D<@|èKߩqdIC&[s;$e<ֿ c뛵4 MH\2;v^g{Q!L"MXQ o9%;FGv*[vԢAWR>fR,SCb6s*^-Teni]I NN~M/J9|AC@@k cbLyUZLJvx" OP.Ҷ#HWuxZ n]mM5Ae1koC#F & f>d`Ѐۏ4`~z%$}xt#hwbА-^Z4 nA3p^G>)“qK@59tyI0i<_iQazBJ 9(4챔"6>DU=`J D5`\O@㧻.Aj:7iIA`f Ƥ?'Ǘ%}nm`N15yMe>%m(kʔmNI%f\aFMb(;AY(9BBsoaDٵA&I L=ظד8$ZH`e٠֌dcPֿE-I0W +(][Ȏ6-z!qRY9a܆@5s@^[9UQT8$9 3$9ބk?ql UwTm"B5RO;y0#ae2"&}z\IF]X}];A׳gA³N$i"f |y]kۨ3->au>˭kx'*1C- l#ַ4sα!1itl{}o!hոV_9umL97}CѴ^B!4\寸W(>B(-]An|z${݌Ƿp,%GRoԔaXSgjcK >_dP+NkY/\svZk #i)K􉀟dH3厭tpuF!G21.rwI!~֬$CE9E`6?mSkҟHRH3.t[gb?s<~iz$ZҚQLXh_PbP=mHtnVOvYڒ6EDk̨ vӒnRZě ]ުh > -.ª>!G6IC%[6'>xstT˲ ȩNޑnƒ;O R"=r.9 ٟM0sqڲ-$њ~1}5qu7D^=\,;nry1)O4(ЏsǝNCPVv!P70Os28>Q uղՉ!+vd \ .(ǹIvBt,]H,0 XQ)1aS/&~ f?E})o:G>Sa-ayg&FQ층Jhbr%%6n.;ءAvdVj" 4Qomc5=/P*cBj\( jLH8f\4I tCz ҉;&`JiJeǵ RL^ʂX,q,+)M\TcP,Yɤ&W&qQMa*Ty'yީau&E^_xMk#e^Cg.<]D2)U|CR'Ӄc!='iho,ȝLF~]rf7W]ۘb@ +`*QYGm/}atŹOBK"w {c0"/&}Z~DrlT.Fx1%x&Ҷ#C|{YvۿE6"!=B]3rt5Q0NM@5?dDn5/KPJ5+ĐD'dvJY9trAHJiGi1ྻK-9tbxh蘍=iOPeXĂ-wJv~4$j1'2Sܻ*v\@ZK 4\i.LF}2E̼h$|^0^J&2ݾ}wpܸǷ- 0cx)⋽П IHqN1T?NBޑ\“8e7u6!ɗ,݌ijxCHO$"O܀7o-Ê #v?)Mzg* wuI/g()䙨,i UT;tWm =YpTl'$?.:B ,5lP& y&֤,;<^=GuӁ23>g&2E|nAAc4o3`~|nsMiZ\8  JMǾ6 E=,n$C|@C,>gqJ$ i ùO[(}ˌO!ίE nu˟Vx'G&qp_bnأeB&6G$vJ9-$,}:>be]y|ʔ̲M{џY!5=qM|%AY̛W[Џ!V>l?M#`x$f{wJ9ynȉ}1mBOBҌ[o?.SSu1:,M~!Gj8cukjJSrXц-[B]&OPD Zxc}"]ֿȓ e7맂,p&.goKjXK)5hRO_lFR(N0??  -~ib"_٤0E$@Q_$ELf jw5o;U3f؞J`Yn4BP8jش{&܈j̆} n< P A3KKN3odk[کꦜ?!`~Ey1o%Lq{{IхwA̴YOk,!o-mq g8[\m*;~Ձ%oA8lQI_(ʉDLKPܡV`4ņŻ0#PcPur{)awǤ`k_F3:+kP o+ʔXR54fGü}{A}(OT&fdgc^{UU!ҎsH.[_\g)B7wǵwj2[ < _kaz3CWY(q 9m<(k!%=5c*Fs)\Jї(djWʲ54<>y!~ }Vc!q`=fV^je݄7${XpF :et>.?W%(r\`;ٌc.yA% oTնg1 }n`X0Q U:) < A)d3^:f8zئ)뻶Ɠ75D;\W)_)@!06G |\s$D.C>wѨr-+,5>"c/rEnqR|6KUFNeSEyT['Q)Ao_"RmO&ÜW9-ʕ=4lJEPᱱifv_H+8f!zz8pp-*+ϣ-Za#;Yu1-/p !Ӈq-G[ 0{H W Ȫ2!Ò0 {wiV\͓qg+7gED %R}(d.ڶ4# _!+WD.]jpvNi\L4H1 :Qc&)1xY zDocT!~ 2{ Ι.+_xR_a{VqE9l'לصع`* *p J o 3O`4Ћ[/˗DRg!xւ#ft!c]xO3f1 )6P!olWH_Sb!0 y-?"x8G481P^JOGWXbbϣ@7w0WFc՚4 d{*_u O "`9Z-JT6F*(a,ȩg }pI/9 $6wP_^)u,ὌN/#ܷ>qVE5FKꩯ.%|Dƀw@тԋh++껩 yKPX: m='kh@*+@d& èXYTeSYHȮRBW3>$I T9ip1܅;(3>$){~X8KJʱ4yУc!ώMnIZ+ I:Zl7 gF%4,1V+M(r,TO#wˍ@*ZL؟ZC"7'\!]YB$ JXvxt,urt8N@>ˍx/Q3r:-R5=cƞP}g46yjۋ(|6Hw 5]-BV9vb^7SچK`r8oin 7Mi`&;6%vH 9X|Y/| ,!F:'A\|ٟ ZnL~T~1r&obp|22u70{HKDDd; ;,sEk蹭r z;#~QtNFJlxWZ,iUUS1YfF IjD5Tir1Oc#lrր҃YN_r0 yūJ*m ,sk}}=-ߊ;^̓&~YEY-*kn *Cls:u1Ԍf $zɗB=eV,W״w0sk8-ZTDN3O6J2ecFZ:ST\ %aԭ!`-L<]EJ]t0iI|F/~P"1aJeP. x)rWfAY~wuLmU8Xr^h&=~/m;6$b9M i7k?kOTdy0ÿ7:틏pPV1M'] ;ږ Q]- w`vc9))s;%zKq糤i`pBLxACkq4εө-zΡ㢧jd,Yrc6پ!;0O+Yۚo@M.gpXamYAX }=k:ULxB1 ڠ|mlK+Uz& [AX/8ضBbs3S*_y^䫰,(CېJn^9-h|*DGH68pñ%sٖreZ6EPtoFLMv4PL1S5 Sˀu.V JS } q w_?1t㿙>Tcu^d@WOAeyq6-׺5r!rhO: ~bOYen47|Xl!T {ia g^!+%XBT &IЋ3Ŕß㺖 ia;[^N#ޣ2;<)E$FX`6)$&v]ැWO2,QC5vuuuSќw$бN)k|f9FE89c:w*7&basn,q`h P6 XNCuXi7'ISA4դe+(3 =1AN0]}.\&kJz_GBv3|` eEW&$@]izb HIAoJujK :C߮oxKչ֪p71`Z^T|'*/s|(SaWGTN^͢ 88GdT-xU^/4UCO<е%ke8l*9P"ڽ+{chHcVQ{m"n 桹)<&ԿYш8T> mօqDj0 aǴ%㊾~!pAGXkߘm;44o>j9E=.}1O8*"m#<'ɶڕ ~ˆ|VEq/Hq&I" .4|O@ps`t"k( ͐=ubٻpD#iiTҾ4x rD8Yy'|rqHbRL Q}~i|.SY&A bZ>f V]"@:!s:Z }9o洧e>j/rƪNa}yoJ Vi(lgBTdְ|H#fG4-5`pĩYHf4ǻjaN!n]vX%|]Q.!m?* [U8,zmV4z3n2ʊH}3y" VY0Y.nTpߛ<\@5 ?y=<{NQ1AaVA?.3UG,Z]Ju-f\eH̕ 6]&dL9`YxT"(An$KhtL{ )k HJ< ρQ}@R3@.:NZ/4{q[M~\AB[e QJP{GAln Q9l0C.{ #nC:7oHByH3XZX4 sչԭ4]BaG-'6\mdi,|Q<k(˛9bZD׽V 7VYn&\?2߀HЯLWm4=<ہ3 ?HBsU}Dž۳ NHn,_2('p'P'f:ŵV<_\/?6MY"O.N}Tm3G?QBVf*ӑ3N 1 9}ƿ], 2T/r _H5VEPbF٘F~A4DЧHrq@;"ܤ#a+[dqhШSŴ}QIį/x\ΐF%i @sqRv gȍ۴CB"4UFw ڻjEl] #9Ϸma@nuW?#Kx7 O?RT|Kt9;O`>ڍE&SHtY ="̶?"rg1.Vº&[^2Y._ \ ^?Ў|cx*=dv #y@CF!Nމ~1;byN8| ΃(JX.q3#eQ?)-W3~.+F4];ƕZT8…*ʏu3n?j+P0ɁƼMZ\HTzP#8n ; |xAk>r9 KJ}85g>KaE(W\j9:N@>feXEIAlsAWp,xj,FDjó@ŰD#ٿ6~B-Uo)ϡfhf9kık@Ȇ/?ln l7챵mOlu/O 4WW\a}Q9_5>!&桅 -#0Z>pJnJSA\!Qp~pFsÄolif:QCX K:69ˍڄ&Me<Jq%Dh Yh.#=jޖ ]1>>68U=ʴnX,?.d'QL*~3mWqIQ:l-ULd* o8ʼ /=ǓnE#UۆGٟO %af鈴~#gh/,̷FmP- p-UⲟЍ;#X-lNh?`UvIJ+ȆJmpkA]4Սj_llq!55TFK [D69K|Q?;T  d3`}U r36_/q !ـXM7ko(Q<2J#=k)5z1눅BpU)7gE"Uo~wpp+jlj7a_\G&Yx\ Ј.xrSJ~qE.OW2$Ff/)7ZyTuۄlN(;M͢ fקpJԐUtkb^/HgQ':m4@GMjNdUC@w+O ;UH.gpcāBi5u.rv<) K`UZDOݙj .T%mBip9eNdr3`k3%`U [+. ~طivVr&@AaS&&"6t[~2MB ksWGA‰ҠNgtuƧY gW?|* g)P!;u%t˴.Kր3V#ݯ{+34px{ \֛KK:m5T\OSEn#B&3'+RbZ U.vRt[q1hB@9a W~+4g#ގƕ~Ǝ%H}N8$f"w/}04 =m5CS0VJULW 9;/<,^EFNxWw 1oqoWҥG4B܈e* xLJ0ʹIʼRce872sl3;KDgqMK56?XOi-xgvfV;i6WF3R-9a-#C.s* bQ7>wx"]t8kv+C9mJ#Wl3ϼ3cK=Ƽ- `noR,Q5LA)K|`e0\['dhs ?\̧S3 Z sVa7#@r~;yn&@ag^ɱff_ kF9Yu ߿X4e7 8h )F9 # PHpkwoݻw57[X7U=Ҟn۔,P)'tGU8ޙW 6m'M+V wpJ7m ] c'v* ̣D%`),$fc&b:\TL=Nl[gD;8用RuESٺ4;NETbElNX>H`ʗe:  LJYs&F!),VܼXb$PTPS~CR`p,oQ)(?8 ƭyڴJۘ@u fVSo+_G p\'sudsbnsZlzz#x%'Xm8Jz _} " $P/,ĴN^J5&J*q{_dե,0U:߀6H&#O~̃Z+=b?~\^p }WuR/!bd+diQSXjC5Y{nJιx -(BZr1UfP;zeA td9pEGM ۶MW nGR%;9׾_ !kXPHؙY Mr<)EuEB/?8$]/yVhSy8ż]/*(/T?rwCXD?)䋅^ kW܅B^WLנakM2 ЃFd6x= [/>0@'0 3l7˕F$ner.1ِI&~/. {D*le"KZ}A-XrPhB]{ ^DM+L ~@r^979aa="h ). .NIW2ϚBIHID`J8Mby59s4%ꍦ. ǛB"r"{g.w鈍gqbb!UaOv컱[:T_<{F13#QIuÕ ڞP%f>Y!4Lˁ ŷhq0Zl Mk8^^_EK+{hi/nEJ{' q,Z8ߐYCroNw;O2rIVXVerg'e tYWxrS7|obqs4']KxVܾVCH^} BB?P%h&iH8yWn-67Pi 12N7z:h ).%ڗ`_C`dc޷!!Ɂ49jCǙ &39H1;IڤԬ,P`Biկ0恚 6UD_Eqt,nP kXV>yQӪF]NDieDs"s->cG"]>Eb D wۭo-44.m!s!ylhBv~|ؔגxV &b=#NcUOnxiدrMV (QT&$<Vܸ&ؠL{2D*mx!Q2RB%OsZM@x= S+78m8=mcfRHF<@yD'9Ģsj7B% ߑr˛qurbƭ,-q~7:v{l/Jn#邢Y4GغIu}KGSAUsX 0a 0z G)}V"70ҷhk~=+̺VfD㞒rb"I>{ `a`PAT#gp$sjp1v4̅N,rAH>,:}3@E:%Qz[|>tjʜH ʄ $#"xRH'@A)-S.Ffr.i Сb~ޓUhA"r²_I+}|Rpjؒ͸ɚ€g&iE9|ɝɼ t(P/e ~k泓jTvN}ܥ3[I#w5 * dI'`w(y\ڊrd5aoq&dљXk"C킰[ybBf"E8+ĵyAWnht3P_Qan;,@,<6UԘD!e/|hCLy b{ S\yGѺ$}O3Ez |}F}!Lmp4UøqfҾDwhp14OhCMg p 0k'tx F! 0hkA`+"Y^j^i2RҢZҷQ'7+z9zl Jٜ"T Mqvb? \WdGF!r7;O9˫K3.A-ί N| `)YЂL%zeEܨl15reL'y G&B$s#6Ipx?3vg1v\[@"1Kk6p*LﰐiㆉA|6Aj]L,"*Z*8g#"A:MP2. aoIyx1eR"͞7<l)6Xg:0 NStjo.1l-dڥZJ@W (F>; tWls8c5=o]ʉ.{TGFD :WY.tz!e.{LH5,.^yŐxWr`2nK ,=*OqeWGHԮEQ1YCR&|{2y939s @}_Ogxe84EAX3P-9Tz/GH-FXUha=وAzr\WWsUHEĹE=⭥G4$L}_]#_!&͊cLorog!Ljvh RBqAƛ~()w(\y\雰BGDqNZ7KڭTV,Lc+f``r2M[yջJ&1Y490DK6)Nob:|M߂)?ev])ʖ ҭ5Eśݲ{b$MK{uԭL)[{#;Q{_ź g {%5ko#$>2g1 є+}.32*bRVNJЬAľFƠF (^1Ȏ+X٧qtCSChRՌx3xňd6b9{4p]ʜ}O5M}ٶϏ9k k.W|V,*;\\/$b4/R=e4ùϥJoV6wX7HM_ֽm=6.aWⓑV_0Cg* 4ERT[DR?,U8;iFoAyw+KٖWyig5"k <'J5triM9@Ժfv釼,XH? )h9"v7r 9ľ^Qmof:5sUGntQ.!y,;@&IJޣ]Ω2͓p46[K^vⅷ|oe \XJ\wfպE,/2}koԔF'zQI'pu!y+> ҶoGM YV!mɆzt޻Xk OM'SzF?݆vāpgY, qUX ewhnI3zI_۱}.if+`y/|$ABgQU*=v- b`θfA";Qf@fi bO}XtڔFS|2y Qv%r>Y_]S8b/ ˂eS/ero$$#+-7}4(? P6(T~ OhB|"i~(}'sNLj]G YRO7jG<,B@?D<2>#V_obA?i$^\2e_N8rj @L~zL]8m lVxPjͽT c 6Gm3At%\%DYOif}@C "_D;zD[ NVJW6jnlJH[`XACX39O= T0tGwYYz٦6ڧ`Jie?w;O,\H)A@9jf̱ p|>fǧ/PA0Dg6D9ҍ#{͂˾x Gҷ\Br1m7fuK+_ g9x.*Q;-Az0֬MM)mnQaD ’D.IՃ#ݢҁƬG:.` ut~fQFNmm6*/d໧$7qJs,1fӁs,Y~΄>ShɿC V$aeTF_$[ZK#˂6R /)FpUy~MeEwr­;:1ޯS@𞧮[P!DYzQϔ"S.Xb dk+ )JRϫ-}\N3 b/S,E va2OCPy]e\uVM<2HWSM+5F$$L-I~(~N~_-V=pꗇua} $n:R^OIǻq)Tx_" >km%C9^GO?/chs QoDm\>T C_ @xW"t$wd!5V럼s$@jSB6炗;ēQ1&*cn)+%WZ b9HCm_ {d^p7Wo4`>H;h1$%͘@T'瑦dZ~k>%k02 mMzCcEwB&d/z?zL \f+ ; )y]TA X~5o wCwpkT\,BR.Ko%"2Ь-RƺDH!^wQlJG-\*_QDbm-x״$rD75*TH-JuG_*f^crz\G_G'g'LQ`9y?F|j{o3$7&1Yg}}Zk9X!"(E. ,('J".FmX4^@G9I\'AUD).Ͱsm3},Ҫ_1Bl ^ʍr 4lC[O0N|հY!\IHO (vƊl"LuwJs>o|=EtҖ5 'ܒ>AsQ{uI/@f2tWWzr\&\tAUT)TO7:"#U7Y=LY _fLʓL [TVo/RrtN2X-ZB6-9i, QLC%wiRUX>KA/IWO[$?c:QxßnΡ^ C-A'ꧬkT<@Z`W<̎UBϺ2Z39G@CxLd|σ.yJsDFL|K&s Br>xNC+!Q!'Vi|(hX˻K"tC2\y1LפQy X^<ɭKű 4ͼ"hjeif~`8Ғ@֥ :gR%8Z U";b/ẖ{ߚ—YkZ@C-OEUŝb;bR. 63A""4>y1Xsah+Y\a֎D=gcze|lI=-{4&LSvۺ/MZm˂Y^FS 6֎CzH>Ljy_si/ ]:8䅓8sa2.EK> @mHZR K:ΰ5SXATHFkP-ۼw ƌhS PG*h 9Bq ~h@(i?TW:҃c-BW΀kƇ8HÃ_B I4"g= 7XBHKF8fSs #*b `T}@#4 x9цզ /$ CYiгiBY %?CX^.%@Wo4Qz3Ϟ?#WV֖6^]ԙ/8Zչxdߴ,ل䤾Ej\ cBn^r%*FV]ٛ]b}X3d\ G5R!CoRKERZ83|@ v6v55@LP"?]'!Waf⻘msH=Kp5ē.] &N03uVfsj@Ҁv rF7L*V7y+十Ka*@34`OIE _cpD0-dU\tR}h[T ܦ 5#De G&9C"e6 %)ڀo<>c* 30TTjX?ӶnGGUCmвdЭk&B M^;A_:Da# ^!ٍIB/"pe~Iᖿ YPH1^G:6Icf Du=^[hHԖ,=' 2X2[ _9rlߜmiFK_^` 207§e!7#qmaOEeT2uy<1^0ҋeY?9ޫ`.(qn ɦŠ7y+EUc7p^<_:j4zC|UAٹuDe]ɧހ (D]g^~q1r=9({B\`Xkc @UӜEA=t-T{El 8;+,9خ8zN9WXsuv=nk%UҖ\bD Ls ~_aٚ{%t>djvdnnA0O[=n0k[O cP7y:$}uS \OϰHvX]hCM 0Z"X=<| u\\k6I25kS'j¥Gsjۛf͞`v C ɴiG9+WI3)z鲳yHi+>D 5Ët4 䶫2C7Ҩ;Ew3O SԜ|! ˿ n' mig[+ r8`*3"盔asp9 Em/_LTtG mH+:US$@u/ޡV䷳B>դȘNXӷGĄ{뉗'~~~`O61>Y 3_iaJ F%MW'Am3ɡR菳\ 8pc7Tb?4) ZY 2сkZ;mv/P¶<6 G@UԐ/ pIr. T4hnM/hD-"upQc|}LEy vkD2t/y܅4X|PFvI] 2%Eg3* 9,hIShI USٟ_T%Q#r侏H_<;; \Vw4 {*;Um=8ʢ@_F҃W{|ؔBaInl=֖(4[): -Z$9 rBh>Av n&!q~n\FLAË ]gG MO u'1,3!OR6HUplсr$PWDN xx@bDY@+D6SwBOL0$IHùƫ; 0Oo=y3XFݖx  H?_cl0dD;'S#m#P*=?Wq'y %9YT9%eTl%LdWw1~Q3⡮ &S&QӶl5h7`&FU y rG WTژ_b<hDAMZL̤'S$3i1P':f;@,tOF|2BEh _\Q MJ$k 4BORe">@Ms drp85YC|nC(>Sύ,!^,GX缄,@DG)![e]llꂭ&& (uFIEv+{ @s#Y-&4&*:h$C[cfCϵ}{)"v#wAa, F;:W9Ķ$>,` ?;a7!, 0D4B'<]_14C =v,],& M=2 !{!]YĘg/mwbJf=  n"M4;Ka}lW1h3Wg@_ ^1 "pWɤlΤ[Ձ+7?L.aقa] ۍwRSnTug4[37-hGHA$RrvUf2ioh7СyHMQ)y 睂0x ̵Z)3ccj塹Eʴ79.!Jb[|,A֮h arp`& AR6M\c|AYI9 +j v\͚̋#:&A< q>MVqG\.ca}s3WST}C#9To@ >U`,!7a2ޥGur"#nT nTh;|7v$>}@t:3SfOC.Í?ISNvR'Qy$z@ _Gz(RQAHLk:aրGuiqFo$/*n#87Lj=;JL:mIaE_ڀ۪z0PVZbN?d^ז<{4-,ĉebivAeq]7̝ZkNv7~`({E>tX"e59w!ǗmԪ<ܪܤDw"w0>+ .%G lS:] En?ƫ`&*.k7n'ӕAMHAil~ўԐ%f! F<:]1{7/P)p ?MB.dNK W/l{io=5|x-vtxDq}ۃr]wRrc&%܊ؖ / PạOBMfIC9ҨfCβd:4(tX&Ci1Cl7z?ٱ(nvnpj6-Odablzz+7F^:DFU d?~h9*8eIMz%2psLd|# `uhd+OFD|30OW}yQ&_:t:kx!5]t/a~>"kAto޶2&#_z~Tuܷ6Vѥb-pn?a#ϭMM"{2xY!$ PJhmD[rֻõ;\RB Ve&j54̎)K 63+-K <)}KO~aؚ3>VwJz'acvngJ;ſ|FjktfIJ?73R%QṞ8s(€ 1%6FDBK*͛C 'v(犫y<̀Je]\}KPBM~T/Y@Ah(C7Q *沍)GW=>ś) ]Τ) jow4 Yb ݕ~,'Jc}_BLzF^Ӂyz-X$+Sȿ . ;TLx8 q 5vnG붎v*?yo>T Ufy7 UVsQA [Λmpo|zp\|RldeJJ_~n_jI`ܢߍq^^r'&/]y>*P=TlS%+#*7^aG>N"Tֳ 6@b2[I|(YM5{!/_suF%W'*[1u+a eshc\FZg}*_B" .D'+˫X9}9lz44ꍯ~R9sك+1i<8Q,yAƻ5\ೇŵ]nOSuנ =_bx.]Q7uUy_tÓ=3u1m?.6 7N+MZ]rAzmi&džkߙ57#r]9'tKOP?VI.4vٟ:_ hU{[w3 t Y3/3.pmmWX" .Е2w7Q݉+t,Q6=b%`.VuKĮLڅ8ax4AIQR߯Xqġ5%Vma*@9(:|P1 ؉p\({щEfA&pЪE9 LH.Mb{3 #YuXȝpM?{m!tj0_1]%Wiﭤ~0GldX^9Cvs.Y-9B?? R] TENK̷E ``'F$A[-F]gVCO]@wPƭ @xD:4=qljq~2_!>pC/ns )nq45b0ٲ|2# Of' vU9k6~W-*F;1̑a%%V)iT7 nï"<珞ZhIYR?I-)̈́$tvkKcafmPԮMvHu%! %w" MC,rGs؛m;7lޔ>- 3"% {{RӫBƞaxhwVw$/ y%q`~ٔp'3X;r2d^e[,(vZPiB9yT 3/}U|i ͵))x<ERiAf%R9se-$by"#9 V[Bߏ`M{k~U:Wc=gh]Uv+f筿!|D7?̀CB[R:TEnJn٧% yK7 ?ԽH]Q3EQC#/RS\^^gAI93KR80b1Nq_u eR22H_  ֛qc'DE]5x\gJ#l(WTlR@zE֎65bs 5B{),xFRGEc6M<;/Gip/iQd: uT{Y5Lo;B#expwKoTM0?X:Z30sODɩp﭂&i/e=ۅ]'x# =AwDO j$UఒUgNÝ[Ѝ V>!q }[^y1NJ<*A+#;%OE0죉(gIfL5ρmz:,RХyj#~.rո&bӟ:!TC!XC]VZ/쏙ZeUd-YRa)MWy؇8K)%]LxN9@γ?蜄fm?qkZIX)݇MjƦ3cg$[Bd2o{DM:羼NYU`bifRuVome.QFx0`hyn򒗿"h0=b.ix~&V)\@PqNUAҫ,Jju6;4AF˷$Ü5ѢPhrjfAsx fG6dP 90f"^݃&ol [VE)u[/B'措+O[z1\[hvx'Lst/^]?kGE >$x}22ْh-ٞX~C H#2*(%i\jK ;V\Sh$z 2eGZ4N&{ -1l rVA*N\S*W&Ek̹@0}MK-Y1`GHΗ4sq}x7 2檂8j{*c,"kn.d˦~FZ{A W mwhQu^Cg  t :T3< n`S+Wj9Pfi`S#>͙qS,V3axQ vDGXs9D-cuszXDj4;CRUU+8y;V*>RM_\Ն*|*bGA$JaLp#Ib$o-Pr]Ҍ4j5vrm,.Α%"_m)w.ӲkoNvRY|DvsD`1#T5 <81jsaybJ\0utE/~aSFb#c r iNkFTҵb_8JZw`xQSW?c24;V7'^Ay_O&t5IGTRv.NLʳ*[l]=MŕBbpVWrk,YS+?pI.mU?#,,yۢoTWt<0<~lm|4bO`W!†1G9m7Iðet%r I}FFgr>4EcC5mR b/'æ&Z$C)6YX 9L/Xڒn@P=˶;+B<ݵع]!FvRfPhv7(#Pbt,ˉOD<6>ϙUc @@K[/ ʪ`wOm^f4ha͢v+T*(PJ|gfȍ.'AuU`Kg 豤>GoR0`iYfAGzƢP;zgk}rӉ-۞޼y h-h޾U? K*Ǚ6ю1u\/JssFrnË{chvtˆc *S4lpښgXshk^TM%P.Iy©'`Rv[E[~CfS3D;69f'IN sBR8t\^%q(So=NFƴCb6{lN+7y&110[{E]:}辤ΐw&;޾E(~LcmjL/#h :Prۏj Atb7כ42'{ &lDoL MXz{"&r>lzØ4zEQOƳišqv:{PsU2;б7 @+- % //$Gd+ĈO6g9. C :3^CaZ ß! ԃl*loCFf?5h^UoMJdivbfQtso#nFlCqg5$CSPX$ t|U#掼'KlԶ WHsUP)Vy-ռXgV)tH%F 83J*Q.,=,~SۻdpR)Lvt o&h!UCH_> W, X|mSHr20w+`C_HəhvZө@[r t0[ҋh =ϫ\aKZf٬Ƨ'*4Z?2@z;.ݫeCig]#wZM+p{el*&uјSC4 XɤW4g_ d䰬&n&V#Ä0H8DV/Px?n&n0Ƞ#P7ޏޣ/N؇p-9cy&NQd-yQCäo%E|]CͲ`񬆔xGד3í$rǰ_7*0V<3#XUNRX}e8p-e4#vc'^>0:t3>#Ӡqg>=$0Y xM? |pmVlhsAe Z/pI]xJCXPQ^3ɛn "{k\ :'WY m’r m]Jo8rq,pYCteM*%+sk-kZ΄mICZxl&N~d@񎷟%/ Vll=fN]ڞ|+zCֽ3rkC(<{GjHXXw›cfb+L EW\zhH3IvEZQ14:|Ddɠ%*UzO]~ Rیvo ` p6bG4°k[W瘂O> 0ˁ㩫LltXQķ]n{qk8btOj=q#1ȁ<WLz]2NGR8列fdB^Mʹ%7z?Iy?@ &X$ʮ5M دl rqxx֮LٝF_IVB9ƔH֜aޥs\)Հ'2' leݭu`_\+kYӗ./aY_p_$)  /mfgbi]9d_u6r૑tAϧIg=,1 (6as AՔ=8SOTo鄐zJm.xI^ynOwF*>[nFyL Mݮ+ ~>yH[!M$R*@_[k }%MDf:\7NsI5K2K1Y?e (ND 60~:5Xk1 VL_u}>dzPգzi%rF4/y.\BÛ\ 4ٳ hpg4}hzy9M/;V(Wr7ۑP,U?^";M=5: ۘKsAfԄ-m.;3 ]-RBԱIj{$);) ]m擋ү^E@^~b/b ̲tqK[!.dC.)\\(˼."\6ѝw*ڥ.'3AA m9{y0~Uh A %^j4NBJSsq}@"˜o%Cv^jеTϋap X!m xkbNC]'QSH|n8#(L YYMJ^'8[pM׺*h'JHKRNU|ue\,oB!|-wts2^Tj'Qюnjx-u jvt ;XT C| Ljtq #w?'këHWt7ok=HP JDYpbaး/HrNC6+H5,W J?dg*<}C0DcL۷LX`hkOV6ęl~äUs9` ;#4&^Y8u&z+ _ Qf^ 6~<*\0F=Kk$FΎ5͍Ȍ-a%Oi<)Cr=쓂:ڵ{2pg\8yOC 꿳<Eqzo+Km@7v1uHG@dYQ]j(w[fHhݮB\;=uxmjt272gkT^J:1ߌ5첐2Ê殔=63$`{G: \Ao/H-Z+ەA:pHU e7EPc#vYlP?c@Qt`AZG7eFi |%:͘zLک ЙZ? B@gѣF * n(0;7ߩ"BŘZ=n'Ė8p桤`WlhV OV>,!zUVXvjD9XB;҃$!i-[ITo-ZҭeDz8fGdm2^9_dx8 eu܀,.\aFuݬmtm^INSofa];{VZF/!AOO(SeX>e-CH!E)%C.Vlo-*25aw.m3dWMõ >:鈪e~TXrڃ#>8Ra.y Yͪ?M3b5V4T ܏)RoO _ώ֠*C}eAtSbBVXysnN'Z3*/0 2ֳ;aj$e %Nfܤa{JV*ťGRAD 滗:WxYf C(:#-I)7aΥ. UP )IYdRzhM1WSK]Ruݞe٥s D-4:fiIB\] #G,f5 dQMFpd("ԃv4:ֻQpk"ЏSA+*PDi@oL6_g;GwHf<*>WM5<0r~Y^x 'e,YH@3+uq.peYntWMk!}S%*&ƥP9(EoI1wAeOߍ GMIu8嘪c,@mQ5747)YiƼt(Ewdfx|2MP{}HhaCuXRέHkݵTɫ-"gs[s7"zzˆ|!eB@w"QG O*? <-kdװ E =0B_5sJBtf$늺rejC*Fgm)P9ʳf}MOn^+dO ē4MKaįM),yF/9{-eBif7)U/.=4肐4O̵rDRKć)vz6aK6yѦG]Pyi2/)c`Tf'k;a\b.g/LyO%SVT$o0Ѣ$X$s YևQJժqU0qaUR:qr͜`Xyw"c\G^LIjs=aVr = _Y܊ݚ}wE\s?M;0:U kK}XoXR *rZ ەEC#SQVc8TF;);>9W[ l#"#J2+g5Dd턱_["j" )bu[5pà e|_$[Y`Jʥmq'PY.})u5OMkt" '8"HňmC.*-nc'"G)bH qMd?ш +غ1D٭,vmI]cU+iy$,honO\; 1@ D%A mM`2|3J#wb x74ǜ/,QܤA؆fvmro< "+)65p,%r=GFR=:hRU_Z -fL,[n_9`t4KHL Tx2lLىK=nN röW'9SQ,0_` 4Hi0xTJŃS}hi!l~\5YzlsXоHM S>Α}ИSR65ee)REִFm"RM~rQPWDUa^b8ă+@SXg@.}-4h֓*1!lՇPE<7JE ?]D"`so qq^jߔIz29խZMc"?sٰa2 3:*L-'JaIeqyO|'0oI_uxÁMVlY۳g,o\?}.!#_(ڕy2=5y]f%Rm?u_akUKr6,P6ˆ];o(.9y,xd-Isx}/QA.ww)n",H+yp_<Ÿ  Փ6H ,L2'jrHJ*R<^[_͐0%tċ>TCh޵?rOF3HlH|1ܓQ2k0W]+ DMΫkMrdUr L8w%oʯX%·ozD^+]iE8q4'm:F"lUӪ~bⲲ35(UAꨏ(fɚ?%.(ka:-s(Go,orE ۧN8~d4-2>_LnH7??1ʮkBͳo}fN2_݅S[9F^h$P[H-yx~2mbtJ@{ 8lNye߇PqaV6`|4}Bagr+ IT)tngI5AlMcĠKZ!7!&^WzB?.O>< 9ZF:DyoʸNJ΋u/GOS6cCQÜԿ[i9 Si牟u 9R T eLj&:Ҭ,iېx_;h 栅ƪ[X7c*n_JHx'.5>_kC,dV0+G|a9kD>Άx& fJ|=RY x(2eiwNơFٟx} *)iUl a[3z݃ <>_&Ȱ/v$ZmfW1*4{ЧH? >W8;Lf%ĤY'riyVH+/MnO/Y:ӗ4O[:0 77d ԡ?YVPoӫ'~i0^:{7ut|W' hk]-4wƴ]M7CW&t+_=W||R7'PՒh,Cmfwlj2VAhqPT$Eॐ- q){?YȒN&9v&O^u/4> gdFR˦"tkfEѐo3|}XF:`]e22w*V wqV I烱,R p|'蛡 8*-^e2=fcslvX+Kr|U-ť iUн0L߼eٹ[<ɇ1Jm6na>%sY?9l)5Uk)c*wtDUd9:ރ.K[߭e)~Ŕǡ} ___9?f!B*3!p -AjOVR)OIL*TuerZA=zuRI4"g3B9J\'(0B"SUwiE!EB5k3d<.7mRgي#Lio/6`8?nꉞH׽A]]NeFzaa"@p8oe93v,kf^qgGYy&+4oN(brli%l?n6G1WFC'|&*rs@&P޷#oy#=#R=ak\@WNY=b&&wT!}[C%ysI@dam}i" (}ɵ O*_ 3߲syxJ {0@{S gķ!%ڨP,+(Fد9W]4BxJ_⳷܍ϩVDEh*ϖ'.D+P*5rs 8M:UuÀ'/*B)4:5Xn^b[Pls |y"O(20l"͇iVޮe2=>FIa bJ+Ec-0N{dOq2S:N@^2O ᆻƂ -0'j]U1{(GVʞ?Cv{4&}i1'x F;I¦P!(m%Z\x7}vA")!pkY;}%u*lp=ZKL"5ӛ`}cg1ɟFYK5E 5{[uE >k΂.y7Ϣk4W2mV6acSǘpO-K-lJ7_a[@MREOܱb68}C_غ+13ܦ_m{1GPS+-]8Uπ+<+tv"V0e- rxE5Wkg"xw%#DYyЕ'9\9A昅%7zp]PۑwSX'm6O7q*ϴF}Joc6^4T~k y ,s#s]g7vUgk l!5%ܱ~i7}]:2 ,-#/9-鲱W%/0]Zx]l ;kfAkl%Һd='.{@7-l@q30}G1Ϯt=G<\ z!JI'FUq}ΚFX/'==!HTMvJ(e=U&LubBrh"9ow?q+19 즦ɡ̀%M+8ݓ.'8$MyW.d8bIpBm|*iWT-W$G&9 Ɔ*LYm|n+T:mwBNB:|@$ۆ0$^(+n C{iτ]KJO+ os]3E~LīWinI}' .^9bM\X@UE\Kxå(25ʵ GwwWHl&5HncqL 1^<_r;w=5U#] ]/ܹ1j7ɓߦx̞e~m6sHlk+\EEUe M3~ؼ?X cIՑ)gYH ?e;&r$o|+G#?^67ycӲZ@oZûh'c=[E"fj&W}]z6W|E> LD-W*WIlk ]&"y~_,3sm B3'IحHrmX0A_!"c1RyZI4C_ ؅ϰqi &ȉ%:F"rțF7_]!pېXaѸ: # \ܗH̭r3^7Yn_oCޔ7_M4 DŽ:Wެ|\;a_ə@ܔyKHak̟y֊K /\|V]wƱg*g]>k= :=yكDPDn&X#bd B Ո=8X 4&ꫩ Sdg:Btci~yG3PEX5ICHC!ң뭤cÕi\3`"Ƴ8%:;6^!42ȍqE׺6v`]ˡ-QdȮE->92`+\?8Rw/BVo[]UC^eMB ^nlOYGml2߶x,1b6b<~zhH>XopQA~@jQ N-$/_c5TQ^6M@7]3w4X./\q`ۦB)ҡT, FShgj]E/n-eƄZCziD-T, \4(1ËYaH仦ctĜ)'go}~*-m^# ^{M1BkzHO; Acˆ|#u5*8AN37d4+*ׂ=yMꮔ-a '+5~ [!mVil &[q'`{`qj<QP1éVUY@UΚ2=_f,,yv|T#ll,^mP044('a6#F9P$0mMc8R$6^Iqo#+A@Cei!;zpsMB^AP4J4F@4fx `ۖ|ŴjÕST*$M3tMo. cGK%,|ѮNvF6.gg)Hgi[7Sc#x#aA1ls@mc.qd% 4P_"7mEr ޾Zl6aO=N짋ᄗ5a{\$kt0k1ٮs(gT/Y 9#Pth48W(X:}H8]FTvIݎ{A!;+ CAM˸b*P-~zM$6-=XACkŀn/};6?Ƭs-;9y=XS*L&ង&3ѣ|,M:7dľ# T@obBS5sʊb;qɁF'u\ۮ-ŅChTmM06}ڄ6^4n]GGGqT/Pqs߾iJW"QB>_ͶGa+M`oαoI#i7|۞g=  %  4ufΦ )95Oϳ'66H!}tJSjK">mSO4,zt=5J&^mq ${Iu)l୉{e,f~̲E 1\Cv"bcD`0cCWP)')z L?`]T9O Ur&ZEa7#/b1NɏR|Iz xcסr^^Åh< ۲[ӡhOl.cH|^#;qKAv'Tz>Lv{uxׁ* {b[4QD1.g]Z472K/bSCj-E]v[*4tOUQ>U|g%{4V\L $(kv?&ޮhK腺OV)ؠ;&_sw$4sQ~NoODqwĒꝖtݱR#Ub~6[/ :RQvp$Mδ{i:EuȬNLL d,& ;CeЂ$Q\P1d.q;J<r,)yN_Luni$̛¬0w Tc (LC%ؾrQͫgC'hU0pKG`r|h͖)/יsl0%Iu_ra͉"p \#W;+%}V4V*6{ovH%%HfU!7vR>YP(K-:I,z>0\jH?XlpJz> %hXjiږv_.Ǻy0B E#'S GL]e|<,8r75S =\+_vty|;n%Ui.ek<_NG!H6K´zD!2NJ^5H%RuXݴ F*nǞ.ADS X) (j7rWVPc_Ir֩<~{O^E]pt2[/ LP\j3_-vc;Vvh?㸒c ְ$`XzaT%S/+ iEX}yw K ? AY1\YdHA& L"l'z:;;q 0n$DgQf=ժՎG,d/9kv,FbEe>RxM/=W-CBܡw\ԳC;IS7]+g_ b6|42jwmtlrOxxC"+&4'Sg)VVkȷ -Fk? $@?@c./<#k<53;b3`m F@&f9|2(~}"}1d$ 1xgV}~܁FYE0#$`Eb=`j#ۢTt $Έlłbiwm"=c޷!E1Õ@[)~`VJ.$8S1_ Z~ ܹ HLad} w{ &*`kQuaUC渀],_r%L0eWl|U%Xkǐ"㮐{>ZS<|b4N񧷅j{@SSKP C-''X7䕠,Çp S srNFCۼ5%X=a9,TBr0?_d@r/ӄHm,Y&Yo2\pEZMi|6a?ȁm6c>S5'NF !{vI'%z_dA [dGsكeնaYH3aynsCj6x %LėK˹JWc[ sk̶2@FEI*inLgB-TTUm`@^Cf:D95XHG!Jq}=гS_M6 4%BÅ7yǍ`AŽ%EH1@…_GZ:-bϐ||;,9>˓ޡI;Aqg+uS?(܈~v z&zTگ| ^΄~z%5zEḂ݅~Ȁ'Q$Jkq"Խ92?AELzvr+Xv"tUQ޷1x`6ٺ"#.2 G sbSi,C%1Uarg8R,|uT@3lcp[ ߏ.zt>KT~U'5էgQ9&70f\*.>$x(`90޼?VẂ}e[2M@D6RM,[xWZhD'L(Hܑ:Дe,*+Nn^ƤG 'gE0_wMZuqdcTs&57B@>62$ot84F̠S{g<Е^U?+YtFMnT34 `\ 4Z>Ǭ$^w ƛ`Q(Nj;?& [>[m֯EN>J.-вit>$%{ۂC12#*nQGF[g+335cKZFLdn{{[]1~b5JvZ)>eS5 x:97ffQ8gK!γ2P>djKGcmXbiF 'JLnگ%l[wQ˚Hcf4:*&dhNBͶ ǮԘN8"$o t_#x|'u/` &{]9e!YjIASY?ӥ$x3$~4TKm[++c 4)#qLF8FSǪ1ri/ELsjgpFY)A-v_xPQ|2]~ىFDEyaN 0D/^9EwـPO+ !8}# 2%B-pg2smСgաC‰Zw/KhԼ LNRCIHɤZcRSȧyRJ؍63ڭ6/lw[+qEu~8}GLϮBiv )-vJ~!a?=T %r2ugX0rн\*Z kz\md"ۅm"vŧ`dtCGy=!qz%z <5joM$o>f ~9&dT{Ve8x!_b($\?+t{lBՄ6DF Yv6rhXut0e rwƊ/ ^RJYs]M$%NKP @rQ5e,@<o t.Ă=lBfDrBD s*5Ă8f($=kc<%Tfw3 /5"a*Q,k\Qg/ho@Miŏ(DjCmX(X *a%)| oIڻp9Z.QB_M!( {HrFXp1WFP=6)V[}ݐ+ +o$G:"jܢGe9ց a2.4crqTĶA $f+`A KR _:r _͂N7R7*_6_į␀wQ2<2vUHmlPwJxa / ;UpM-M-) r^¡h׾C柁;p0jobn#"$N4ޒrp="peҔ$ϹuL ZܢV]1)ſrm0!b7tӂheh z1I?zl)F靱Ka&]sRoZGSi6?|2.^&g`wm2gU=RX$?NeǨp2CX̌YaK"귙̞}e8ysiFO:Rvhf,b|rv UɗQ7rQSpk g3Qjlh`Wzڌa/zH١_?v-*z"ez>pun47# XNةM}h&Yr KLn@14!JguNm2L0'$ jz X+q0И2z6.%%r*PrqY$ ImhId)|wT3֧ _d9)S_d?errѳ~؊ts1_BY?rrHXdqu y?ȋpePDLM$/ܹhhd,vQ7JPR0C76Q嬖;ԏߥ5(ܻ VK?Ynb~Dgve8D9b/\aPiaZt9UHN3Fs@NbO^/zL&t꾯 #%m+i4!|dy9NRЬwbtS&*) 'iFC} -~R_eOfU~3'@KÄ31_붑GK X*p$r]bh/f=E&FNC3N'A]36Ә#!5y02V>v:PY6Ҁ_ַ<SRvVWYu?6YQnj7Cɻ鞂 ڍRIMJ>Ef3]:pZyq36r6RYJg)W1j+Al'Dx@<^XpFuh ZrںJ\t-?<8ʬ҂^!٤ْw$#$2~FGpo V .x poRK |qT-)hD.04:byiM 8JS9[s֟H+_*rcZ8%WSxTK(jis#xĪgLSx;fo9>$\8/f``j`jBLAw~=Vɸ+yџ}k=iSR^5tz&2JT؇EFxxblte? K`a,R]Zo1䠦? RL9h*+ڸ5S%fpC^z32|&nh2{~%cш3yd̎$N $o|վ:1WZTt:V@[цO{ xW-xB%S87¤ yjl:Z\*jB$؉|!|ieaɡy-~2wal#jQ҃5sh̸#U|׏~driN56ݬBA'߄<.%dX9aX}ϸBw=U&G@1\R02'd~V(5HfߌSRoTY*o9n~ j>-JQ_\UG.;bFh;1 ;v9/_x{%f>`$+&+kOe^* Tm|5MD;Ki< IX#^ K; ,^]I\dLs"KR.58^nSɥ,s*ɥls8ٌ>]a"ҲqؒPBA[RZ CP 6)mY8~{߱Y+Mhb`qpO-}o7bq, *<|Tl Ù(H<>>&tk| ks¹Ipw&˓ ,/]}W3/tB9ͼ'Ip|>d:2(ԛY_q폻ځ%a ̌aTPtln\zի-ci} yF\11's N|j#0Eag@*OYzC-v>Xe >h~By*9py'oN`w\XsxJDlcV]k|^zGC/inuYUP^*8}(몄,~tLq䛞JZqr{-n6^Jw{XU<倖}e() }ި(A>z}\6 *"YM3Vsn)VBbU[O\)WZ_^E` cnrb&NMm֨w+)f{=G !{yF>Ddgiɥ oJ&f. U8K^=2 SBU2vQ9ZBO!犪`d%6#giEql|&2VS3#)tMBM/lCp5v1&ZI >Y{V&>Ojz>e&L : !#V_U+NY3$_ ݊S50Nܞ{ %*W1"6y?dқqG]8:J"~ݛƊ!D6qwOj2H%̸㭷c;čUij x\WȯԲ ͻ,,Zrn@D;[ÛI-0 ^ޙl\pKsP.5Q4${Ŭj)&gµG@. tm"pE[7 A9b. (0Y5`WCoE`XN .ew߰vՍ1j YB#$? BIkNUO]3>ʥH[%S kjΎτPJdžpzWҌ % >:8 v6-S~;wE kuQ}L.:Tn0$ɬJH-6Jq D*'qsR9״tћI Vsj;~8JL1BfD)4s$*fAɝ|DN.ghȞ'5]ŠWܗQ_cc‘6kXsOCtmTC8F1KIW-lùM~kbWŨcWΎv`ࠣ? Wġ9mX_-Sk( QSe^Q'Ch_~xc< {zn:k \ؐR;&pcQ x䔪Y[d~r/6W;(xVj +}?ة,o-HMDur<e|AڊaP{[7HUΩJBިhgҚ1riJ[FTyoiGX&b;z˓$Omy/w dk灌p aNf^`Ɂk0tUNMۉ@JK9sQ5ܵE4)8Ƨ0u3t g|/_6>Y?a\Vv6HF@!&ޝfR˙?2 Wֻ4q+bO^~TZ-%m7=ߴ@4'atE|CI1u&㴗sF;=];(Pm d>x E/a K0F#zqlZXgN}?x1\@*QKK(A@>vJK:52gI QGt>@c5>alcܥU"zS-7gRu0~@QHBi|e`͍s_ԉquY sJڙonܕvNͿ@˳mr(#(X"Po]?bFzPrłgVH%"xR4NJ#B!*{+[~{lƹ cAD}XP3צYL*X;~ZU-twIumy)nDTRPrwX&B;8E 9yG.# B[K4ϸމ6 '[1GMq"T+NLTϧvh==1cqr5߻b'vJqS4_R,2eäX `ypL_6>I=";kC8V EMkf4ZdqU9 +al2D?nX;Sͅ8A(vɛo&^MC@LcN~i=|ydLwQ :g2TUqۅwz6P@ApqcQNɺ4PXWSw(W̘͌Ti"Os]O77$˨7|uxj-O >\aP9@2dSrsM㙴9V_V?@XqG%y'^H7 rf&2|(k.]v '+VGйA$Nw]xu\ B~]IG{n4;  l޽7eBd:iM\(v9?lQ-(6Sa:26rSm1E+(54iosT>&SEL |"Zc R2c9g*+ lڀ49Y ~X0bkX3ī|wccA$5[ j=#]Hsx8@>l>f;HD&2~,-c5m XU| uٞTUڪ?w`xrnf5'5@|!ls+mcf~B't!5%Qυ(EFdֽc61Yմwh,?U嶦9yWQQ f:۷žj\Ps?f!* :Lp6A"zqSw>z4Lzr8Krmw\=w%ۻ+R6T 1 c:)}Q{޵z.`XS 6n͜r?G0{ƟDi|zx.1 j5IY ~YeAi5Aq"vSD >رZ&0 ":AK! z>_G*!l#KZjc[/Iוpz*3*/F Boa ,abCXEI3zS-Knh/ȼ o\HdinbkkPw]J2T1ċ`~LKG缶GnH<]ZWpK@/ HN?M:]э0/bucl`EǩX.jߢ7; 9/|^_{iM٧Grta*.,ɘǵg+B?{dmOgJd a8w$iϸ/X- h^1qLqe4X~D Mi~PikeLy~ecIbs,H h 5,ŦOQp E1:)Hnĩ -تbd$Z?PL0F%#1>ۼ-&B D<87g-tFY 0WebB;:'3{(o*jHM&lL PG#{EA%8Eryjq“AƠ֦ģ_uȠ %{pvɼ1LBI(w⌆s*.roL_VXj)O׫T`մ:OlRed#% țrj`^]܏0'=G,`bdjU7B:_l \{qĎɁ32g7ՏwtJ`ny)gAj`q*RrQQ(TD;i7FR{39th#IvIcȏǮp?`Fl)Z1xqe~ zҭǿDbi{|< Ws`8Y=u?X>&rF{Ϩ| :Cd"2wm^x1 x&jƣ$ڨTWCgru?,,  Z!h|3Pù.cl<@X6dæeQwQDテ/FBeӑO\25P.J0G(bWQ5>#|q*a@8QoLr[LTFɑƒZ͹I0MwᘈٖZ(R8;DRxs〯bi_vb|g6XhJj|oc@W^me$.}10%>`@!/!)}N|Sl!x{eGٰsNzi"H:ڑ/f܏^Z b5%-ee>sAK(΅SXVIYr{f2uVdc}Ϛ~g;{_Sˀ&)xՕJxۉ4tI?3pА|OXh[8Ϫm).ĂW_ @a&#ANzNI0/.7N/M)zrvr ._;0GT_IE}Lw0hBv`4Ns,V7R8קmə'&ccJ߶ڣS2~aJ7 |vlwv؊׬2OHT sI5IB闺(&W6R;XpWWQeOJp2O6:Qe ,˓# ̙*CS.ub#j6(H&C-ݝqE{V3fjΔJkQeDw{ (`|'EI11TE~$otڇuCch'4YQ+-Z4_:Fi?IQJl]|I h Gڔ:kr~H,ў> 4y|Չ?bq %bm16 XUE^R0at3a~~qP(;?X@uU,RQ%Shyv Dd pa)47!6}'ۧcI{vU5\q3Ia ĹѪ<40?A-uU&Y1-5WFBdk3F=},VgMYad"2ceaS6V`qu=HJ{w yJ&4 qlf"hczDЩ@O>̠˱aR"qHƽ8~46JAQ,~ɖ0[)/{ nFmla= {Bȴ9GNkI^w5;_\bP"j[D5 .Dm=}{{iMS saBguR/.|z{%/}– ^'}HB"yF90\KYa%GM?kn}_qs;&!Ecwidl.-STRryaIU]LĞ_(r <)o5_ixjޠ#& 7+h !apu7fDbgF^z8#(6WQr[ ፊOŵ 恜йJ+[7>1\xs8nv~zuteqA6<6+J @_4Zڅ>覗Xzicq[O, R=7/ߒ :%0mjx^ްUu)@Za]9}))/_|73] ;Y­ЗvKI0t]Sؙ}Ɔg|W>cB-P稐w+xg{=KֽSkKeeJ+$3~᪀mFEM]fJKv:Q54Qh5H B&:U<ɕjZwpH֛/,{Ю&$WjLb6fe_筴83-h@ϴMMfV2i:%9` 2@]T;G"<v_kZBKʬ?s/O U @%K"Q/P?SJҘF=gDRZE0v|/:r!Y:F|qu/ &bF9L""\PQI3|/XQds|9!,;0OX?ibQWZ^#|}gx YUn ~xoaLI&@f>ĺ~1<,bш sDd3XZ^10/%l&x_\CZ8Jo&ܹRd"+!JmQp3R庮w@=S:UbN&۱#)PؙGٔ[q:9=X)OۃfI/.la;Ҟr/ЎbF,D+Lu'4-81(3QFֳk(J4mȠ"/fZ->,pڐ<6j=q]ʒDz76M k:fAݝFsEN8'@[̭ N j9YxsSXVzSWo喉`[|Ȝsrcss!]10 )5B@Zf/U:q+Se9 by *1a"$4}袼<) XI0%Pn^PmeZ"2Q.DDɌ5)lQoRBd҃?Iꄬ%:[O+MlTɘ;ζrE  pzQUbl|y1HIK22j''}):H5wt±BVe*-*H,s/V(Je,w9wTʠ3smG'EDc {*c7=(ttMնI8pMŠk2orT3|TDH|;tfJg*`!TXkAT_=~ =0)ľf)uK].ۧk(kZcMy>sy|֯cq_2͏G%@F`mL1z(q"fuLc|1jpDFX|ws%b'h;Got\;~F7)%`[x1xmL)DD0LAk59XpIRm4C{bh{f~#9I鉐0Un4C?LW.!cR 0 ~lӾPAO ·Ϳ/EJP2vb|梸! ->I'.!q\3uwXg)oHa,f(-䏗Yf5&xƖEh߅K}fЏxp`,KNۄ<7}W~嚑]btF^u.7 s[ɳ ו5*)*Wh\ oo9ǘG<@VZf2'揵o a* S)V+UiI5OE Ǣ`X/3rTxB.4'ogʭcU#PªO ؇ ,{y?pn [#'k~<GK/=:y8)|7z-d#9UQ_6jv`1yv:/> s܃#:xMRnI<%oڿ1CO$ ps^M3[zC`s.B+0~M4Hws[I7=$jruȮ׆iD bgvǛ]=f+;£^ )q,tŚYY[`VvTr+*$EHG`>%Mhi}jFylyeoB(.@K1.AeX}z7X6OK$| α})3O߄H!E'qGzK]jA55&toT4L,4;r?1o= }q&ŶŲi5ތV\P0OQV3b }~svJ?%/Vi$wi ]Ӿ9qulK[p񿖬\ݺ{같yK0CP05kM̫I,Kg3:@ﱌjo%9b姓C:OXV-b.fŒJ Xdȓ>CªqK'AkUDb2yDC!W^㔏/>c9n!39^?b8x3dc#q|x+*7?+*5x(߄V)/+ @, 'PжAU"$ k&~jA&ZFzue3li1_Kg;L䋳#0]fkPq> +{wXK<3r%iVw+tz G<#yDu -a$`'S0dIjbDԺz&n|2c5hR*ϒHخi/xBfc r3JC(w4ѷs vB$kq^WV!* o~Әe-;7TBb β= r VbxҠkycqjD뱴ŖCH3-KwXd)s<Yк`#: < bECB`;EvkM>.g2+Wixц+a^ :tHtʱ!,==_@ A^W!"FMlot҂ ><ףj:'=m1PCHa؊JV-O*Td=Ľ]ҦM?o!E| |GO/>B2(w]6e@ꖱʜW+o)Z5ϓ?faYpB]&0ZUs-<\]5l"wXƗĉ=>YQ*m Z[w}Nh514l B֘ȣ»\z @ax?*2aW0P>~khez3C^cq 41}gדOę vgtڈKΉh6( _:0[V_p@7|.G|ecTi~Z_"ub p!T՜oּb}?Sàw)|c43h9d_HD:>'/]/Ѻ]@FӊqLL͌>)r=33 nz;[Bm׋zG\ +7z E$Rԅ[^: %H0G\~ϝz?vbh@=:jٯ72\Y"|~뗻Ppta.+՜}z$9nqWD9⧍/d^ߧT1GQ g _X_1#fV,WЧ|mxwbr{l|[s[Iy@|QL%s-^/î͡<=jjp\;n)cQf󁪜_1p 4uQ\[pB~Z`.猓 X^}׳*ƮWYO_xUDf &Cp(Q6!">z״hp%x ;[IOͧ_kqFW ~xvyNɒ{S$+cdQ(;Yz +ut,E.o?,?ueV{O(Wξ~$1v,L)XJ;c9~l*׸f7] V=i&DJT9[zѡԜʂU&ƪ|m+خE{`}!,pJ}4V)1pkX bձW*%8|o`W?;13Y?p30c0mr!?#jA ק'{} 4mo:&h vE{KN>hRd1Gіg6ӑS?"PQrئtL'.E|=zPdQiӿf{jX'FY֨$ȽZx[ٓz?DUi EJGȮ"6=E;``,/*O qe%4!]#{3[G5 ѕZ'L5<z܍If.Թ4aga)+#m|r4a Q-X2L8PX×Be ڮ {{f.K [GH\gC(83P1GF?3t+3jmFLY$4+F`;(UI_ƲB_Ο)ڳӂL3"ѢDtR&w<b?Y=F(-l q,ٺ7տ|Zp9( 0?qf|l|0,@ઌNSq*^ z՞ӌXuF t)tǐ=v_{]j~HVZYz j0:rx UZY*5G2%䥮< %Q\sp9C+Q(4+m 5}~>Ue0*bډSXH|~,n˴716Y:wb',CJv=!9DjE 9!&A¡?g%U׾O"K=dQ,fI!31I_y-|>dz.gtx\ˡ UH!8){RJ?]jxg!`)P$%xÈOZ<WCEP|x$(DJ7O&dٹ$Y1x bQHPk[ }!#k+ZǩKW@}m;b$ yu^&2+jDN%C&QL4+dMrݷCΚp.'] gFdR^n$"/+@T`U]dEe`:n,?D Yka %a;32ǎ2n$;/`,[r7BU+ H1:~}?$+{OUT>9v"*y:!0\t4$xK4y7|V^|ler 9*+wIFP No{n11]Õ=k$;zA`x -2;=\$ݨ̇v'%W;7#MA!=W6 iёگ%MXA5+ TQK10S.5塿ي_y8hO6A?d{_&S橆/f6؄Z>L<{܏15Y{m# n\tz! $OWyY_ ^Zu$+hoBj7llo-e-Y1n7wuJݭPK;>I% 0"#`07-QJt@x gVpw@j0KWLԶ^30@aNy JnbTl|_6蝥>/DOI7/^ C [^ׅ#.*GyQgd7}~AKIFNoT- ˭P SI!p  s ;zD$)=ZƸzfW-)B1܇zܓ59V*:QWoYк-AZ0Qj `FROcVp>pftk;IN{O%W 9jxKm~knR3I>a>z!o@]ou#̤L0kbOog%UѵHEέ7fB' nv03" N-ߨW`JQ k`hvCu,tjr| A_e2b LUk oZw;xj!V|`{"2êhi2ڮ %[Q4of%L$_n+7t'nY,aCq LV'bJ?rfqiH^ iAo$rgއ <[7ո$ &|U"ŦqTh~Z%>pR FU(_$q7ʪt, 2\yw$F=:[#Q[b, P(+zl]_18AoNZ+BN|?*# φG 58fju7NXuMJx4W{AcQP燡{=I[?M$]=j+?uY5؆d( hF^q5nTE@\'NE/_@% tT?FJ.E&CIފXAjTpkɀddI}-pkL26@rw$ 60|ܳny`˾sLⲶ ~H-' w;{́9;#u1p5A ֑m53k|,x `(؀o&M@d{>jZN=O=d g8e?CG!%52V{mq~o<`C2MEQ(ˮ*:>{WN*%GmB8rOx U,7b-1a{HUf q16ȖaVδi_N?'pXi=! #޾g_yUsTTA$ا67mgF]ŎNCTs^8`x%[ȵ >_  ⬱ H¢'Ǽ#_8:qYVN@e1)t2jdž](H5CySx#떜R{0"60a5a5f{j/d[P$æy̘?V6Z]nV!ju S] `8oԔC&r֧}!gC)|j WIo0ڍzV(K aO(Yu X5%XƹD*K 8$>L,)JF*k?n/@? A9nFQUwٯ-E>M=^)XJ1~!f ݚ`E翓vy􈲁1hשqIiHʐs:~BjsM Q֤Aněp5M)v T4N.hmc#+ш&8'ЪZ@!+|}:(?DZb ǎv 4u oJ~Ž$6ˮUEhM3'R#J҃3/02 \V)4owX~DwKB5ݭҞ H'IBnYKCvBDsbmEnwOta'n"3;&K5uePmᴻ:`~xNP-*g,(FMobb͇0؅~klDpuI1%HE([4Mt˽O@>0j淽Pkԙ|ԝ|5oR4`ºN&w 4+U\VJ:Ef'IQ$ԩ2Iy)blI_ensD*:П9PS7Ӟ1 Y}w{Mnu鬒6S.T7h4wj<8-鵊p4j _1 ;׋#|`R Pv$T ͫ\̲Jٰ})b+XDrjn4@OVy`jױy7&e fg J.煂J;p_Og?G!C":1F5f} \t?% = cU6ݣHݍU(-LG>q,x/Neپ:GgLS Qn%29}zEՒa#B'~uG%knSn~dxBLn7ьe൞@q _^ AYV/\볷e stD/66=[*xB>C8ȅBC^sKZ<ڗ= 2N,BK5HЋtb ƥk'ݹwz3v՗GX^`%(epapB@r qpLd%볻;ҽl .96r h'OX"ZYoө; *VUU kFH-P񨆥rS_Є`A|Mb!RM]I@.ŨeW ϭ]\÷DWVƏ)i~ UX֌UBX]6ڰzˏ:F| lRl /*3tXX0Ts ɴO2c9koY@棱KRy{RQSsyFV Wqif7]w*UJ~W،>ֱ4hKX C eR&(ro)H{N#Tp ƁYIQV^I׻oGFac0o)4bqbՀqk^3hJqsoI6ʥkz1B./Hkhk")!$gH !9W+P*2؜0%)ޑ5(^{rQoقiNJ5k QiF,Vf˄![uP]ܓ p#s+H_[u; EHGrmA;Րi~ g&NPK-14rCh% ܺv~Xp-(C30l.|Ms ?<E8ԏzɘ)<.#̶wssxOcUP qߋ6gzzUnF,9^B@pz/jL5F17/h=i6%ޫ7JE]HZQ} šz;h_F߆J4)^$Ɔ@Q=1pT>w[{I{}2]QojN\fhX,p_QJ/Wz+ZtuhQty#"L&eaUl?'N<3w!IL:"̝ %}wlu ^ YCUU%a^ƌ7I/ziCZL7O}"WS" :,! *?rW1T˖^@&(&38A*h]9UD*egӾ0F;oٸ?8O \@%Jo,ʊk,froeCu O҅;9OO4L ̺.nt݋դR4bHX&uҧAiXqWTNc=l7eGm¹ɦf*.{LV5FK TCLc J~!4^">4"_"3^Q=kk $2xT/%b 3RiRu;J,>YQKPqgZX׋a8X!n+QQ9 {[QLL+0bމ]a=s\.2I'WY͡ PAP>[V1M(iCO84vQmC;NR/w0Ky\.*w-.Za0pZ(`sOM]+n| )ۄ yt$*0glZy>W jXҴP+]D-_t 2+9ՅQihoFBfZ'<[ ?e4QuY5CI_u{xYt@4Ga>3o7y(o}[q۔g&F+ Bb prNtS i xR1m%Pq5d3ܚ需5h7, N"͸EIܪ7υaU=ͯ<0iT(\ 6RHɎjmIƶ 'ɋۦurK+?_IŃ A?=`$Ll>3's.$'7'zp vE\@r!(aи1 nL>}Ci^mpOWgFT & ж૰%TLG:J}k |Gh|e NsćDFR9z]X3w-h#8|\GSe/l?Tz3p &&v8$q$91TPӰ?+>C@XSmAD' ccX2GG];.*fs!e@Er^xidv{6!+/BJ^"t8#H= */IaM,jY#fѱhJ6 ʯE7g~KmBNy? s@l: PVd|g7mOiөG@,yBۈ2j*rKm噔WLe ,-Jw<3=?C?}E"pR\F~쀝g soaz*{l@z2VąC%[䚙0gMbSγ9P.gh*XB\.ȃ/cv!$H3!lӽK6i(r`fZUla GK vCb4YU={_R3(SøCyOԱQ~W.#yr쉛eRqmxQ4RgF>qOծ:Ww .𾖀5:C+lǔ .ҽ;=VIERsMQ?B%x=I1=yQw@vSb{~#\oy8ESل ʲm3{sRxK앹mge`W #.L=EOg:p cL"B> - į i2o" #6V9ONIN+[*"ˠLÎԣt;/,P63R=/3iO cWċ>?[Sf5Z>2JDL\ԁDoQ$[n]eua@̻9}kz"-8j*X[J%q|eT9 tItNUz2W,#76PdդڼX _R<$F{hWY|@w?S]$N<ŐzJrIa7-H; teBtqnªme^0KVIޜ j|7FZLpK+UcfνL.Fy2Jɏ0{#I&f[籾l͝d:u{%sp̃W j4b  sх KK͡f}f]aϑ(}h2|6;_MKBR yc U 1j6ͼ <UZ| d3~n:cbr#!=®sj wbisɢ3&IcяE2{^ax4@3nbqu$w2~L'8s}ԟYrM{Jn&_~C|'g><%Zܒn\۴7G&u-K> -}x) A{ݓ0HKf_"la[Nz.`}FP+,c!-'5# 3[_EI H,uFÇmSېtpы\pLI?Vd#]C(MP tSj_-e|6VجWRQfvenR,_9o?33EM [7zTٴh-cZ ~|W8 \ g|#9l'C>Y\`Ƀ}^~=q͏PPүz9$|]oq\D/fD핶njHM9V,:bPkBƄ⩇c;N2vUFf*Y`{$^K]^tZ~69 Gmh ^SZc,Bfn|1Dv6׭lPiUʷnj"%/\w?$ӡ.'stoM8`\(1n]^ :@lsjKBMpAyq! Rc}'X$GVvjj'?ؕ7*%zn8P8zh0zK[ybEO>32ceY}JF ,k҉QP^M/,7Dž$v-Tb0AWF};#d'I@1oeߡlyo#Q*Bi!O sKʷfLG)û_;ĀmbΠ Ws$YO+].½4C?1n%ÿ>#x.D5Ua'$Xǟgv˛ecs97xvQ&4AADOBa?KiMm*8G)~I>>7~ `i0-d ~~Սǐ"G0K;Ҿ1/P_^8C!9BbC~=(큟;FUPtckE܃D} ZqG`j;-Q•`i^hDwR lKqn u)u1ir(ܞ̔y>:`Z2*Lw?v>0ueIZ#bܰi=O& |pҹ;_Sm.r-oKf G3ᖣ0R^Ԕ)4ɠq;7: 8*1\w? O%ͫq-.qdN%TQxj_dpdO^>wɁ0Z>2v3fhY۸&s僗]R? DtpF1@TIg91ӝ#k :X8PS#P 9&94. JeaiL|MwU)ʄd<;+R;qk#D+r!K .QC>s(6czGߝP"wc[J5Rpw+$)b3|rHyD(M}Z we|v7)ayӲO%@m#+5  t}^' Zz\Q.HiPa#Vj >б)Sm|$wN,"lhfVg~jO  }cXK6jI0K?\:4Uj{1A(S|Ʒ/0eJύ %S2Bݱ˔rZ)%.%*:̸W={ת؀&\~.E8Ygs9ajΕTd[ڷl2W.$퓈5a ,qWc0Ӯhq #,F#4۬% ."q(xj?ByRBH]R[j*-qYK>.$1-acT:B (p/ aG / Kh _& F2l+L{ ʍIݣC 7^- ]V_^A1fM6endq01Ypnk!6u6p3@ FM 8sZo<95/T~6!Nbܨڜ `ڹDeƩ$rY"dKӭܐT ̺zpnJw&.Xd-}K:AnUm 3 {AN4{v"E>#Db7nۅ!X6b x\~~pC &zg!#,3 LnEg$6C{EAņi+ E͓vi(*0n*{61>S` =kChzDxzҶXx-A`liLT s+uEfk+}ܨwZ㸡Q`s12]NfFc3ƾQ& v%IYNo~vtG?ȏQuWJC .FG_6m xy~=$XaUB ">OVՔs2})Ii ov<K0qT~7}5"RIAMYM% ҏz, 2OŐ ff]p7u+>5aĔF?$B">iU9L ҹ6SBž+۬TŵD[5``÷-'kr|71Z!G{<;h'磭SB|ӳ{uW'S*V734[9Ga&>a;|nmk)d݅K wpUqkQu®ӄn&RXp3ϲ0+n1>8).q]wPwWڐ=tQ7Zy+czئ$!M`q)T;.{t.3Pg y)@J9@n' Aǿ`%(j`$8CPa;*9H,x_ZM!J#}IZα=F $mmR7'vz߆iJ.LGa|E.E 1|+9DBTPQia_7918+kkGIFS*5i9OQ%ɣ3(X4ɽaYPG^5H6̕H6!+R B$Nt dQ˚;5ϼ:ahQ$*0@x"Z! !eV~Ufo'jEj'=;EȂreY`X;]k8%CfOJGӤ=3!O5 ]ɲp5^Siɔ |rժFY'MzNw<=S8r裔'9cvyU*.-Ih`vSy{%Tঽpee 6>(I7@#go,,<<{H4Z0J_0zS})3\4j2 W,J6GRV?20}ET!(yEaAM5a%sXm{Ls L9>tjFP-ݴb=ef'2 [[CƁ;NP]-I4;wz vIw#lfeWft^/ܘm,쉜/HҒ2Bz(76v,dCHu_PS* wv&ӒaQ0JV_s ٚp dL>6aFW &KyReȜc G%$Q ©φEU%rן( qmn } 1, }<&b\X+E7pǮH=88#0mb k+bCFVċ Aޏc;=Ϧ%Cv@wAty}}RqcEfGʒSZFFǓh+N09)_hFn9aPT~nw_4$pae|"' |vb"2LŐqpUW~tFuZu^x̔#wAl~:+wf1V3 BH o uEX^]vf_ ļ,D!O kF9ӹ 'Z\+ݤ TL%zWk^ 7vЉlfP_~Ì@@ ~ñ?5%zZȜvX''|TgJ~#[ [}@ȠPZeOApO>q3t949B4CR>"kר5Wڿ@U1F I.ka"ȖSg"ϨdTR{bHr ŜYnAJ6?ЁD])f? Oɫ/kU&^qraB?070 xܧ & ysPFS xb, Eht 񄷙Ox1vxO ΁ۼ }2fBf”ҹ[ :&Ijcpcү;*p炚!$/zpA|n\0q N=xDjHF`ثX 08-*T,/e^"w[uRs>iꯞ@p? M^-Ŕعs6JwJ5S8uUt_☟$9{ؘ:3LQ(5% ê WO(ן6/!x7]Lrvy86:MeM<2d}[ #%F´Fͫ,X,!8^t::x;9UXjHݦpql8C|~64`J5߭& pHaBƧNMRLfV0pD*䇯52h}=\d:C2w8=o5,6ۍ^'7>7Zd$;ZF&9` `e'gMֵDEm#CB8LP 1~u\M՞81Ch|o(-=2u?0@3cܼP#CFmUi  Zb&߀wA9k ֖JJ4p޶)NV'B΂ş8RphDRybF_۝zdD+GiWF VV8QwX2Ad8%횲>Qp6_9<JpÓKߙ0cyت\\N'ϯtyx]s^Jpgr.|e.Fq{cot=xgS~Ǩ:p-<4o|{@pDחސbWud BV<Jn2KzJ4;cpťdդmaO[p!vK|GщcsFG@[ZW q>'1mՇ)pdD^;Bh0BKZ+0Q\)/@ 6ٞe6r$y'QZܓߩƵS7$rM-U'xEEiЭ}6sv*X=|S)tDd9W&B?SLRܰ*lBHy-[6љC';85` H,\a-!H#+hleVqѾ9KA{x(7-ʷYN;/ H}D& -!S%bFϒ60ۅ}7[bЍ86։-G 92,][zC)2'AL˓iMų{_1Qk@V;5Cs`9,,R$E*񆸇>+.?G5wuڊ]#k>D.sd+ 節-$QQ94ֽXfP}#;j{ c:B13-`\B6Lg?k%@qXLsKQXZ$D ɺ$D4INsS>0t.w.3ORv}gH3߱Gu`)06w˗[>*,P5gƳ4`,6pHvoy#s(bH{$T˘aQ`j5M1`we߆%L+ǜ?=K K3`e>F14bfTS]q'b-Pk/{KQq9s r fv_JѻYJyc({SC8=BdAOc^(?]JSFg?km;xO%ގ] $%Y^I`b]YM*IӴ@2?\P 04#YR_6ˍ'uX tٔXa?D^psG Ѡfr%N9;IxMo4b&n+':!P2n4ZwCEE!82yv= KWggWу?[]b7ֶT$n/ra @%z(/] 6"$cPVyKf便QjT$:isej>툨͵ìUhֹ sXdKF)<ÏK帇fz=ל4aV!$RX9S|B>ԒVCY3ۦx]]|ؓ.̜:+8}°]=8{K" '*Zǖ9gGt0Rw/F8d@0SH3wZ@bh*̈́fT_uzY"ʱʉuÂۿD3#3 K1Fvq krw1΢WpѮދ j$HFA5ߦ\717u=Zč&)ZG\;ҹ[GVI+@>J֧EvdA -t f"X /+eyC'Y6˵VJg/ZU 6Âӯ:5,UBgNQokFF\b3zŌDwyկ]:WO.5VuH|j 8 PyrlSY)b+AQĜ%][#4t`S40UbJ(Lj*7' v UD|3"oFﺹ|U)m_tTfRV-O;Rwl_LsZCǢǞ6i;!&vħH8Ds*J7t*gZq`۬GvQ+0j(Mdܕ80?WAL\40D R>mҡGjLk a*Rn/K穠Ckbn 2ai[: ?".]JGM 르jdݴqLNf>wُ!?ؽz-YT7haq̖b㏡u4W69zLmiEI 0$bLʬ/HӨCWbz6[ᵳ:&Y⨧xxLGhOu)|IӑE`l8\I(3  ?ʙiZn:fcRkDƮ{6_g/\i}Ώ7(Ƃo@fi*inJz[oCűb5ǫnW-N,+khB[| C_ך%8>mLłA rlU a3 Ƥ!pIF 3xv?&fo*ARQ ?|UET,Z-&/r?XxFCt]ms~ RMt [u+c^x)i&&Β0UXOr(WgGjLk `" @#wixQ1 p>f^PԢ*o Gz M/ H9jT$gId I.>jqXkB@h&VX֧YsoHը[t eR@Nc4i"k_~H]{;KXD1!<:|LyrmT  Kbu0ŨӮ*IE8\J6B]KyEM#2;D"t*JGҁZϞR8}^,(r3"wQs'M^AC2JNTĎ]Q^ G"yAiA$>[qŲ' m,Q:L!h'GQ Hw`%oo3.G ̅H|:=(S3KE7D0x >I4  R,E3"}tН'9T}3WJ(lTg_8 d\a]劅NLD2B'b!6Ui'-@["_3xk[9kDm73\KVJ痰ષd+f1ds>je0D1n\um#( (7[aOV pA"^ehson +9_a;{b V>N+~S`tAv|؜;v jq薥+py5Y :d8 c܊; 8:Tfe2kRuy_S ZXa wp]ʐ"_g"%UtGa2 GVC)e3xD4~sZT T%ly)P擎HE ЎT9M\bBA|M.ԇAhU>Vq-g1͠hM12~! Q,}o6)p)Ϛa+<}j;@:E]:[DAqknSoVB, 3FP)hOݖu?coR `2Pz!5v0^]\iG!CkUT줣p _bࣅ;⌙| { ˛D9:G.fk&3SeƆb.-A SXcG\d.WAEW{bNV3T%&_ U\ҽm %M))܃ڽ )B3{i1ݞ_!Q΀⹱ZWO+~FowS"*T2e6s+I PA]qJiPHPϹc; &WM ; k( WmkMUJ;!ZYͬ%4+PJ-*$v4&iqbBX{ҭ a +B?з/<>/'W9-ʃ`=E"Nk!`Em*(aS>++d,t7IZO {pW[w!B9yzN'e~buWjJwAH;҆: "#?ɆH\C)_#V>*fuu n.%č$g! 6˶ WB3:Am2phҚ= LG˜p։XJ%pv%H8{'7iyik\E_s3bn!-d}%p?SY(ʼnzZWd9UG>57ڠUVd\udQwZ7_(A$L JnJ^:ѱ6<{P= D3{ @-,*7PLM?=|m sV;Q{Aׇ@X-uUs_+bF#Sڳ %~ D{W+w!!Ec۱̟?„Œ#(F ,<0fTb"MEv{e=\NHT/Cs sydAoOyW&)L|!쌫#Jᦰ<<)E{BT GtR;ƠZ$)%M"΍6F< ڈ p)X`ō_mrn /~,|"Vϒ* rHZ7.MG `& E}ja(Jеg+CxDd,"K=8yd%~~_mg }'Ubݩt㾐E {]C1,!%؆6D@ܦWA!aG(ܿ*2G M22rLB Y: U^::tX90ſ:r.1\aV=c5uʘIe2+JypCS0<^xѸnՙW* m5^I#]KzqJRbӮW |H%r((lH@Zgl ,`Wr ^*)s5J0wK~E0N{Li5Pm$a,5$:NcҫVcX]ߥ?gx)$h>Ln5mNn &7?NsZ'Օ0=3V1"UԎJxl"Z ",AN Q8)_љͥR%n$~=S]診YRQy>"*KƸb|3^oi3*qYol\sHFS gpU #~,%'p&yUw3%ao>_fsm~迺[͵'@oٕJ1%/ f 1W3Y$yT}2O|5<D m2zX GG#"{}ۙ򝢵'lE(0Su<*BX!ɪM": &p;^xϑD+3fk"zo#nXbZ_r@铱M@X11nYe :%qyTOb8D*_JO֊Y  [*q9<ȧ3AIm?YFj4N8BsAD;}W(px *Hs ; DcumpE/x1ҋ8ƎC2k21jW7Amê~HSw<+R])t2YO`MBjg`^Vwݱnw_XH:TωLtE{6Üv|ǙB>gAFETZwb|n!7-+Mn?$O$xC5sĥEs.bă%c5$_:p?ȣo+7/GZ8l/li2 M(w }x{@w='uiFwVE bPj- >٫i:\<)]&X"3t7'B{`E7T(` Nfg dzw)k_*M)VIcȋl3o/75 =SC[pRXܹDM,눕P>MZF*.)Aƽy;@$F$:7exL5?h3&tO_'F1Xmp"6녾LUU/4[אevow”׬+I/O~(F@wHlCInj]+/ 3Us؜I5=ѷ@*$+sXV`D+2HB8:6(r9W5D11+ Cw̗CS,5ʁkkϕ)X'F6BVj;Dg=>{6$R%>^ S.WdHNT^1ÓZتl_?7w]v,]mĞ3 ,etֿ\7@6ocO"\a V&+ H[1.CR-]Eح "n`z:^5'zTzkɒѝ@f*YX ۨ F9 o tUL9 \y}^\2CƝR>$P㯙جO=bgr Y6ZOq^6He('qOv c/fC 'fSܩHK E1$.ԘM]f3ghHWNcwT*fY,G66^Ի_ALL('xfN)%0G"4pdBBުԡHnP2GqyWV|{. X')euq8jrk )9q[MH+._f_ *0z5() ?T9=&.W,6D៬w hB4\Q%bhK0<X Ւ\^MQWK6 &dW IvRS\<% $x05rjT<6xcGt7Batpq\:A% C\_\X9 =>HU>KZMD5YEĹIdli!Ei .ghtmz0"AZXʲݧHTasپ7 Z,DAV^Csr>:ig(h!=Xib3-.V; dwY5;c 4Rl n9?q>K[Rn%Z(kdNr^NGk/E\(cbϵg% g%A&Tr5D(*8WvSKtkj~]Z)ni( \O(|c qe{sƸѣHْqo=?3 aOu?ډ7/V1hU. c8t'=8N=NWsOHX~&dvjӊnr&¦Ln}*`wv䕚TzC^ rq)7+f'RT]V;5J6 yN5 6o"juYI$[qbÁxRP.P%4Wh/fiZ/)O/UQ}t]{Фt_`e6 wcK G<\L9:}ٳ/v1'Ì#mUru1t!k@wʫam=+ iIzahBOM\)}NvNU*8͑voC<*L4CH:/-kPşKʣ/pb~KhQ`d L ܈.;Et3_8aX(>%kU]%Ǫ@8%#qL`)~U(ʈ1m9GCg뇻CrP<Z;"#%ez3YT&5@lkdR\{GC l Q\frpJOolC_EU*]n/ ӳ\.PI?8'qH&TGgVi|'FQL zP!$g(5NX&& ѱ'=U@H1bg ɪʡ4̘)3W8/f1NC١M a_0k= <>(<\~Jh ! "; b{@ ]PiW.,ݓ&-y3T>(=qeq2 z]!B.Ԙnh/I'.ƓU_+\U>D$?wxƓnC3dĦn4YL=yQj[}|L`NMiLYE bg:ĴG ~xb`F1*ex7=H-;o(fD5ȍx5/nz,pȷ[`1.w2ȄtqI!"ּNP͠P; 0U"!އ{uS& |PzV'*-"+#P˟";.'W;ΊeXcJRڿr 0UhdžgOn6;&?P!%E+&eR-6l`Gc1b( O$FU5ňtk,J[譢L fΦ\("I*䍲ju'x;Wm30[ cԈ`R*Ⱥhd@NVxǿ1~!ˉ{g27fKzFZ%88˜"0'=H/-1f 4P-I!iV/\kYpH &%Z`~d=߁>OUBD-EN4u<00 ҧ{ksU| տ# %`1~ BZϘJM)"#U+.Cnx2Hiȳ`F}7c? w{ދ?1ȧ)4L1g7%$;.Ĕzd+] wEVZ#^:0H> |T,Mo68 I|{̨=NّX jhozgR n}C&Jɗ+ɔZGǞ.R䥗%clRmOTM/6tsʱ~IqI< S3'0HBmEdҀT_i3S32I>>%$. tc]p,1o7xg&$6ma1f$<+\4IzkH/M8GsbyH ^ɬk5 .5ϧÙ3e:h<܈RY)XPɬ:rP䥖&3BiGJT {03Xo|CA E-[,%5pŃ `(Y$bQ'C _E BKG>H ޣEkse^EO^"Uzq۠z`*x8 J蛃?وA Q5a X2$l4@:>;;k .Y/R;2^\nЗaEBaC;"'3`9AsXqUJ+*FlХFZ3L]IͽbU(ڢG5KPC96ؐ[fFonH?9\T[M#\[zzq.v^ OVhcQP?(^A1h'UƼAgO7 +cusr* xyCRBb*S\Zcr6IfT9#ϗ˞ӌ:*7TMJ>KQTh}mN^LpVs,/I`T%+#&kOU>g =  I)ޖ,D7dɻ^K ^*.m;N7lK 24ir|-%ٕǫ^g`%U'W,0W7Lx2$@ lօolpռB܉2O[6% u Llj 42/~{(1PNw-UQ|\^{HHŸ]صmɨe;*0a,oG ֝q yL&RUF둨ؼIQ O$+<"l]H60 {Ezu|WlFN{5) GxN"ibJk#(cguuUȀ|]"ِzCqiLę7NK ꃱoe/qVl;q!ڿo~Qnn1Ɉg[zgQ #;ɭjH֕ZcBgُƮS(2gMF-^7'ir+Hz.z{uR]?Y&CԵ"^zm_y~~對k>[8֧b,ݨǶUY+P^bJǁ`)..]xΰEPF]TtIro`~(wm\=t.(>}lu(YDBM&p "|ɳMEZ1y.7@y/ҽ?1(B G?f˙eQ.SKfՁ*>AMG,R7G o)̸1{qbn+i<*i alz.N@t{;{|3r%[ 7Dʾ<#xVi4|"N" (p s;p}w,g6"RrD'ӌwMv]Q}Mm/g[g!K>6^/o@RRBPsYI⾬gb>/:#q+Ǩ?'WcIOIʺƑfm1_t=Z Ef.Fܐ}  CNѐΉ ywf :g«)-&P[3^2[]a {Q|aOr '!Y@{J`8usg[5rE:B` _\8",1S#+sи+n>*G(F&+J)i+s6&',ފ@;GIV" 3 u+ 2uǂWK^?7,uOf?,*]/zs:f,=3rYzl]J+55LđJǢt\ףKUP<3}Z2[J6~'`gWb-iXl~]Il@]7LOGxV^Pإ k4Lw~xKgl7?FjGE8'Dm|N< -Bvv%oiǒV/R1f C'h]/N?\jSmGgJ5}UO`%JEi\vACuf~Jd{:"8/TFBA\1L AA=6d2"AWWߑ~9LU^raL}e@&t')`hu!̷?>TGFW G#;= fC2/Q0WV̊?79i- c뿌#z\<1‘@Ϗ,akp! „lt*uly= A4Զ-aLn% ;-9KNoȽz"ԪvrwWW 8>*4j[OEz ꎶu6)\C1#D0L[Q"9j*n>ip cSVn8Ͱ=-K*.(A hR̰8 {9rhLJhfӨyTooƯ^ۍ`jÖo3,jF >$'b#֓6JCɮe%@%Ҥ+i5HK3NWF$ӧw, cm?9Vh`u7/&cqy?!aFwn:㴑]஀`}܈Evk%!8QKکɎjOʏ[]qƁT F}":Iq*^7bamcߐ@ul,]4$L@.%Q1} I,(>)Fo˩٫bRZ,gFgYu  r o M7fM>X`(9 x [c,+[8A^̄ :IF %w/ݓLZ;$f24pX=cIK M57ډR aU36lkU $3@#+v"HjlSe19!J@GU׆r4ASo׺EGzqPb)}~raea-K ƅN0?:I ,0T3sH)}IJ8 >H"Dã,06b&&N6F@p$Tc6C1BIsY?cd'k"om%E(- ~I&f\脞כ];g}6;Ho8.ϘgJ^om97,tYJ0RA"Ue>$[;3DVYQqꗢs "m=2LIgp{U3Sy6MS?K FpJ|Z'x Tw\M*VlSi .EENݶ h-qiK+L@N|?v-egї?6U D[ojh=79v[kRЇԴ (KdK )A2~xkV3Xmtpp=o6VST[=vV;]҇IUhgV7o?c,_oJ=`(,HxiH}ڼa |N4?Inj+$T; 7 AWW8x*>.nTgy5T]=OD0ialH.lNG8^S)6WJ=&a q/JinrZ]|r h(/,`3; ~'dL?<+K<;v:kJ h'+28"QX[etl)Id p+K0X6%&+j.n>O}r.S4OOQ _ɡ׋֕Q7< )%TSzpO[xCiLʻ7g`m 3`KX@j) 1d"S b.aABNMhb$[kwFnL4]YȚZFG{CsNJ}Y!QҜඡHP*' 2<Ӷ;ِƘg4ޜlrޗq6C /b.5 Tm6ox]'(>!2pdz d/&hcg xmK`yY%R܋^JjUār818Ԓe ~hnb[;gd?r s$o-G, z4:8"k,ꝃY;"Gp,ugv[P\F5s[W'n.NW/:ԧi]@ ]6:ʖòNZ=\(#@kvR l)>lx%JW `Mȃkܽ社`6Tm<;ܾv-g,HmIS&"ʲy&y Vb{c{94k? I_6e4nԂA_-~T  ؕ ;v8VњEL;wa 0\L!V̓' utjwZՊN w7ODˀ&bmp'8Q rǛ " u sdձB)X=Zɐ(?tQ[UQ_0+X6z2F02Zrg'N;|+ R0Whps>,Eh(sY ,ɵ\y9y6C /@\/nnEhtֳ R3sh% gze^Yz-}l-Tv}m1䀟s} 3F߄TbuH[e/Qhvٺ3FGX&y{} ;CU#*V؀@ KnC+#tQR87aCn`faøM38<|GzSO$[p4I=,omD6͘Q i;\sh,aݬAk!8*>=B֭72D:w[ '`\K VJnL qNx.6rqZP jwXq X]re{UL P"ksMz<5]xI_ f4n1i٠sX*]Il֪]8V:Hja{)Uw+I6;Zc5mvo?cu,+ߡ/vBz4#ˮamFd{?$`%em_wcKUJ15A[̾sǷ\pOiQ!1eu#ᫀLFE56Ii9<{MES8:~',iϱx)n#}lmiB/ p-co;%0mbY^ hN-xZ0W+ &Dә~D`8č`yieae}rH&m>9dʄ$3D:&&޾@!7er\TekzrIϩCGHUUO="FjG\줗@m AcSmg򛩢NbCB b)#}Mܕv%?Io_hT"_𚿂Ǽǥ>VJ{lS2`6BB cS EOYZJlgK?Dzƈ,E4DS4Mt>Rb'W.YK9<8 m޺v,ahwKNt.5FM hDӖ967}8ulנcK _(0K 5#vT/. 9&vVJ"'v$wIDՙ"@Djֶl_e=L3 ws/>-nj^ #L: u.:C6cBPC#v6 eUp]It-|%uY qͺ}4r#1 $8AqiA\&6N#]E#q+/ ^90ho嶣Zu<"nT/p[=2 "@JyHxsf^ }h.IU4jUk[1x23~7ZQ|܊/x" E/V^ką|3Sq5a7r߈ Ѓ1ea/Y"I*aV@#?5يX}j%} :VkD" C\3@{Hz/a g)@ԣa52!AM4ԡG)9T.W "KMaHP\i9|8-o<`U54ȣ+wcTLG][DJl^?7Q;:dTi,nLx=]lA:2u{ Pk>J1(wd@=726&֬/r0 _0'Y`0wRpĭ8ܺ@tiXMpq}PIDy-4ZW b"!.vrxJV. ;?"O|+e ˂)1ٷ#8]HsRI‹;*BI. E(U#'#upܮ58Zk鋟c湠ZRLWdr3NNECknaP[, $e`fԥKڝIO!`N YFT:mmgs/Tu^A7P^ё~c~V O-9Kw oCl.AZ&]'@ ؼ7#UJ)7d#jtݦRNսA^e 3T9%FQamI9 B3sbYc.Yזrud7Br'yT7 @=@sn8\t6nF.#P{:v\$IdYk≗o0 &E)0%Y_kb7L#թG3<$6liZH{*hf4ʝ2nF3dI5Qg8w^(MK> wsGTC=N-i3 uI'~A%LX&s[j9A8,kgO/X؊%W9D1`!, U~KB)at-367^R)m>Ӊϣ5sE48!R[͛Ts@7F;x^ve:QM^'?i` Ra8/pڵ$x|$$ꭙ H)nyc[KpIw~(MB:Dh"bê9|:W#6nm .SR:m&WbGQB-S7R&?/> Mq1Hu#B+_r *%( HL|x W9 $_;|ѰQ!$^F+A_;mKpкGG=⫏ZԋJq]i<؅S,8ՕBl'HC+^ƯT%rWƉŖiV5%G 9 ̑PaORiFc/ j|_⥫c%rИ9)DFTUOuA#MU,Tp} RjP9 ٔRi*B?_5+Yb]̢zs=Yc@.r,gY?Xl?dI"l`>/qër(hox i%tzfgxWΌir$pÛJhw%G۰кG7f7P=ʆIv{KD 2K94`3e 6&HvefӰ`({9'b~I=S=P;ׇ݂ԀsWaKT$]w7f|!@WY{jҒ2Hq~10zca۠Їaz̯*\;)pD Vli\1& "|m 2j*yGЬl}c1eZ0AQ9ijaGsuIFdÑrq:+41N~/LCd~4JmK%\T6DaY6:2KMѴYs=艁&z"h[ ~񥍅N[;{n+iMH#z4枾4Ba=UZ m ,F"I$=^$/nԛ0,nHA8H5'}xaz>s{xOboD<2_̈ ih022lr7'.f/u8D-OhQ~U湆9Um2`',ٳ¼'v"זㅙ !6`j2JiuboY%Q/(ƇKr:A2ǰ|r\1+~sqL~7OوAξHWeyZ63ac귽uF+} n烏gd&9Z{Xa lLh_@KϏ{#z"@EӻF8Wf_#TXָqM{1$0mE8o7'tnM.1-0/ai|sy!#}Ao#x8 hϞI^kʕe}R.d$)&iUxX .߮@܈n w肤k90x h`$LIemS}IcI,Py_Z# `H1P, aXS\ ?milz4JLMGyRzB>i~3}|4p}ľUS gl-ToRh[5^05K"?wW'$ K<":,9%m4~Tsjt&'3OuW3*^.Ę'.M}xMi"X5 +]0ٙJQ|޾DnnhO v"(o-8DB=K&fٹWi k{٧91y,Ĩ[)N2_jϵ|R|=溚~'hI5$$%-j /[\oh Ц5>o> msKyow6Fyi=y/uy]5݂==Ob/;X ԗ$yƅ NQ? )}>QLt31J% ~pRŶt {>n(tOj$p}&s`f> |+N&mŠN`}}N ,?`qJORیfi 9 #YnFKeБOq;k~2}Sg!\7zt8Fb 5Pހ7lT2gfLn9XA I3Skn;<8<.ARkZg4dʁW2u):%U~bG7>_W-=ڍxw}iP(H8<1I*AZTVi$?xkq^8RtSa$r{y` x-Wi zQ<[ϓ~7 B"beIOㆂ>LJ]&d!5: Uh >mGOUӔǶ?-ȧ6-Sp`\"5M4%gųwuc\g0r>M4 Pv%UXYi?RwgC *sS8$Kr[| 3id` tLVePRYou θCOr6^2eh^ X*%KbH%u{[ gf/H 8F ]AO꼡˂^~@8 4XD'^a=&v),Pלt L j( 5[u1▥noMJ&%"va7RJ4mA`N4:IF~͐d-=ZP*o0J1 l47Z#kAD V]hR֍PcVIvʺ69PD޽{*kIx)~'lQͷ=27}{=6}B(OE\=-B fylhCY3 mM}1yti",f\ _WÅt\EWg@PF FxL?tT L1@z?<^QR%19+H&~$f3uip&+=<)<2Ef4R[]m3U<NI`/dcsl h8"UlX4ǁja5}6m3iQ;/.&ry6_M6VqhedS Do*}ٙM ' ʵADaQH-$~lifO m["x!qZo_hùDP0GSMU\D<'LKlI3Ov@NH ÐNAݧZ> Gvꖃo-yka'zZiAKz`t;#АppC*$x-WUqJ79 S[˒, Xm%<&YhjxKBF5 UACA”ie׿˿;͔#.`6%#cȽ䴩(=04܎ Q+ IN˙ Nw7. E(Իzu 0BMxdi}%I92a3Wb Bñn&vS n{pnϱ}I85֎99Sf: WaPY=".ԫI~>PlxWLص*=i ˴>ew2xKO?t|>.$y ΰ 1f9N#,Y4g3!"T9nqV&^KȐ8LʏA'fSn<.oYs&e|9LK mTG5l+6G |>{b tݡMb!c48)K ceȮ|CEOb݇Eoxhr8-y'A89\*%ƅU:mϙAc0ՙ$yeh0@EYʎ 6b:^DK> e\g 2Z"9҅H١ kj(j CD`*x5Obס +buAhT{zf WЃ%ܑN*jg 04MZHvtžt駿?ʹX¾M<1fqI3vlAW71V[Ԃ&7㒜jOhGI4IA{jCa̝4}[BL2rL@ɺC8`Y \%RNgq 5bYf?`FhBzs!!{vI TۜRU9VD`acE~^X7OLL jwK|k~&{jqbbǽY [;Kڄ,4mA Z.; B]"6y&LOK^ V5`)~Y 7"^og'XJnw` P Q9$ـp#-|f3տpFxK~2_]]|7ؘ3&dR_ta5.9UWk(L^Z&zO޶ F%Rfu sh_{-[x>+e=R' ko\OYwmY7ڕVX fzqn r4^>f9/7878(؝SU #\/ߤ$w?ĉ 0l>IH6OõqKk?QP˅F$yLEB< FZڄ/-vH=ߙ9qSq}1^;\y[%OSMS~%Bչ@T$nuoՆt=,dw[x$E&|01?[0e!׃ޣE ^>Cܟ&!xL7C_m1ڢ,E]FvM;wa]+ȓm~LL a[}`lmf ,SMue1%VU\-!rkLzf.t2#U1g# ;s5[B 'Wn(kn},W3Cl8گŇ# vi~9DuDWPaOLLZ\еgxwBq`n53~h& D0ɶT6᥅7$T{1sqa~hT)/_R"+|\6"੪Zpi޷h]ײ2[bG3Q"^ `B?IxM3<1XKtjEGq1r^ }}BU4G/GHzH|\n 1YŲQg)XA:o>< Tu A-xOXNܭxA9J|$G3G+9%F!`Q(+ΔA_43]Kg5Xa$dQ^[[ކ6 _c" q -/%wj? R7M*}a ] *Mz.Ff $#맅^VN "d)zw$hPPO5]KvqrD2Sa 8+@VAIphz+HBG5FeuBA {n >ݿ%}1HG+CϻI'8$g]l!uEQ/cbvLNY %oFSO /}N ^/(xhK'%cz]ń{=j9\IZdފK}_ zx-/%{C .{7b5㟧\x3\n(wZ';~#\+]{PI,Z><5G2zy0Xe=^ [:϶-c6}K [J@;hGG2}"Rp'j64W/;v`SqNV(+% "fB ތQ#xlFFDUsNj&Zɢs' <(9RТ uV8E!vJS /Ul?wP,/ "621d~ۿμ2NMD;pyӍ4L#7 ۤTD|hJW$Y*l1>0PG`DdDВP۝@"NgqA)Kɝ(O80~oc9V@*s֡+4T#+?oК5Yg#2=78.e&@Jbj|aysf#~W,4hjHuu⪌dL=9d+V|~ԏzÀt^ؾ_.լxUSy(󹷂-H p:w^D, Npf;y],'Df $$AH$Z W:τK*a Ԙrc>؉4eMq迆 6+͍@z\Y}@Z^O/@z^[<$3S-`RAC$a $39g.H3 cHnӉ UJћ)Qƈ|/Fp\dVybZst@xIM&}U^#6Z<:AtsH/[PUH&n|&iX|9)< {%!-; CVW~P}>6n0K^l" K_Kn[{]yՕZ8 Yn( dv+LTqv2/B[7;/JwYxIcI-\. TqZX)>2lEZDD.ܜ9k1gEd=6Npdq?Pf&RۛΙjj#sRkSB8ьtzn/Yڄec\˅:I,=ԔӽMOFc1RF%so6Vf ^Dݑn?d(0A }:^oSXE*= qWT=j:H2V[)m SJ ^ۊ_b IBhR&DW C#F! @u*q'`C silzɕ/J|茟3c>H(y/ E,oNL?٪g7 0o)O!=:? htEu? d5'C'h٦ءO~vcf{uDSzxcORs`;Hw犦ـ 6g5_qTTHK$"݅=]%6g-clsd {oˌ2 *sވd6,D,n7i'RҲ4e.InNU( Sau%@քQCG%b{׭&y7.d.RZ_;?R 'c|*)ECkܠtU9dn :|N$֩w\J Sm&D_Hir@1 |Fdu rR#ToiG.!{.Fh䗽%˒̴v:- 8 0۵'`0='fJ˘)F$.R3,e-;돌JڏT(a˜tt.pw?0M"|FCYʩ>AVYѠDH?Gmrp8e_^ل4 C;dˏ"!%Mϵ{J ~TD\93Z#jeB]U)P(;0̍#2unzDKMRC"Ԣ eWs0"! 2u\m$FxcԽBWXׯ66)KH>1GOH &|D*.,XM̓h9qm55>pʲKU>Fteɩ BW &YШ5Iۓհ[gtӆz yvi~fc(@iS^e\_֭]mSe:1O<(nb׬_ |Ww#uUX'M,B8kLûe~a33?`3X-Bx{^aNux864Wb0_[uG>'ر;俲>G9Z"Pa Q`ȟ*VQ$-hRʻZNGbzO() R : U %՞oH,fӲ\E+ ĂΌ4â.sXR'ˌ_XymtLy 4|CD88bvitN;$ߴ.\?F t,|\_#-^sb$ S|'hجp%r== DV!RsHuh!9[U`) )_\{} ' J.䮝 y b&=Wb2"Rav2 Lb9zím32ǖ \7 f:fȵ8|l-eMJw;ugV~7ImOe)~k irɸWՌƥ@d78/e^s{2Py](6C+ (D{B8D-ttlX׸̽nZ"wjT0[aU_Q9n4iLd+t v̽wK\ 9yHν6_B1 fmG%ovƧl[#EYpI#<~,3-E_̍nϔqC+{ <;~Et\O={|i}saPT[c!]j#Xi&f2&01 ;\m?³1a>ʈLj؎&]L3^/,1O-GY+)OZh9ōߩ;.[7Ջys#{UQ-:gkU# +>q B^3oA / jzgǯH<3zY߬O22X$ԺRC, WSxP&{pS! Ƶ 3'w@yeUNq ?'X\$my7zy&f9*"*G}bZTxڨ91PDUCH$je"[y.x;twPL)7"A]zYD}2)|B= ~'7x(oOwsSf\T΀X[c9R 'anWU6bGrxHڟ7/h;cжUnꍅrniJ?n{wj}b#},~uU`V~%I\G,906fXPtR?M#t&ͦSLce6!uj5`r60uG @4w*+@%d&L6WGee"N4{܇D>[L'9U>d13I!fįMar?TAn,pc?xbfZO]'`DDPd 'Vy`]0W$|+@|!'VB{o^a+I&~JiJ _J8Xl3L=w_A)iʔ{é7ޓDʺV~ ?{  ß;R,3t-aɊ\4 kX۟ jJ^Ё6[wv9_.2KS$hy,!< E;&bM23QIqq#ĵOƖ=SJɰ1}dV#_EoVhf yMw酘9]~?BW:NˋȑrۑGY7{ˆg )~gyd x^ C@5!Ȩv@fzG;OT5-<Ee!xv}++1%3lnr^Z\fpB Mx) > #. p%FWtS*)Kc *f`eU=Jod<<]\![+p7R@+1tA6f oeσu YTBѕKԑVy:{{M$cΫ0M# .ݵHg0K|Dj[{ӭBUȆ@D-.2ϻ"/2EǗ/6펹J4rA MȖ} i%J=k!nUm+ )"aIn B7>Z`iƇ.q=V)Ctl{>Ẏl55PP$=zLofK* X{T;c+9+ԇ<| (wxT٩K&w_͖V OT7>ǵs8d}alUWOft mə>*0d@h >i /I5'GƯ&`%A$]GLr1u3`o*=.yA5`u/1`@4[괖$ 7|q$>,38 a^Z9ld^ohwv#2 snHC+/`G0X>T߻䚾= )pxnEX7ZQ˃\NCfm;L0Cg%jz|*pVrt|ڔ՚K-!| /3]z(mn ir+q >m'~H7GK#!VG UJ#xFzޘ #IaAXwܮ\j$zwPA.ՔpK`=%Z $"✹It%b $%h #\|LmrpK@!'=л !o~3#\=\0R8ZfV0&c u[zZ&IzQ|| Eѷr*zUxpFz;b?ca^77|ZYGc`.BT5nf #(23IB5q| .Ug`~~Ǜ2<ig$U]* }Uu'{&U›HWR:!n.=Y' CM,/8]e4%ť`jy;y^V#Y< - I~_*dtPHi=Mr%uY b!HANN-_&R8! ibL[KߋoKW;#3p aXZVg 8|6q%5;P 3>`]CW@ՅI#Z{X7N t2$fw W=YEt·Wsn  dd%|)L@$NZ},)F֊duJ ͤ1M+l|m}q%7Ħ L3.Iȃ;}d.jf vw$=7EoPUrHͲ3{9CxOηm!I: />V~ypqp<536[|s8WaE'RDQ%9UtrlœRpkiv ^=•y^_ ĩ:|[#uo[cb?, bJszp8@ qߘig?0 %@n.xu([dRE 9t:Yh3{UƵ}Q赻[ 01J }p[F3"9 Y-}$&W?}"R0/a_"MJO=/?F3zE3v, r>h8O*>:*U||3 ~D$ټ=2S 뛵Q-z!b)E]Sx,l q2jDȥ[N*ʼÍ L>Yd 5Æ!ѶF֛+YE"}Kv`܈]=W}i3ޭGɌz }X†i5b`*월y)#Y?S`1ݯ Kx7H R?/@* ЙLI#dAgҘI٬ad6mS/v~ՅkrH91ʌ8 $==#gBa dࡎ u!N?ߣO{宓1k 8ߚM:X X,a`Y^Ik8=@AȟrHP`P;ehKl>_ w9!@c<9k8>ijBs?&C eԹT J'T.T* $23 gz.@8sQWrǀpg a ('zdm-eKK07 8gqɧ>4oYvs*:O5H!aWtaG8rk됁.r6,[hRq=X"(Lq_on8r~@6s6)5RYӜLwBLvWȺ 25p<A'NUwd4^WIt}𢈤H+3J 3hsb2Y5E9ᑔ~$먶N}&o<rRTlUJXpGe뒞Dx]֯=b{ѿ9ۯ1  0']Bft33!"+Q{3Y=ElF#eԇA$R+Fm³ g)w}g{ {E[2OMIӲWEuWl':4]Y&Y#GsVB= QmF"qwI=BTp.zt)7.$;YS?q AOU9~+mAʰ>@z~^{BjZ,~<'6|1&&]_\ I sCӘEʖ5ϹG8Dӥrp/ܗ%7`_Ѕ! NQh fI9*fܤ?]?JR@/ O Fڝ)i>9&^u ;k{@jF QR3#իƑgZxW&hc띴Vm-ûK9B`O!#*ؽ?uTeA#@wf=|gl}Yy֗9DFϵ tpInH`։S*v}jj*FaW *fw.?H*Ͳf[A.D2x>C4p_dqze*6^mPyKvT]!+sh+<5s}2cM+.u v<'Dy,xۅw4h;Ć ݲ؂NEcSyTJ鼥:EچʌTsƭah+ ʡeGS+4P |;q%+OUGS-$V5&rD޲⭫I 0e@aRe;Ju7duu 8&-o^BlxL.cIOgCW\?2j|O*y{CE]!ۃޯLC_{"].t"}hV Iu\^_-I oHI#2&쟰Ol-.IOoӮrԉl융Ycۊ2^?!Cl>F;ʖ# DU~ Nf1$]dGQ J5N,!aah(G#hz6$)F)|^.T w$䇍18E ] IEI|!dӊƛTO&kj"N@\iDSl;ƘjB s-kEzAڄIu`M/pvH5é~ю0.fN{,i<*`xs'ӊoqMkgRUnpK &C. 7'^nK#O +1=aߍdz?3&$6NW<TWȅIyujJԵh:F3޻-|`'[}26LrI4F_anyՍ\Fw809s;k]5,&_HϪ726Hjx[񰧶OGD((\{e„_~LNnMlC__KL:W{k4y:K-.qho= DpBe)EP1SkEiRhe- ~&U "~wLyEM2/k9NX3sЏIqs J'GyTG*ef_R|(,Y!X~-W3Z?PK۾X tU\1@ GbΙVKhpnӘDDSX&m5 - 04$ʸY\^hMzuXbsԭHۢMb[oAÍ*..> fIvcʒ`:JaRON9n#| j7Wjzx1)"7w -zQ]U]dkۂg'|cܽ"m-Ilw&|CnJk¬1ԟ;VuO  ;^`RRpV _u6۳+eI1˂%c|:24 Dy'{ /ptD? +Lߵ rN Ԟ빬ݘ1 TM5DP}՜K[yӤbFovlȄ )F M),6H殥M*.G#wf[)|Y}gdWXv5I [ޢDmɀq~_Z#~.j綯67AF<8Idw_ _6$CqA|&z}$EϳdQ?_}hd8,**iI!BD?(=/;>"BB-`YB0b#͏`TA.^iVizLi}#JqFӀjû6—`5b.8mxj Hϩca":PYZyH؋S&2ȇ3rS:R6Uh ⇯4a*؈HF5rNjUm)/вWm;{: h 3Vf~3V?_$BM+ơvz) ΟRͩ$%YAƕL^sRVe檳^N0y 8&N3t Ԑs Zmj",&_/ˏ.CLT;dyоHm4;]"i,j`wKzh@C+6wU3bs$S9 羯9:aHW!5b^SFaX<tӟ6؆wΑ6|C^=NVC0mn\T6׆=;Œ}^]`$L\v?O=]6 x'" GDvо[Qo=V;c qg^p9 {ssF@pe{3!x*Ȟ_r57i8{ p70]c=/lt u*s0O+x{K5#Z8ϝ8r'aԗЛꊥwȒ;+g%6eGfS}a#uwFYa@Gދ~fk0Đ7~ah+BUsCKa!)y|#S3*-q70P KXsØL$%nT4q(|v `#)bO%o$6KD}S C '@gƔi>HEQY*~6ZV>yɘ\(>ߣ$]w =xyH`M@B<;>И G.tX57<*KjP&`8Z,Xi)"aȢ*+3{mOq>>Vq F.2f؀G5GuxuSe2-d=;e{0mp/l}N72`D] \.UoY<ˤ2G88+dN?yhQiGBP2 (2jDҒfZ*}v_;eD |خ3.=v3 9(1|}aA]T^t܆- v˸^q н-$C toDHnwD\Wž^'#IE<^aa5k{S$ˡN \<(L+&"w°IҚ堐 YK=. bx+%WvybsEm>eƂ0hݜ6~)eRntj/_1NR5գHɶPW]\܍XwYl8@Z?"V ir}GSf'\>`*fxo6Z#HUNzfIm; ah#{(#H[1(E%G$iP0DRzZ%!hR-{|*ԯJ R\s&$yֶ?_pfd"VyuI]ĕ'g']tn6Su5E}~r|}U`iu(J0BB9UJeWg; oM7S1z| Y4O%GA}ǿ}1#S'mG4-Zj#Ṛ#ЦÝt =X QHd -`#h ]CDO/4#8p>1╨ " 3W[;5iiN-zE.(Y2IPjuC$ h6Y !n1B' yo(y f.vjm A3sz$bIjjSXU_Z-o̔0OpuM%7ASx4P4_hёѦa>?;f;zX LVRVy8hn=/=eV"17 ?o =ꆠ@X6-GxXO8]>}[6& n:M0Q #:b$N H(1B9qs-mP]ruFD4T鱳k 63JN@||!y*žQIt{w?ӎm]%-0 o8C P ͇$w 2 ߨP.kL[7aefc mՊGN rF"|r]I/9.)ęWѰөj>2ƣd3,V)HVZ zBł !j"6?PD<{jmޡlgM0\a}s m>'1!KR!ȴ :2Bx|S_8VUmes~Uj^ ~4n86N4pgǭFmXdv 3I) X2pJw5> JJiG?ves{Ȝܛƹ7+O;Јvo6vSuRxAk)!SRkk}se9XK V`}-ЕDǷX.py\X#s|΁3ň}ԁC= _+ @OVDɳϕv_Äڗܢ7&!ITf7/Wh/d.|=0+,`16XN#t{yi}E sC &ɪ^ppG\.(IgW2m2v:CQFddNL9X,t ꯆ@tI*0'ZOwaш=<ҍP"vT]=C(oBj&fǼM$qs2nXU^]:o(#E~5*R]¿v Y5A) u/랼Ur "nՋ`;Y!Q, mSsNGR=>91{z--VA2& W;}{h&D=ӎaۃßp)P4dɀݘN`'1WUO2~4hY4OHRz[?>fj*"y36 rKIR$d ?3R GMH{l&s\LL!A bD2 r YqAO~9G 2o7{f+% SDpaO ̽ zhK^U(Ѱg*ܷ L mR 7t"wxbt+3f?h0^p(*3i/$.~4~ɾ΍p7NyrDG D9DkKs׏ ׵UztbYq87l@m<+֍d-0[NG?*B nE񌂃56W4AiD)ş3-VΜ$r&+ì,ȀTzCvP+eI\ZEOSNO\ĩ i?oXrsy 2C$Ǔs8i R3՗ڊ}Z鱎NE@F1b6)ѻkcj:^C2v>7=H{2 +˿ԫ}ŷ]yk[5䏔+LĬ!GG$E΄l/(J이w؄ОB;rU=xcaSBB:غy7X! d~WZ=|TtK€cXe3UWNͮc'Vv-"tl΄k,A _L;Y?- gѥbUR5K]cPF[_mF"xL_ԾeN@-p3{ 7(Z2Tt>g "Z@zN N|Xxҡ96 _n$i6AS䯎Ch1T?Exf%n 犲Eܽ T,z&Ŕ"]n+pkZN9=R ,ip͛C@f Bi:CmGNi8E^$Ǧ^`a,do~`c;3j IO.#i# z#ϳ8eAf8%̾88s{eF S*m줣, ^*Z`ܺ !'[qyy)D np"w\|bWZvݬ%cʤע*oUhIQf^dB ._ 3 0Y#ikCLϧRՋˁl|vvݴt/3rG3rȉoH T#_r)ν l>L}%;e' e.6P=_RK+K%B Η.?{>Cyز"On䙧Vo?7lj~$>2Ȍ=:ݟ ζVQl5*[r]6.9]ިO/qGzYnT+.ܑN))E_%4hb6_oɜ7'!5 beinBu<@P{S#z6G#P\<;%)$e2Xy.`Lt.SΎcvnEV3w[M'2xҧn"n+ʈ(m'G2:&|gTo# ϯ7)0&푕 fo퐅 iB9TXU^QKAkE;"=,s2F*tYDRu4E,hUF @,Tg'Η3(q؎w)xY? ϴTsyL{ޕ{o'F;">v;?OuX3b[uFh2Ţ`I2#G!hg GMWYH0AT:%~z >.ʩY S\or\v膆"%#/N^0YfǢ,nүK^FA?/=-ӘwaиŏM RY-Lۆm:2Ua0ifD @T.nŨB,6հ&`b^džܕ!:tOs̜C2~|%5|+l|Wt+d]kнYvSUoHɽ?qst~f-Gm W~MZ~ݷ= .:~UJ.lKHPe@.|Mж UQذm;Uզʒt,ngH^fB1+J)"cs ~{\]0(Зң"A*N-oQwHH^[G'!}9@咮xm-i_H3^/CM){Gu VA1jE;xwO#v_X,áQ3DE8ÄF[zlR濶pb5b`V'LN}<׶Y[z=UE.ʒjGsmZS4d,6IY@p@+ZHOIn |APVݳc}9y$Dž$Mkm8?ƫέ[mn;mFŕ|@hhf풕0 Ɓou#Q4A8).twYy{͜m]Lrʜ+xG%~LX΂ܧ{R*ݢ$ G\7 Q G~ԕ,bػJ=N!.Cth0!7ڽA'WJb3!DFg|'VvLQ6&PgД׳n=, lln"et0!grla* *M%) lIUxMf" OM5clÅ0(8](eet~iWYCd r#B:XDT'Vj0Dy$|]s0G8hpwZع. (>Mkw[iADEb7Z15#C-x|^oꂡ# t^DW.8#4z5Gɔ<f ؖAC G9Lj^4Kp B!h$o z/AzvNfS 1God,$!,A:-'`g/{?%{,$BV7CKT }d.n@3(h _<?"ݥۓ·(Ȁ "KNT~zxF-*Dk_V+yљ4DA)dK\ϠZ9 4f\O B1J|-.Slш5HGR; ,mJWQWKN^*oaCg%KW-:zeA…tP!$uݼΨ\‼i$`S.m8qlT>i3Kp9{*IW`5}s!~ ۃQQxT'WvY~ynQQ~h${t=D ꈔ;^ȵ %3 3ˮ개6]IV?)XibWB D_idITِg)8ݼ-f?7O/Wc UtMfIiKB~baɞ$(罛oG}!3Պo}OIH Jg.}=O*]3O%)2bEx7p^T{q/('U-Sl`ݥLwg"-"fk>}b]Q 鯝@Yޫ+#,׹-@\1'-fXaqew:a xXtWhZRhUgB}zZ(*&nP o,|/w[gѓ-⪤N<&Yz/u𡫫O h8=w$Bf϶x>JαH1aU̢eB(_(rt5$vڷ141k/tn,uAҳ?dd1ENLQ'GQ9E'A vn5N{]w &N0' g//ʠ 2V4,Ze/@JG@ZBǁeWVdKDvWA]2k>=^iXRoUwg0;!`Cd񋻘'tQwFȕ"3C[yŮX R*`ZʾfO1r59wsR .(dhN}9Kڙ?$&u0>`[ʙ63 \2}+^"`v,=߯R fk6d8?WE `4(i|w臸L&:[QEӼ3KҒN%bEx~b*T3,9#v `O ;f_a^I=d7SZ!lϱ:mH%!nv A}*>ǤoQfIm2;>璆Әt%G-mhobJsyh*Dž# .:Ztm˵t۟w#hp)Wt3jYdnw]2n7PY9&l(\hьa/T!JBVXAJJK 6KZ"eiː 7F]yfy`P~}||6fbR+uW˄Upb+56ɰ$ yu7[5X-}.1vq"=S['VM̅?ky ج :^ӻwر^P]wa*uy~?jn+P4"H|pʲܼvRh)  =ب(N/8 y#0ofd @=;H Fx ]NGƨ*;b2N}W:C6}mAj^`8NeOQ6!RasѪ֢i X~MkwbSn!64[ NT?ٻ.V:&gE&`Ou>$/E?B5*DgM ,:+.O2pصKKOv1i3ibCpq;RSZs%󌭿Sq1H讕[VZ:mt(>mLV<p\kFl{RNh=;DzϿU!T b1C ?@ ה%X tie͂ Ex2 'Akb`ٿ{:T("./֥dN2^(f)ԃPYr^sڸ[S{2 SKpWޞA'mX:d@'ux{/1]xWP3Vic/>/6؋1d$r5@C[k_)!qI颏?zWcIk\m';(͋VCݧ<Om dabP>-"7`=1=3y}U$ٺZ]4C=fO.2a$WX!7 zIHʹKp܈E+6)D#9`xdJbb{t0c3U(ػ"XmQ#xڪqN75^R7GNdB9=>p՗a*OUNF)f} ްbQRQldN:B{JPnmA7l0_ CսZ#3%lrvH^,[:YAQwfI;Y?ۙkQsP27Bu?LNbbfGzGcZ^ŇE cfE`|D)G10E+b.-^}lv[aKtPyi9H{1!ҨNBB%wp97eY]G@~]1/_o'݊+* mf]+7eCn?:vj4_pULU}$٦ Bz-Y RpTAZX)Mls9ѥx![ۭGKorc{nUoKcL GRLj;1TuSg=a%QnN!L.ǒljF2(^4FzcFR5 M[.ǛǔG9DQ>QFP~kaSD"s70S;Ӱ(ؔw߱ݧa5;/ā}K9`Fwh"Cԏc8Sl 5>K2N\A1Cv+}s-v珩emLT캴1^6zx_z^ՁֹFjA$f5^%ÉUWSѬ>oG9Y!LDbZ*\ Pv6s^3jHgWwxnhKJ]^0ž>GƓ`)$L®}4=#V4@NJl.f;,-|%BXh婟%dx3/:ZB+)vW#3[VEFA33)B33Z *up8dbVyTfv3T̕=Ue* d fWj3;=ueuqHܽT3>*#?_0#Ff WB^yOa F7H>ZעoE6$cvI iO^q;e[$|%?P*t*y~  :.Pdr`egZ?Y053/LGă56.:=m\V* YXw>7 Kkw-ҵ2-~UU_lŘ:UcbZBz)-/)֘cC3(Lj2jf$̃Dl!C Ȓ=fEUyJi@GapV텛ϓ2loӋ(6O{[3-+pS1R0hāR!£a\h=a(Ns]8ٵ]%I9(J:V*ivJsgvO?v`Gc$$hUu>HYBU{7M z¯nTli1zVK@0, ZOht؂*;S!$Od>[8a.)b CtQҲa|)Tl"-Zq?V0Ղ_eAvڠ#XĞ2Zן(;]),P\cɫLjHCv3a+~Boa%9H# y֕#xgS\zju4Ku m06C7`T9ȃ&Q3`g`%ǤA[ t ʎũ M(==*;S]K0X+U^?+#L@c@/tyTMJr7m&;! >ϥt%nNhL̎fޏS5: J}J۱ϝDRK!*;A֤C3y7Dp(yG XP\x:Ur!%Oy<H{WfP]&]ҼyMx9Gs٬-?d<oQyJ}x󬕣t90NH׼js/LMx*wQ؟vXĞ2H tYZ1@;h#pe1X@mHgmj/ +6a{ǶG_stQ|a-[wYbv0ShDʜ) sKOlY,6BgȤv-PDC4 ж)5Uy?VҜ)ijL)|t}{A۸")LeW/9\v H& vݩ?K.gaE%8(Ȟͽ5c9Y+ћ`JζLqQ9cZZu1֟쇧yĬ*ܾX9iTIIʼۧWb<ڞ_kz=٩ ѿwzfMO&[o}S^tCB@ DUtRxdf,_l N;/,7 o#=|V:U7uJ6:۝WiW_?rSWoVY_mpeBN2HױnP$e): %!%J(76C f@ո2,$ H?(cd{Ʒ9OADoXOLe!_&9tfmY8/!8 .xb̓cYj}<>4z88TpdRqğ_E@NY񫧲QmImX6p5PbhsW)c 8bV?Ht4J4fxOK.(T=μ'Kvmtno}:0~7 &/xQ>הjf= XÑ˓He(1T$Ri3]pvsWבYo{A%y ӌ=fZxe`4N414K p᠗^Q*(} tMRB[If Z4EʣKfXE^i6! txXC.?/ fRT&wۛc׆.Z|78֥ˋT8)b[dzAd(h\g K;l-uAE3WKp%gm 6 ߩKDogI/9z$2b^VPy]X: ;^.QGzkDVҀlIU/i@&su7@]긏`c:iI>Z!'Jz޹=mZ"T8+m(cMV}2P_{]U{EZ05 E &N=lhm'RAoN9vhw 5:߹s25BZҰyl?5lsS6"榹̃h@VN2z<]roho xsh6M2:L5n͈D`2*MpO1iSKuKP7)CBMa`A ,%oP'Չ3..U5t|Hc_zAi0%k/+1{7ll$#2a FDZ@#~{9ib_)8JTG|wV&' \R Ms~Ef/R{=FC ljZW_[ `nxAgCh)G3xx^Fgxw d}l}Z CWowdq}\7f:: :غsE}d==N_^iVAy2gE>|"gj,6wP zC*/\Pm/[y]Q]@0i`c  0z>wxe8># !1 PFio#xq 3K_4Z2D7a,ȷZ7G#`.{hg1o;dy:PЎLuR Ms!K|)ut"Έ.(dġ &8?rΠ̂C5h4_ a]I2 p")hq躣1A>ͲA/!Vj뼅c2 cO]Ke݀J,N.Y 3/F%x"'1ɻӪWSOMVz6CBjKߦ2HƑ4%khB\Sk{ף, 5޵2dB*߸xQ/zPr@2 ?XPIܜ@Ve5-8ae{zv,`+ | nNզ%Srr6#mׂ{̼21)|e I^xB#.r CC|$Onm%e6PBiFDTJxHQp$-]W~:{qcog̤uJs>bDޗQbփWwպӍweTKl^B2Ƀ^p܀WHq4PA0j &>fPR8 0LGT@6ƾ9feS̎% @_JJC폰j?S뜣7߈@hZ&|cb?׻D+>XG^PbmEl^4JX3y/V}s>K& ?Em5OnÜ>飞ux]ַdI'$.!_zH#H W4vuDfp]e}}AWF{һQIUZ=վZ?$m;=dc ~QA|O1bޕ+sl5Ġj@_ d%֍e(qgUQ+gڴ!%8\阇;/do*J^w58\U]JƓV&T6iqڻ~Nn[%;NÅI#bh 2zI>?W!G& D͚=jL]oyhv'pTӃE EƋ9 :, KB:BٛW$jzA95&_TˎI"6XAݺK\_5Sѐ( {/XwE4`O}1=^Dlu0MZt0wE~BVE Ig -L.dY.ODg-F\&W%7Ow.7^6r neWEv,6XwqwW+ַURHdnS-k_M<.Nߗ\Eʟ=&?^QضxsFz7B hqy@TKrQ<8y]!%@ K,ԍl_i{,[e0S$MwGSc^  {H2pVo49²c2+aO^bwXar&_JNbr M1q=3h1Wlm {k(.0f +蝋/7x.x>/YIQtF(ɾD7EۈC E0)jS5 c0P$dPs .I"yV`~XZc1m<2Yd<}!fݺ̊_\1ljx6<Ӵ1E3&h*x)%m`Bݹzl-i<9u$U1hۿgA~Vl퓷vw9/. VjN>ngTZO* ߕl y\p J\ToPҡkƢE\_Z`{ 7FsP-~ m>ֻBqN<F%]ʘ̰spav!UH9ӱ a-w EBnXn6/F>Æ3ڜB?6r3&k̅U5+Ù^*pj~\˾KDw̓Ųop&d\){鐲kxӭBmi=_90kRj=WkBDfrzbY4Qc#v TehijK*"#N쮵̏`-fWNG;+s$6;bA}ۍdfI??`/LKҭXMe0":d,z xF%ޚ.sp7^dž}0/0gEj-UU\,}"!ފvL 1㚰5c'"a8 -Rw5qR_"C"(:Kb-_Sr =c$ aHe#28/#֕2<#HYp.VY (+z ah5GHl>^AJò!a)($8$V-ꀀ%S@Ղu cJÖSokh3 cϋu"TU\5ڛ,:T*VkTm24b2gK䐷"՚# b) zjloc ˙Ob;fbwY納ZB2Z7Y&Sn#ˆtD9^S`Ith5'ˁp)PLr{ƭ`C͐hko SMFq;K<]kb*y PゞU"P\3bu2h Q Wףz gl ;z㚕šJC,bEtsG 3|Xsğ3G0XoR[M>T0RY I|`o,xڇF-2 Bsq6'q(Lv};G2Y 9uq{~:7WAժgu _X꧅uMB#qE?gRzSuA̩Yʜ (~AtM_|]ϲ%yAƖ"wDlҗrfm&Ҽ"D[mxF(^Cn)x<dťa3釲8?HiSfʔHߏ#A?|/Pn AC3L]SJ&B' WѼT6 {֝LE!cn n݇bƑ"%@y`/z0߶g5Kz3L5`drz첉SPB!O P^PMhD!/M3aEA Cҟf%%C2@/BBDr=<~$$" D]H-\x.H{IF9W^`W{_5e_=?ءL3c僑"_7\\4v 8aKC%QF(gq LhgQd/JY|I YB0t}'qpP&@sƫLZ} X{WS)Uʙ"p{m _wժ"&A>dX9/.3 m3d[vVDjQ?)9ɤٻ80zN}ʟ%qs XQBllz,kM &6pqAM= ְߝ4]sAtG~k_ N5-1KtRR:}lsp)oqۄ JFfN׎e#bC99pPh@JɆ6ҡ,|߈*C;`Dҿ"p'h&膜qz标SnIx(fyv'{Xro^>{0 \e Փ!} 0#8U~$"s*ЋŪP)SwVv`_ !¨ !HZ44CGj)VsK^;#N,}N3s$F ݐOLJ(v amvqjǘIRe=YIb셋B;&0V">L *-I4O 4Np]o !ʍj eͽsO2F]J:2hYyd?5zKh9K0}i*ة"4kQWFfhF<ǨvAF@:쬠JE@ރf+ᒣIx P4y*BL7 l13$*yߊ)^*~*XM:?آLr sq!EUȠ!(45$ (L Bl S)D#?23~rEbqX#m雷<9+FqGٯCi `zwCW>9Pb :F\n$9B]N†|ߝhIXg4H~wAtcQpÍIf-.MK>Pi+0AWx4<6 {qw֤˓dt#$'>IJW ugTn A뻘5X{8 {Pbj]rكvh]OXwxE|T+XН9B]QxT|2ȜPQ?i[+6y['LalNE<yɅA_IM3,o]2Rm\bhol/#D2u=7Fq7k*̉aj` op*d B ۝I!CI| )2PD>;HT:} ޳-$w~/+J]rΚGP&G~d_+ &2Wqǟ?S $= z0zym$_؎XwITU z.R{U+*&nj1|tyRj\N>Sf1 v9twO=p'&3zANkKkFFpP B|$2VXwM,21fy:"E4/ b#I'X&Jp}Y(~ps4"ʇZ‹ݱMOSei3 'VIwnJh"s{v%ZSgؕb[`HyFFPQϼ[Ybr_~*`M|8Z}Aq|'X|g}b0^5.~@K=O%aI> mNF2QAC1qjvn$Km+2뷨2H!_+SjuӍ >n 8)y-2F=үKS=HC!(8ws{9Nن@'q0 G?f꺣yX(@nS}Fx!~[N>;8{DOI8qJFXLxJv<Ի v̪æEMX$ԚIVNxR2O`Kނ5VSPYѽ(G}g*ܢᴎ6N+y+9y2 FN̺h!9vUΟ@1xu7s7xo/T*jJCVdTݗ Mc #uʶ1wj(C)Wq7y'e2d䙡G,= /fKR iqh7f/'1>[iMMqDg+<gaUemK9k wp0Qw(Ob#D[; TĜOѵ . butW=v^8a'psj/ܓ\OSO %O&3ms^:"_ue 3m]*s lfs6p lи,y|dil[Y} .n0㍐wH~y]DUft8 E?TR6?VOO.5.7X~c fȐS* e#Ȓ:LՆNJ ^ޔ’saU8u[|'>ud6Xz >,]Qm?e 'sO:cM}١sJG 8:Y4KXT8T|8fΠp tfڏ?5}:5ޠܲ+gᰯ̽9=mͷc\Igswi ;~1.a8$,= Aޕ7N&n)ga44a)jrm5a&w;6b\c]mrs]" J߾\q e5%5GN2 uLH%RXOAό\FW>i, A6/ D}zV.-9zF`gkݵ(P@lA=, a{Q I15g%LSyC)3}P\r.lT`DG]7J3)kLMi椓Xv ?h܈-ϣ~37@l-7TD1ttS[/DAq*S.?0OgP'hkܔ38YsE ivm5 VP}j7aR#HTGlKc,e|7b?*/"?0/%'tFW9$Lb^ޘ^uAfyȞP"$¤#) ~$#/G]u0DsmYAC "ejHXFbrOKdnUABkP'>zxI8_5 . ;kfWgynv{c\PHj_oag;xCd@>_o ϻ@7!mds8 )F¹S0vRl,GZSy#!4gZvD\wZs%'ynN \+4T]ROV28NJ8V{ƍ ѯ kqnpH"uUTᕄ^5BNX! 3Vͯ{ eኈ&syPafR}~thyI*~[ J@#>UͶNTEB7atぬ4F:a4cA ]6&+33l9Y~娰?m$wǐ.0,5 pw?߅.1R?B"MO̿A姖J2v!U+ӸKnq+敡a.7m+$l7 &0m"cۡ}'.Gɡ UAGH]ƳE޷%6^buӑ2y >t H;֏\? mG6s[C FSC;NfMEAja΍Ynf: >(IܑzpCO$D KDdnN?؍@tæDҎݑjLKg73rQ ]hl>8kmTEn8<@ɮʹ4Y$[c(3v F;NE{;LO2Arwn"$@\b} wa2[KFg4mR^Yr ud.P+s9Hx#+7x)UTk7m exGC7*Drue2[^ ustz}fTR# ,UfpJ_yo }[F 2khnW^SE+%\.By丱KЮ$8[ 4YZcYʯpb%peWUTC9B:BфR^="X[ToqI 9tF~ݖ/ oT AG4%#/T=Ea%h>x.* #.eκ+E+FlOIO*vFQL:\`~džx8e; űXGé*VoI֘?zz?Up}X~O?Lw|.۷>u =/Q׾]v~wh{w /Fuw}A/C_ӝ7b]2Џ'.kw3zgzPbwo{Ezy Wz^gwwwz 6~/L?/Qԗo-3/ZW?/H?OEz8 ҧ/mf/J_a Ez wzW^/}&~/Oqz^}B/VEOz^/}O/B??O~rbD Ezf E錄}~/E[z_^~/Nߋ]b շ l~/UO{z[wPW?'z^ e{2_//]?g0/REgzR /MߋY~/X?S'Oŵ[nŸ n}]:/[k_ {wttti q-1g (1`%n /Ӵfq0\u.r3!àKZ쒙IQ|3uHVգҬVBaBpͻ XĎ[񶻙 }'ᯚ%J cFbЁqXy劢14 d=Q֣Xb B?צph ?щ%FY懓gӚVN=z8"y%T:zu}= GR. q%h%Sr3O oP ^l4^׼[*Q`&aז=w)= :M}]w ʣR]UB 4ώJ+\` LY*lm ˹?sQ*va.Ԧ%Ws`kiX\G!(.Gi.|,fBfWX(+|N)UsעkLRp\lI)y,ZC; X+-13 >^(V"AyXd|L @w@@-pD]!bιiRRGKXK"+ ok SFENUc}Y i]{Ұ1 hgr9xyGk.tJ.9b<]T}&`(~II0a8.j㤃G9!_[> mKfd˿UF W"b&tR=׌.m{v/Y/Q[|U$nľOAzK~W]HyGd@`ERY}G\%-qDžAm\V Q@o3FCñ_jI{1'>}Qs56JhJZ߅7}_>T+l:Q"@f!(Ce7pdQb%rCj,p~;@q~5!g'Fkx˩I~yqQ@TGCzx_ؖ=o%n@6G?2~ggkdF{]""+̗Gr7F(x#@ux_uQn JK$7;S-g94%vTnb 6IG`<3+pfV' mOb$gIe8Rֻ\ w_&a˱aش|.laoyi`ú4_^OR0[sp'r8bK|Kߑ`䦸(=\Ѥ N24C۝GNQn,Qb̌IGJhj%+wG%s|I otwW;74ZDb n\y}\C,˚l4 + 2ٮRuw7*;e 8Z1挥ߴ(D j) SQ&3@ڌa_7|MY|u6# \NO$n/ӗ-ޔ8PD⒏!? l(I'{"t+9Y6 !bQr-1gV /*'"7i0+&..=PDr jg>?*sTOߊM])Jb ȴ6.\ 6O^n0ϕQsҕa!97~N zT/jL?iz C~=eo^;'23^x I_Ȧu|{,=rw9H*iRyCc@tG8 Zhޡ!ɏ@?)r$tIRW,aC~?k2ϣC`'v(3/"ζo yP+WvC9ݖct?o~`:8x5Z K}HcR>\}~&A|`y&g‘w5&=dޚdSĢp҄"D%SWsȩw5*-(1xz)^yƃMU$'n$7HXtlS53g6i -K#lܘ2=V[w:wsF/0Awej(ԯs+qE5n6Le>ylH_Fy ~jj^;iN Jt@A,`AQDחK>@ %y|{HH ln՟-ddT]Tq[K]@t2B( -8"D;wC'nc{|g¼օK_/%<_-뺮e\;IXӔK;=FQv;ß;$2N7c31zB z>E>"MXlRVTj<`1 {4pn@؆|X$XOHahxўWV~C;~R*p)VB$Ğ8F`DCk(us;ɊfP'yYKDd&Od#@eFWwX2 &ְbi$$!)FM15A5N8(Z](_aZ6\n;c}~Vd\[,gGnD @[Q.:3q׬X?ӨAGC{.-bXPK8i}DX9d?|Qޮ"LdEy$)8!ٯjt% ~ȅ{gܞ$ >e60'ۘ^ߠJh@ ~K K4ЗK6 Y6=GJƂk~,t +#*A0@,Ij:$3Ӱhqe$S|γ~:fY%4hƖҞFF^Hk`A&JN(R9fmJ[YI:)D{\dxЮ`+uUQ"OP?#PKWeR-u˦(B(Q-,@lue7`bf?<bvA1:CcxëCHl!4{;Ug,,I4GB8 8${{6L* yh=zǝ,mST'Thkz> D>괆*or,vI^Yp 8wѻ3m$+B,`S.fS J]B_ oc}#cym}#[rCTKr+0G:'2WhL 1]9\޾Wcv{rIL?Fޗa"ʷE ѡrgڱ^ftLP ɜRc>6 uEdFm/_gt1"RJ=Y4X n]"NWX#;` ՃA+62" l5Ob C_IY8 U(+#VL) 2dw% /AQkV ,vJzf6i=Sֶ ۞S^~ suseT3%ɣ~-#9О'Sؖw}S ZNZc!MڽȱAIWIPʂ > F4HLH?&r7 eWUbRwv٨Ӎ^`'M{䠨$A"eSp_c̝÷rB SLaoBn 68_G؅~!v&+tyLPhW'r. ͎Hn {ː?6'}9b^'# a&Ŋe.qQGH6a·S2B0 9MWv?i9x!g}?o-$ ,lyZhفDmɟ|چ{ 5gUъS bLacxtwbF9!jIThwcT &Z=^˼R'8|Fs3_cG,Ү!prpT  z~hg̓RD+җTvM Amiט\xSVZ`wm\;RB0Oؚլ3Ĩ_ͯ2 Gn}32 rM&\R m:61 ꄈ.&K<G905ɕ`tL-*ǧA Ρ `G4x#k1E!4..YaDPk8n~Z036v~ [k_mq9|8 LZ peG26؀#! D2_Ӯ+!uL2ȼϭ.lԬZ 䆷 #Qe3.n0K ,J a3#T9zwAK;_Vg.]nZ⊖m;}&_‚ t*فJګV{CO%0* ]б )cly`l>,=-Uf:#Po6j9 ull{ʽjS##6L{kO0;ar_nc@fVl2,:!ROez Q^WPCt-]ll ;ikLߛl6A7i4+,D[Cň4H7CL .WNJN ݴo`'R!HN1u@gZǍ QYw [溔Q]w}RY=lEE"{ؒ!gf#P]e)W{Yl5o( h&&vrlU Xtw~\ıUaؘk[u'czQ̆H_w˼-dm"2QJ17~gbEjהc}]j&(OjL\ݑ:\>pFg;/M1*paVp9s'S&9ioW*C.md|8 *|!l3ˈXK‹ER! NKŷ&/qZLTP}NJͮmL;K`Zћ7 1p'eZ|8Vw:ԩlrEtiCP JU3#'}sI*J %T,s Ψv0) l C).-hx;S+T8s __2Dɩb/Ú-'T两o3Pi~3 E= $t~R[頚XX}VYᖅ%hS36RxL_P&z뮡14pwB8ځmTUa~$N9|ɕ=zD֎,gige$X0Ir@ #61I}f0A=b1ze[a,ׇH5'h!KRH5'jFp(0aVF%)/OU8{ u@ߨ<n8՟ έbtp9? Ν)Xq$'5w@yg}xRSHfu坫cVY=}473u/=Q5'[ϫ.ѾS Syg]*&‘Q6Ʀ 0Vr7"v;E:2,V!kOPr$07(-eD# h@T:&&4 C4~$QW #T#݌X4fX.Tcb;O=fK&4)s_MT9 Cvh\1: z9כέd㵥 sL#amMz#R9)iX n3;ӯ쐢3Q{Y˜y*yZ4 T1r+%xr>pqI얿ʰ3T҉d {!j?MzXnh ^fV/k&{Zgv9Iet9vAgO&~eKeC~e3r.jEJ9i!5ASdfĞ:Z ׉ $98¶F`);Z^vu H$HW_pF1SJM8TΤGlP x )p4n`EVAwW<(xahE󟿇%gO~27|>hr}wQ rƙl7e jVNRcy| HXv4]$X_Ѭ,ނ?ͣFaH]$~ Y TԄ9eZU\3=n4ZiOoOUsսztJtEc!dFr:ɊPߛ0"[/;UbVLxV&K-<ě;כESt=iH-YœfG}bm*wY 3<=ǵ)=FS\O[WK!D7Վ)5XU]':_K~ɀS885@tG |a?GaU,2 bWUᒾҭLW/ޖgUa @{9Nq,Z;.~+9 ?į}Hx sT_7bL ݈0[Ϛ^>p,CBD̞GLIr9q>ϸv"ŏdRRM2aHH (jw64}xIL$X_STAʼb OY 屑J*IȞ_L#O] 6p Qnb/{ؑ@.#_ &h%Z};t \vj9,\ DU&omOUVnIN4A3=c#U9!%A8jf}N5jCx%ﺉ[(JSS. Js);d y|ih}ZbDBd^{yK!Yp{ k7@wˆ6vm'u1jePl"X->ἀ.@)Cف ]f[?E_>cwɐ K]Jޮ_K]R%-mksySFh> /ե$bF;Bg?u^J ^Qq -]tPqlVbU]b#'~@[&fA+6ꍣ,Y,*vZP 0j}Y#C'2_ de.qu7^(0qQsQ*HщimfYWr㲢\gg\18VUSnK`5ˡR\fvPg;>/HM:J2ձž\kԕ yZOKЕܫ(`мAMQX?Յl[JIyQФi:d_V347V#H@IEuQ=ä zЛ,v[ Z\ǡ=hLSbU޶y wvS`?X#o/ŀ۱qS2MR}| QAo AE)X*\]7WwDQC-FrV8up_rظ80b05ܗ`"} .vx%sB$ˉugIAˮd%`NSQ]})wCޣh[:Y;zC(?697 mTQ-F=S|Ќ(?Sn3qĹBit1sgN|w8和(*30KL ZY`叻Tf~@œS۱/.-e0#Zza2xU)47㮦=kdzcis#7TJFFӕ>GLY_1qsZ7ă"+)_,x^)PP~[}i,\JZCS !v~Bgȗq"d<$cM{,}6 d- 9Sآįa2׳bȥR_ M }G'e@{ޜϭ`P;Ul)AN)u ǘ|/Hܐ:BcGme0v'9w5\hQ#GTBX\hl64Κɡh^g㱌yM0UNnDj"2YT A-Uv.aװ [yƗ$ @QF38l%:uza`w<^ҀOc qEe =2WT8j! IkGWb<7La͝ԡ[+ 5)Um<ɱA_< (C,7%Wk4)DGODyM,]sk(q5ǙM%/Akxc)H aĺ .na>c;*5l;z*_ D6Jҹ7$ypp16V@sslIw>VU9Ojx ℵְK{~by!aNPGP Wk6Ht~o6o$ѳwŋu%x*ÈmSI6^qF#?0Dٗjh<.'ci-H&$#Dlt8l$Qѡa y/Fwl#'!g?IaH^"9-VL<6Ⱶ: iHVrW)q+¬]GuPylU)7@W)Z߁n)oDQ:~V!,$Np2RnjvhONHQ\ pP# `M`zWD+Lpمr/J])`epi6-]g#RF; MC{d\P9N?T9C %YuosE[ڗK(:m# 䞋M WzXlY)!ijHdI*(Z0@@aAإ7VWT"3|/e(\tnx)@T&IBѰpR3J}!6W nq8H}LqJfvÁWܷpf;jPZq>-N~C_N=A[/o,U ),Sl".)X0XhMrjt@׮@sa ~ 3Ҙ&tB)A=ԫz~\A]S?+H >pmŪ6.[N^rNoT?{/N~r Y԰ȘpSc<'vFGqkҠi?1 _16AG"OM%>! vL~X FkJ#g‰~=o7@lFt4-Éx.[L"՝Ȱ|hI3 &D|W[C` a5oyrc5K(~β:[|&Oҏ@K3Idnl{&=wtφ_}_}!QXY9:hftqv!I񹾠s"ww#c4W,*sI},JB%3Q=4Pӕф&+uۖ ^)IZ`:fpޖ#ӸyJvQ.(n zɇF{*kq:z8-XoW-W&a O,A2"ute]8YaK `"ՃyCOMc!Ŵpw4aee1Bhђy)PW!MNЃ=(vb|\1P5lL%j_]~~aH@< \ib`BEhN <"b0n~Ui"4M'a\fBn-*/|}.Klcjn3Ap)7gC2 AiݎjK=E?(rQT rjaFqwλ`>=UrY^q6- ~ŸllRI Յ 82GK4<(QywW@V =6|ԆjFBqqUn9DʹuQdX޸d˜c9t-dl Z\ʻ;˺)*PhԂ.u#%9H/' ,(<~֫/X8"V@+BpiRq4'&k1&o#91*jȌcWݢ>='[ LX^m2ga^8~y|gv'O?B\10O:ހ,EF#8Q Iʚwgw=aX Co4RKҒol/ީqaaSJnDv%aeZE\>w`օSe*K&R+J *[fp[ .Bz8樃 D$ *1 p!Im!':=TU6X/ 9 C! bMu#gubo`: 2.W(c5xOOZxVz51?=0eC&;Dfb-&"sP/`chMlR 3ʪ= ;^ VHA/,`߇r{­57͇g: )e1_@%л} 0TՑ]$ `sd7{YwaQp u?t#=XtEA̙>ѸSB"jhbv"׻p/>CrL͍{$:><|ڈ RsՎIa$L&aLWzRqPm3:H.&E-]0Ju{tRC o7iV6M` 6#A1mHlj/'vhc.:qa`{ȂZhtƚi/ Pc,Mc1E_E8 t-]@ j$ݷ_w:X:V(iqHof%:dĞXCQpSBl0Ll)j x_5ͧ7{@Q!Z6-Ra=f1UD Ê׿Җ HTͣ6;q8H(&I7\-Mתefi>B|3=U݌=x_Mwmf?dOx1zg㶡 _U_ |P4%40GyE4k+͢vStAF;2IT͕aN),u?jkDI뵅DT1"d&ph=Snwal&!H$O:Tv4fk#\a#OHe (l9E_zK KGF@Yj[ju`l8E)ߤ{_{ j^diU23讂 M7_Z8|8y'Jo$byb2 Z״qj $>(F ^gg*t,_ V`eo}A 8AQ\po?Jʭ?lDؘWCAȕ cB*;ԯѯz~=4zxYQi9Gˡjvf4>Fox1b 4DED;FvQl*+l9EPP/%d,b2Y=8jgAp ҴIMɠujd{ˈ~rF۾ykiO׸4 ܃ Lͤ3.V~ؚOo%ݡ Z*)tkvYP4GAHR:L{U KsK3_&d Hy(8[Bx@ՖG.YT ]蒫 ߰aS/ͻSLޢ/Z6 Tɚ /EL#)d+7P9(MQXc&?*xgHi7Z}A}.G3ZB?5 STwB>uFp;u!/ N[h1i ع6~j[|E0Ò\2NU;¶i5txD 05R42؍\1a=|3]t XSpn T^kr K%`%w9 c_@Z3*19LPohW@D/ mp`H2 AI8|BzjUKi4(1{Uj}W۟3G26.@c`bwܶO8B>V>v\OD7R~J&A5N 9Fb֤NOo2;f+Pd%v45R6e7HjnJ2yH0G6;l1 ]Nb6 -3yٝWt@XRd1} k/w=L%]mƃQ?we!cYc%$CF$;X_d#ny1/r:B]I=4z}U0/I`*< 3> jMbu~XgHȂ mO|2o֌jE=*1~ppjAvxدHq$tHx@l>=A=qӒ0۴}y5& :,RښǢ55Q:s `)? كh >BW5@# jl13{+QխEHsZ0[Fd IzE- Ha4'm {#.paF)=ܦPaUI5i- ;C+AAmI݂dvbAJ[Kҩ)(O Hi5ct z[KtrfJ c7s,R5i B:=Zr:~(6 {z,u5 &ȓ}+w.tc쑵je&W2H':3fS;37g,y-W'X\n>QoЯ.z}EGس2+1*iK5sk쭁ؼDm~ks {՟t˙+0ZcµI~+)Aa"B+'-6ee8ϒ(`V4FSϵї0¬>.WP @Pْieh%j))(j"7Y7za@Nt0 nϑz.̑>IlfkwKΒ$ #qo/Q.s?ݯ/6iG\Þb"ʷ O`5!Z܂ߦKtSJ)g!:rJŐwAӏ,GY9O4LߢSy*&e 8 _m8?a %F|hT'3b=!(DM~ϬՈbYɧFfׄFMu#ӎu2.L8 <v肷NAAM'?d{ ^ XaI<'B`l35 ^LIS,RDϺX9pns{w!&-˾Y-#5U"f nA2]?:03spCqq#czo>1ҋO-XïL"E㱒Z!ÊYϜeK{n74.VTS@/,%9<8|{1K Tps910pAB6vooʼEXUHOj&EZWI9W~@t)APzjO7܀_kkUu@z &V&`s ,$طb`2C7u,Z%_Lʰ5my@UcoG>f-8"P >'YmRMm#Y<`.J'KQUpF(^͕c}o ij ޓ̬'E l,jghaq)BgN[+8_ΨvDhc2!o-hp:@Brn?6v02mCrުW qi&f#ݺ}ya0B w?d'ZmrUxX}` ,M}r|4ra`6hDIs(G!AB37gOP28ʱƀ+i7@矆Y]Nތ~+ z^B%t_}ZZ^AZD?caW*o? s ތ (ٖDc#!~I;-!TV}U3 3۰B&80Ճf -'@̈́|U\p=Bvoh 4^{pΆƟ"̄+sڹ/7M=XMܯ>Mv;ss؇jB+W@ s6LGd&~{*7qŁ,یٓu!68}ilmY9POFVa|[@ x*ŢP>kA$[pnU,24]K&:!usb@? M 9d R^UGҢ:zyˉşÉTם54w ({I9mTJ99 463 zw ڪ2Hȼ 5Ms %x Lpx~P7%iX ؀ *M;X -__ Fj 6 \pwU$M!m{sR'dNͥű__c BwXd~P!z|5`Xzx)L븵Xd[MwUR' Z?J赺DHI-ۉݻ>ӽL6ɯd ?B.DK ʪ#;v .oYf&:t?^q"CHG0 y3gԧq.͐' +BpN+Օ v@f>9/ Kqx+?vQ'$ GX"~7^묀㩼_. p?G= B ̕#{݈:d|6Az&ʺq+dvKQR}ŖO hGQ:8!L׸j?ǁ "\2i+cݨoy,4ֹI B^)r9VRG|Xj+Kܞb;W`3Fv6#zrHW־A>|7ɁAˇP\ 8akQqs8e |R`?)6C?;w*U( -JRBjQ%^\02ɥp&vU?$vq;\u&*y-yBdw_G<%0 vxy__L&؍IM4f9=) gb"XW-rΐ ^Qs$d~FW8bwuix,#6XdmAe,S~6s1Q TAgݠrާ 1.1a־zp?1v aʊ0,9$8+*#ւ53K *Q@o}"Z/akݿOߦDRܛlE|#]4{EFW2CǪ:;8Vɟ@<K# :R$-f膅!q ;5$^M#0Nf; k*Ua"\ a.dPyInXd;TZ6ƇJcaTGg92 RXpSyOD^_~u[Бѯ[2*λ'U2}L{0 sy^{Xvu sKha4x)! >`N M`ꌔxeB[Q'%* Ɩ}i!˫.3dהJ,߶}cCEFv,ȭEڂ[ tJ<\T bųq6oM^N?CZcZfMJ3M-yL 0dP!`UgG raG$8j߉n>1R|X-|&O0柉tj /RH4-+TF"_X!=2Fn]OxunH%,du Lʇ.r0Y-JA>̤2_˧S3Mo/j16'.ąqoH$8z7 JH=P(A FX0 ZːnI *∙; ټ+?\}ؔJiJkQ;\$ _ZɄ͐hЌ.0Gvh *c}jBf5+^j=)K =i6i3ʺl:_Jǖ_l|E?V*sA.yB}A,38CGAGS2.'h>֪'f%I-TIuV3B:1mrףtw Zm%vr`S_&hS{ueMƀHjՇOm]\bPX>mnc43:_Μ.^na e/ʖ<= b/0O{8~{/#UFHD- j p iuGL= [mힷsد->3NK@3OA *U/ `)(ș2)89&Jt˱p&O?i_ic1asFR9:dώRFZ啿'Cܩpӓr͊(sb .Ig-d wyEmND5s`J -vR&eq8RC,<_CPCfCa@ $j"?Hm*jz7?K͐nĢ4kPHZ O 0l;ߐ9?NQf_^cn(6#4%\ =pz,P <#w[ƜyDzڊQR@Y Oz4ҋA toQ#YHhO=&J jY4i|ԀEG(x'?DkmK^E7NX!L kGWO7,HP@B=>wOl"W)׏Mt;ǍEjxkTctB<3wBك0!_jQ ê"EyNYAF-%NadO.[AO ɖӂ] jGn`vƃ|"e,*X8u.An]c )Y,>_8^.z ';Tr1I޲_E\U&a4|Ş8ʿrd&x[)7IRn!¹@8WWp#%\mƈ!/pqw}^ˈh".S4mW0^Jy?t18ҼXwq[7k+H1;Rm=m.8tvwRU٣:6"yomM\^E -T< m8|c*H-78fGhqnqLaYn)+E29DЛ֛`Ȫque SzʗnT&ByvƳ{ ۫ ,_P%I˾Ve[,bi39"DE: ;V\ouDc8XRBBF %(DmThruчT#W ­|x' w 4m~W=>&}4 X KtJP Êw}=tP޾pY,H _#(9y1.3`R;_>g R}=S ^E{XaM#Mk]JO46$Fn=XhblE1=9^:3gyP[ɒyS盔C,Khu}Xn̗#0 9mG ;KIxqeׂ`DvM;7!j[i2`~޷0LE^+>.s6 n- nzR͟x!^׃;ذ~W.nL r\aыbUy؆Ta ~c Rήd- G dSUnyS\Y$pb^i,hZG(^ }d*>]u;菟ق;^'Tٿ͚)܁Zσ^Z7f*e&TG`X K]AZf*BYSP~9b0G+oo|Yᗪ;0;8m,Gfmf`ݞTP)_{N?TU|!4]*AJK|ڶ,f/)NܒLvuAMG9 s򪵒4Y w\[v4!KJpD+ރmXo7-1̹Tм'"u1P= Y2?XWXoF,}+n{~^|9]unZgngq%7wg 2y:ŧt}&"s6MmQ2Ц2 Y*ٷtq56pH/َo'cb'*d7v( v;ʞ]>d0k!VK>(PB?b&kel8@;Uŧq誛W?S`{QHsd$~9$җ֠n>[dۚN|xg3X.8'f@;wIf'H4C M'Xu5[n(`A)6 D@ 05uG?J=tDe  ܑj|n&YT5v7jzeY?C}eH䊅 HST}aWshI|p*WgƯ.r Rj{EUFs-!@/3% mݬ 河"7s\\\?,bBJLzs&au@< >=>OGI@'#Aud6{\=bh{6Q͕nsiv!aJof,"}ɚQo2sT"ae+X`;74Sp50=Ô1 Gcpw0'PvbC76Ź_o5q/k;Հvmd8 Ĺ{ ԯ2u0nI-> 7_ݞM3:+2~{B;Iq\WFCB!hʨ=@g46R9&{:JSy sqT"9r2H&d<ҥ4u}Ql xVwb0'-dh;QKsbר-_Σ l.iYb{ڴw\ EptDf= ¯YxIcYbd\$L$C1_u췕wr~Ng1&={8ڟ^c(t|-Yb"y9RHag綄vwq;JjV_HYv0J~%ͯm]#׸'Xտ]E9@8/c}40czfై~"⯌Hik8ǩB1_-Y6DvN\s5.0W;E!I-Q2mx'4RbjY A+" kJTk Ԃʠs`6>\ :8,Kљۭ7o2~t= ʫu0 oG{ӔqݫZ|μRS'6f7Ǿ$ W'Cv@pwddjsw/HfRE09CL04fu8>=2iγC&NC5 VTD?>].ۦ+69%g[ &K_-ZgW _pvm+OnEE4<,ƒ}:fZ5SEk uVQkT.J(wAAl dtonR4b)<{ݱD 2f6"Qʝ_O CaNtڬWoZhGQKŶdHIa1}1q n88\| Pu& p(h?"2I╨$=AŪP(9D15(vU8Ggݴޯ10?+ZB ƃ*c!'n:#lbդ쨲m5{d$fUn6 ʲۈHןӊ cA"_ eg]~Bp`yD Aa`^G򣱹ވxZ8skg"{ɛEׄf$ϭ;L t _7jfh7t:!(HLD8aX?F6P\WA5* Gj3Q-mt:-.+HE'5N XȂ!,ƘYxQv H J碇}d;YP#>?+W= fSN1}hwV^/ʛj潅0Z>7?iғ0N _0+G>fTP@<, 9i(&TDzU3Ab{b[JW)![@ &\> Rf NG᭺ـFGz$9Xw칿oeLoU 7+;>|5,/- ăOT:NsCL37b/"ZEpmg (1̖Gc<<欑!X3W>]˚_wvމJ^`EZ_ɿh+>my.)~+(81m̢Ͻ+԰Ab;;!ͮNh:aO+AYoi tYwS; yy$`d:zbj߄j`mJ)8pf&s"(cArB>gOU)FޑͣKAz;wt.a6r9Kܻc `wh;IRh(Е]V'6'Gb74'0jff8痯@ףS::7 /e7Pkjױ rdOOy|L=|5f&:BP T('-vƭ(T p!YvN0ΙwQge! `Rv߂>t*UC< 49Z>#~D3ɢ`ؽ8У$=^SGA\:9n (ogh@mud`؂PF2 NWk6FޮTIU޺Eoj Nd\eZ>h2^m+%%y(Hi> 3KMbط̟>[IP&$RmP3 ڍjNh85JN(07ۧc|k׵3VhcчPR̊) ĮΩ,ӐnO}bm7BՍT\Z*~RQ"ZkݜCB!R9+~nX47l7e o*>\d*k_ꏰ rz);ؗ$#%J8ķ kT\ٶj|4O ub"Z12f7U2V  ۮ?Sm1?4?lȡI;LnSx: \:=c@LchXHMhs &! \;Pk*l u4 $?k%6CJQ߃qU{ ؂0i}Io5Q_`iǼ^*Y c"BJo+r#P~xwD~Y-X9V6KgC] KZ._&UE>u]%G"xNj KbZc_4kcAY-bkqWP)کLLd~=. _}ٰ+\@)(a[XsXbN Vvw8{br\ L0 + t:u,Q2bܲhTFx\,w,1?lI0K?g"l 2)eǖ54n4 Q {+VjH$X z(#Qwb}%߀p[c,ik¡MDm>a0,hrCx9[ʋ.-?X|SÒ)p4T^ Nl4C P^ 461,VNZ;; &P@I/7]]ހZ%+^JSO{m p@ % c 6cL"8d(/}uŅ/FLM7-#o0,|+K AB$F[A9f0 *I߀h@ՊtVm x~e^6<I5 |Vh] #ukQ,z5]#)W{fUxbZ6%An=fho m"'j2(T:%g0q_D)ztq7 MVܭw|^=_ GM t)zp V/lK u2 6B^z|lȯc l肢Gs$AZ{?B.IpM9>\.b˼TNVDGϬ)}Ie}`Gnl;/tY&F3yHΠ 6g8㕎0Fxj|>'PN?;X@NzB\ 5myF7pAOB 0z*vf|ő1t%r T[y]6^r`7 :N*ԜW(@ aL PZM75HQLBiw4㕿eEL`B*kEh?M2YmpBPRA#4UTTh}&Mł F!q @eV6U1^5mpȓDv`YSR961xޝJi;C^D!1b 0ҪAzd*6ਊEN jD>1bM1{Jg)υ ׾WVŸCqA~q^"j9ޥ }wÐqda?zNtiCK4jƑͭf m(2v`<)?Bv4q'Er`Qq%}2QJ$Wr"P(*l.T(yg\},[w2.)kkm܀ 3"])%*֢;e$0 qh[€$۳ BuGE#qe'P G:PX}Ees)q1< I_%t&W#&f1O( 4v[N?3!$vUe}C4?k0KWM{8 dhA``w w%-xZB #-K_Pm3DC럅2BqdPu_>*Ӽ) zwN@ nD3*6/kS6#kc5 ?T~,aZ<>*| ]-eIxHe1ZCçRɛDѱ˲J-r>e$pě(2JM3);1I`x-f-5-HIP<4_@8Z`Nn$mo#c!16Zes5l/Ůcœc|g E <t@l&Nk=e\̅U{MylbxzPUؚ8;Υ sn=an| :>] @*g6E}iX%8M4J%%cT@k.z˒tdΗ4Q{"%C b i3:%3\980IkxT菛,T`YwΪ?!oݨmH~| ?0?pSFKo4`R#9*W}eVD͈2b[hVH]! Lv 8u7|bc 7>\%^º ڑ\RCq5{@س3L!Hޭ(9)w+ȫ|'dz!e3#H~ruu,!У@.=s(RJt|M _OԵ͕ fW@ޝr> bL5+ &ĭ2l#He>QP"`}ز$>Ƅ 3'w-8W{!%(60zf+I,7pt #Xh gf7Ku:Eٝ5 pw7 Tc"bz4V0qD!B6Y=8QK 41i2tl4j'1? FW'# Gʘi,΢]E)6يFe6mWI%nP&jՎq@qEڙ3Sa^(,P,#҈sq@O}3a9LںkLo|hYz믂qr^LttGk1b71y~f{ơ.)X(ʹm"|߱Hu F'Zxb|+z7(p墉\߮>$,7tn5+ gZ3ɂc,65S؊W<'0 b>g'c5/FxmS`3/@Op+`">[<208-L`8] TsMm:Էo8R؃<4nn FؙdEpFersIJe[H8橐{D*˙62$F._EaS \ykŨ*f\ρ@;eHmiP3PwVkNަb8T)-F?kvP|-hF<=̖9=TΕkD2@Ia:Wjų]ybX֢ ^&mfa%x"!+1B;@fs:1Վ}O0(@S+q)BkU{ifmNW'CDa]N?,.Ԥ̐ŸJMJ(R>r%F( ^fyI9;d-mi,e .CT|z"|;EBsٴl!,)zZGWxfȘS!tu߰8:R֨"ryU H•%P 륞6h) 8LōoSi܌JEF& 2.A}X;=,p_PSrbE\&BM*1qGY>Z7gg2޲Sgs;b$g~Md'hYDaIEb]xStp?3]tY1~8%g|sk WFmLR3.I("wېa&Kmܕ$ol_-udzaBZQv63ww:${~vkɦD%!C Ru^c]^U<:_2PQ+HqƟrl6?MnOܩėE_H# %G{a'tXZ Zt E/DO 4MwGȻC +XXGl~S}~ܥVʼn6Щӹ{_EU]'D:6Yj[N80ǦZsG;[X쓏Sm[&8.V)I#x/^L^ޚ1R{yr!D !RK}~< s!rd'ztS,G"Qf༔y->ctigYI5[.и{2\.݅3]JNXþKR iʤYit͗4/=D x%2LG"8@9bE7Gto~DfcWW%=s!C /\p@ c|fU%CL-<|)'ngOhK:M-NWyb)w`=U6Crav$Wv ̎73`}lvFRg nBq3֞4 #l?̚O'/\D劣Q@,.`*ġr_^*ח Rt 1нJ(TKF:w%͘Oo$d;mVިh9~1D.wiWD"b/ mֻ4JN$YJHgiCm <G6d5PqWglxmBTc04-FTD(5Ο+Z50U@:*;-3TiSYm"EVgX;|# w`Ok<1N:O|oljR ٰehF r=%&׭6fDKgP b&\}:Re .c(,Lff&8N4݃oR\?(֐38o|kqR3]=mIsSQm{80ܳ,(`0[`iѯT;CG sM'ԵiZ*E }Ip) qR&0y ϐ#G{MNc\o*7+Lt[u1 ĭ:Csr*bNYH%a󱔄+d_YKւkXᲿ~n}x2bq3LS G{chxv 7` T#嗻rxzNneW`8Wn#]/jfh S}[c8˜o6eG[v{x9%Vy̦G,faӶ+2Y_G_gύצD3pGR:MmS̽iXrJ ‹&s &nb{!ܥov &zF\%$B_p_@Є9ƫv裬Ddcz;Ǥs?182״Hb'LW p~P xIn(j@K{IapM$P*yu8n*tyUQ;/,7-q<#,:MwcS\uM)Ԇ8klX){.EY2oĿC{g"m\D&4,!T;sut H_th`UiR43U8ֳe d˨WV%O-\^ ò{V"+ѵC!(a &eH ;(GE/ qGѦff@8u zɏUyk|(Ls#U+J!Zpqe'u0f!U!s/#}vG%jFdlvcM/M%+jf 80gO9b{xܔ!:'ytAyExk*ܴ&?GTc&>EIUǿ/XF2ޡΪf=aYhˌz0q/?\o@{vGyf5en}&.uyO,9` MDI|N N礜 c gP9gƯ;\3X[ Z!Puif|Cp0K2.Gʡ=lTn"_"K,y<.fOg `e*$vB |RDW͠1^ IUE( (7)ZC)&A;t8kK+ X&F}wa{UWf0`q2(4Oϖmm6#mS0F>wT± ٪C)1,MR֪sr[MS*]Fd5x#v|Ds'R'>:KS%oW1s(enA˰؇eDZR1uȯfaFfqȲV/sʃU#I֢ՏRdNUJt=퐃6}1l1U鵓Ţ$#1=nOwLgޒ %@ jVPP=,%Ln>.}ߚdFC{|􄚀5*0l=u-rۅm&$[Ir4%o㿱웅 *wIe.pf+emg21\O0Ԍ7.e{0SLIWgv1j8$2 CNNJg_R9 w\GQ$rUZg̒XFR/ҢPKV^+[UPY@y>8휻CJ<\*0evRnDO1G?W7|ԧe}Ai,!vu5e;@XmCzX`vKJJV>9+ʛ6֒f7"-JXL\?r2$k^oXdϭ*RDg+>'{AץY!I&R)o\|{e}oDaҬ3Ʌ$L%J$~}9B뗖c]5$t|تvE S=ɻCǓ"y )=x3'I ã|%PŒ+e(fJ?Xsm'nY)O&,t. m]aVdwHyt^m6 4ܞV5yrDB T`TLo4|'],Mk?3/D_cWG䧪#rk*\ "AԁT~z\SawSܹ~%:ě`V!x=Z ǭ3Kn9 *Q``C^D|ٯ\V%V4k/|R)!|%_:G$qmaSZ[3P(^e Mq #ú56vas䅩pf8JXjFaZV>}!n oQtc;k+%y^*x] SE% ٕ?`pB9tc/8Sp+>Gp3a l,CZ^Z18tث%[N}2 pm_WSWo;7nhsMz$֫ȩZ-ńV4܂t+';Uhd47kP5_/(bXLo9uo(/œ!X:r_qÎ0  E@ǜ|X?dRy> fSQYPhbExiG_,)9f"MkK+t @J@m˩ѻՈONSᆚNcΪJMs:^+a"49xHG+p45FŇ)N b[GgSjiXcJE DmONm@;0ipr8tpɬQir K2ވz*L'TP{P K4bZUĹSA`+@ޯ0E?(D_7j\K~g'#I,i+TfP7$]ʲV['+@:$\ȼv,vNjǒW!Gh-q}VV6 8&=E.1ɺфf-ZY]S^@P r2JZX$G]V͏gAd9 %Y53jDVEOI cܧj-14ĪLIbx$X$M+ioMf[Ӹa%uUгqb\ Rc:}D߆'$ U7"#tȼM!#( \h #|x9=01d]Ԅ]dI* 8,7 枚jK| ;K[~q!'@9f=1-%dA[eӿu2ۼ"./"]Ά ,_ϕX4W>JjÉW$Dcxrs tfixM4^tw,,A@+a؝![[-]@9p5;-/9'-++!zJ|2yKOt1AY8#d!}ј+[J:|dF'~W"0Ƚwm,#Qsz| Iq@iG+5w.ù=E]regG2mP3P92 'ޝ&rگS6ݑtqW6Pl zs񽽆lSn5ƙK@u6@ W h5Qڗ[||Tmh4G=iaSmQ17G[~AL9_ ('K~ 2OF(;N-\iwDM"9G38P<{1Aa- $c.n7etK9 qbOñߋj|P.gJRY*q{ޒJ Ug:4q?I!Ey!d8 Kg&ш@ᙟUMɟ/I 21榦xpoZ&xMԃH@iFR\MbJp*s^o.'^myl!8G⣳r3Y b[z  Qx`닃»m~sw>\Y4JE>S0rq]/?gO:-VT$1Rl`z~LѢewi/FϿ0H(w ̼1AP<X: J!$,];qa~0s9v<ԉʛp;rF]vJ۠)wƓej8HY GBv/ؾ@!_3gn34.Q63$˅+E]/8F& }&%h@ӤZT7gcKj P:lT(=1\⸪ag`EA;&\Zy!>I^5Wfs&JHfDB}!ՑpؤI/5X1^G$K Q]7MM!4\+Èx % 5| d44jfD}ɠ9Xҏ @kYZ޵w-D 8$1Q'YJ4/lL{DIb_ Vixs+;x %V\9J9Ci,1=6ȵw#1'oztTH{k\6U$Qu;~(qTɱ:VS*g?xnH^4dؐtî 0UP4z!BFodN;P & EB#W)fǻ)~y5ɺ"K;r63%)xRKOug%0 %W|Nr 폺@ +5f1U(oKe`1yȣJﬖcŐS^0NP>3o> }=,'tWm;VD:zyt(2挃z .?ˮ na8idwx.OGVnVX1qIVw*he3Mc?a!X)Xw3m˶"9sBLBEB%GH!0oT0j?h3gBJlVb15Tٺ_xRKk*a? .֒ޠCI^4-vyV (/]Nq;'XQ ֿ&{n*#_P)AcϕA3/kxyx(>4 1n,rqV`Ӣ[QTb-Yt>32j gڷ5sh"ǶhDL `n 3(vHb rw RtDG NDizXG -IX1ydu;mc SvÍ T )'j4&?[sHaF.{e3]Bx1]Az-%L[Cvp :ZL;YdFc xbJv3Ķv(j/@d#N4d~i3]ЃF1Ʃc]r`)T>uy\m[n]=`'O^", ,4z{#McLUK,5%pm۰{Hu첀"\Jqw=%go%ZFZSEu2z4.'8 }W ZkABSR`M['a枋`JQZqI8o#TdsZRdR *3.c'B[m#I_+G Β (| hz=O(N HqwhhJVy̰cA䤟U*io<at_3L 7^*i @kP$;HD⸟v"B~dN($},ctD3] fμFSI)ޮ%'ww$c Aq+Jq&cn9^ auʢfv( 0%=ZgJɭWwSzP-qـZoQr]:dGg0Һ*;aǡrgd˖xdn,t]IG*N~)ܚC =1g[d@POw $xV-oD;PR`"Iޏ?L*}'L}IFu~hNX3l]~k ޏ${BI~3$6Z`!a=>-Ϲo//u#>' YWI}&BjY.Z~ủ_vAQQqyUY+Ncߓ8_pi?rbe3Et0in]0&XÚ-_ OMr ʵ8Olu,|[ X0HrzZKz.G!tOxIҶ9Re ]% %1R?/UIZUIy#1?4A:fVBTg^U~Am@L9ʓ-A @[21%%o:Bh+ej 9@iyJ(c_9:(UZB^]頰xXO'~k~H< k*rl<̘>c a!垨F/EylR/^Q?Jh|tu82s U6sGew3wzcNR.QF2^F t a/PAMi_I-#!ǝt73 |bpك׳b<C'p#qew4?XTw"Agm5Ď7x PU-yYͥ%j78,BijÅSrByusЫ+j#/Q߲j)[GfE/CHa9C,<$ *X ubI%pkrc0"'Frj0!)ݽ8E PL^LbMdM/W*OcL^8t&'Aa*͝os93` Uξ+vP 錐;螒dHEdou36ODw2|]?Eoؤ*6tŽ 01ɖTm!n|R7f']ix $h.`SC a>?7VęHX|lVECQ!F/7x| ғ,6Wl|b%?BO|WW;m }`JVtחV}(ŲmsV zƴv.@Xpgf>KkVW%z aթO73:hR%Rxi }'C DY"Q0%0E<ܙc1//}e9[{M:ՓNJXGN72B-M ؾᆲ<,X')/c>e d 5kF4O=h"'shEA OB4G43G%87l`-N[lD*tNfYiBj`d(nG2(<9 .$6dCc>|xG|gqm=~+UshPqm xny13V&gllTXDGxNN͆{,nϝ*-w3o[і(U-X4) {A2exaW PQZ˿0Wod:9NJ']= ^*6$ Zx_KF??p)0H=K ezwsX_R.`vOxv&(cפs{e| vR^1P{A|ϒ%**ttk녟`e,>ά+dĈ ;Y$7_7xʟA>庈]I*?{k,Y!L`=(Ɣ-$h#.J!ωOor8wl[:.O,Xh1OrK,n1B*=r%x╌iH/+$edBׁ`v~[ ܪquJÍmgPH-ժ Y_&%LvI/#mMWý 9IPlm[ą)DeǴDm !#+=M:&|(?sS]cT<,;Ѕߤdgj˼zBL I AXEDL;BԽvOeWă1Qr9 25>(#227@l腨굟|w)CHhZe.xQ7+f#2skQhd8KQEOnJx-5(1ORo;]G TwGeEpA &^<\$9f>c?4p9_|Z%jB4d  MWd aS${u]+d;MazŲ ?u| )Gd>oVpP;~foz0{h] r)喵'K.~$K#MiN7d)A: B^F I8C=@.[?`D`p6V#rEFMEQKZ8iΑd%Qpn-&tf*gfYi~=ͳS@&*OpE5|2y8頡}K,j #AP* lxԘ<Φ P1\R@1N#LW@ELYgΒWel4'SfzjY)a??=@PVm+ |Ǩ}D_gb{@QQԆkPV՛'`oN|$S%R)?BAopFPrE VJp;qÝx_ Jqwv/d,0di A\P3qiŦRN: 3F+OIyA@^K>YON.)Cq4v?%uC:kXƋ"vJ/@q]WZVU \|cUʙi#̚n><*cXY=KnD<ˑ^)zvfu@f7m^./xwސĵ=Jhq mRׂq&ozo^6-(x0T0rb&)@t=:bg;ޮ]65U4 EQNEDN&Et R@ Oh>ezw:9Ap{5@M?)\kA ʨIʭS+q4cU#I?Hlǖo~FHo@QW8:c#"&³n Eⲙckt]@`TfMm}UqHfD L7|w[Y@@r}w8^Y`3aIӉH1*u6f6ᐂf;}z e@¼^4P6|&?OS*ky8ύ՛h*-1ΈO^{^Vď%$}ctpZhOa92oP fx#v)ӴUt}zrJa^+<~!*~4=$kJ4z&}X U F}{CFppRvw/ ?Ȝo mʮGbm|ljmɚ'_vX[J\t,1Q|4&jB;pFV9 udrq眜 (_s&Z/ciV^1A&SR 1 q d3;>u.:-GqeW-έENkD#7P5`=pkB7l UboVI|N Q8Z*S[};fchbi zA!$=kr*H庿Q2&r]`DI !GO)T{ t]r`!dn$^دY0 XA&h= 1d­A,f-9n\A% WyME <P鎎5 vXhq6q|4& +f61^RqͶOEDs< -njӌO_-_`}ْ:; maA6O4n jq:0<|`C~[4d#SUZE@W.elR\kPsI ~Nrp͒Ut*—C (GcF l*>CpQVCyX.Ov>XktJjD4w+6A! ktC/#f5mi>AFU9DQxϱB?-3AJ@wXp+~7}@/?%&{6v7\G)G|?~5@ JRR:x0B~j%aLlȯ3<$،bcM8O 5'rvH&Vv^m.G6tjrW[7g;Drq^_B(h rE1M! 3d,;d|88*2 ˄M_X [W}%DL"W4h+l*FJVR{jy;,{"HmKIm{F|JpC)-S#\zZ'L6@?9>+7`U$Yn:Kӧv 9%MK,8P'Q5B3<,2Jċ6 =D&E- K´cMuOcESv_`"L'a0Ͱfxi`RԣmІl.i1cKՎnc 11)Y*-^G{+bTH9hy.IwDߛm=-yɉ|CK%vibUy4/ (uV]H3_H~vXn1(8B:Ax,f8BFHg8(9md?xN}5DMRا}TA1O3GKe/l#1+XEg,~ jęgk7^$Gڌ$ʢpyy) w쁽P $+ = m區H)=7 w#+#h'h%l-F}_Ji)Bsc܈IF ĩG-ad'j57(=wю ׸iZ[z. d{Wn>M-L@'R37H PtDw Zx8J>y#qu%궀T:TcSK7S=0\b#_)G EP{ ;@Py5?\ۆa a{=vh8Sk( E+B,=N#f.q{rD>)4zMZi;jyP+9 ̘2Ot>J!D]J- Hin]q*qCQ4]r{Xhi'5^k%(lIBⰽ`ǙRa&R#w. OːV7V$/ *љCКrj[ }y< AM(&9/6CdKْ/6.ڍ0+f` ,k 'eݗvScD薠碤:E x""飊ׂ,{9 NDoI$[ ȃN4M/jS^,H[9rm,T׃UOԁ: yIMLɰxQp6"URB}9ިݎ\hݧNLWe̜4g^ɹc5v+V"F8Ђw`Gf8CPlL^]M#DEDKD} Ys FѢd)O x_ mwx$d881gA y[%E3j̭J Y dc^x_r-[G?u X݃wsRpL&&)WpHEIpkZDR;+qm=] L,,MR7ԔXx'XK[|?F*1,qvo;MW=o.i Ild}@s{x&hWN|u8Q]CLRPнy'FLj56$6NvXWA%L< jCoHSMw^9y1 n$H+oeLh Y c}Tr&G9n8HU2!UQů/MOn;ӥ_k9& =~/4}O ެPNXLlI1w<),v,'f/л1eHEJ~~;mB5hw刞$>u&&8JZ;GiJ<Mml=r ;YW2["936H1i/ 5_Pq"THH]<#sr^l/ndR~W%UO=hKÝ $0xҭt`mhx!@|+~-RxJo%W=e y}J9zWTgi^e}^F1Yxyn]C>t[Qʘ yICI؇w~8MZouMx7і4s%)6uHc7`@]Ak͸nBѬyѱdHjoQF7oJ堜Y?k#9 '9i,4M=D`:xU14 H}&zz?͚yN Uȵ>7Ȍ ץ0ǛGxP썅Xyυ#q`t%' M B[Bn;Eø`x$Vt;ta*AT-=h{̪I-gwqMNNl7LKK#[D p^Κ.w*DW OLD qG+hwK JAYB90p$ i 8!j# %mm/+b(<\5|RzF0qn|N>X{t~`-<PoygF@ Dt}[տ:7w]=b=<*8*m7Bz[ }~"")}KiBʷX^ tz8~x\I2 wspmB<^@XMl'GPCg17v\Ǒǣbcy$KZm 6W 7o>c/iU\suîQޤZV G^(Z)v.ҹaOyk">wVdݢM,5IR&Oʐ&'k]Kևopf)\"m2()5?1"~AEbTq+ ]:&Nh`"㷦s C_g[ qp*+l`+VaR&]*Zj p쮐Gx-OP7sʿ$PRZ)eP,n2:U/ME3.}9۳`gP~jwY:A&g30fr6jG1M5 *+p0'B+ڟxCjN\Sg7A y~ВoV_ t?Du?!<_uAsWcOg"aeKزd_ A;Y)g3fAۖzPkKxLH^ 7@9|ͳ:->`4xÛsfnm4 `&EcǬMlV*Uj#DFؠoEx1a|c|hF S6x 6q$p7͢bǑ[]a9dNv z*gc6Ƀ sWQwQʕ=KRVc W2OL$3&BaFp6Y . #|{$n)C;5R@|HgONL)2LRΰͅ鬯tf{^$M 5\U/PF4cm. Ǽ>kjSYM|Ujtt\F | 10%k1E.FPq 1oCX!43vjv-롪" ˜i[sV/iBe>.+Tog oT+ʝ2o(ƫB5aCzIW sFpO3.szr U)ResGɳ_DztQIs ʀ !bx&M /$xr]Z\',K2 WȨgF @0 eo3@DFD6< pA.'57Ր@]080YiWGF7Z"mOXC92lx"AR"&`R3M-f_[ɀJO `(̋ `tU \SL-JE(6+ ie10ԨQhO`B̧'kɰ?nō䭈s mۑĖA @ | ODIԩ:ȐבׂG 9ӫXf>8+ur{SKiƞ$&s^`G]_cΧw](EǷR˻FzkXO8Tg=`66zud፞={W>Uf'+t{.%zJ+1h/-lALF潣w=rc0~.nJ'}'~@>U {*W1sgDڊ8*DP.'LeMI ޡ.1:~Pr]Pht1Di'N ͠}%m۱t8Ϳ?e\o{X\xs0sl7ւT(5  ,a% k52UغaD[7FR"aP.3UvPZ, UK׿^91R"PW r5t鿉]H6 zpB[؇#167yL:|=;0a@19|Kʘ)⫷6n)Rw}vWL\ܴA N+Vu>tZ_o |ǙlGda|PFejcF\u8'#W[iyþQ:.oj )͆߭]̰@2K"g&΂ Q_TA_w k.#kWpn.Y?Q%aG&%|n°lY0!`ĢvyyL fB׷v&Lc <{OҬ$Sp\/' Qi;hgrQH_=ꭺ4\_YLƑp]7!fGА+996bC&!_a{"zo`:R;Y&`^Dޙw`7l.HK}ZvTY8 XF1n$TQQϼ"ᚨ ra!/xv6'_[hȪ`b\?DO7*p% o <N@*J[׍}5G`#oQ #> ǮzKp2Ο9sNTvxe;=_\AR_|ϒ+i3Mn[vDK7n,H2oxܢDJ#lq}DHɔ5ZQI.{rG8>c]VFȶE}5$']X!FȟKȴL%Y[.! `@5+"IpmkP}oê`$f>j)so(g(x:MYC1$["QXO:zW"ady hZ;TԨmlpmqDp.j~;W'c Ɉs}dtGc8. I.Ĥ8_~k_UsHA6һu }ߚX}Z* WƛRK9?]mQ=F/s,8xX@2i'onTMu 8}?_,kO7 JY$( {;%v?ӧv@oԷJ8$4pkff\l#H j+;gU@B#|V3h1}гy&ěa;eny9> x>`n05-NywF[-}$*EsZ(+WZ :]w1Z1pYrAB 4@)H sʄ4t#C:ǴGRRj.qPh$q/n濕Nt`OTY9}sLYW !>kd/˫v>"*1)H ѩU=1pt< bn]ՙdȥ uT[0#Jtxd_6=uWޖ8SGB=j [3׾ ӏax"E6_y|GoJ%e#9< (WS&>Iw$=S5YJA30#0G u!(<a5qvH %TƣDW3eZ]D5إ+<:hQɱIAB$&DcxK=>϶coJ"x8*P_'J\9߇uR[#R^l0ؓЃE)F;F͍{H.ZTƫc۲H2~0J Yk6P@ px5'TQPOI(PVPjz6weCh>w;TEO!5]6Ϡ/M?ojk(,)|iԎہ)B6ۼ5~jL D.% LpۅxDv_ Zn!d־ٔӸ6~X.>7=s`x R Cf#*GSGՔ2*%H%߲|_7Ԕ"K R/iYe_8$ t$\Mqi0YRwFXnUZL*,驄r-O;vkK _ztr>(S*ʙ@h/K6u~w^CSfIn| k磱_ Sb*aHrvEVqӪ Q= |3´Z3AdiyKWqOނKP(͋ MG' HbЎDf!~0 ?9Q*&,7np9:NSzS0Q>iYIURr58T^KtOU?3 * !&2{߳;:0aN05vgX!INB~>,زp'G!zk'aA]a]w+Yw%N3Qo$`3Džɍ&YW+K"!Ó]Xfy}sCQD {q)U 񦀴NVWюuױc \ti, ?>CR1bj'xi 4^0<rùm+Yg@s8o \u1UmN4poLˡz|}y߄ ֻ Oh! ^4&x9[G[iuП$ږ+ՉHq%/]ѩZ9ZsT`~/B#gQ SapMZv]p`-؀K ; 6FV| C$^}`V]09${@{D5`#Πhy'iዎ •X;S"izC;a|^y䵠.0[C b}`HCk|V4=%c=]=s(nCzN%-@ު2/B5W&-/ŀ(ʓ,=>OsT9 fSsspl P9ZsK" '-4`qZwx?: z:x:1׆GV|rRʪD&y6a1TGi6H\[!W7sbŧ+UdObʏ;.*Rءޜdb*ud9H“H[3&}d¥|31mQ p)5~wɂbkT~MJu:7^hW#R@ Q|H85@0}}fyb 2Цd*&1z(SA-Bb`On M ‘P^VHZ[C1hcռEf/K8Jͪⴒ/ǿng[tdx~ ٓ͵ʟD)dx iNe!N6̓m^|A`O[Ikɿ=PTTքooL(Ue\9nlLt4"k?L"?lh ;CMu_$4Gr5ry 82) G2'JOנGQψzzJ'.J»w*‰]*nCD(97&gY,XQ<[ocp]ַ^HeW~`ChսF%(ۋrkmovN¾ : K*~+-[_&ڑ!=?T[rwU! \#bڍhR1>;lzxp̽ҕ:ww`9G* ̱Z)6jZFAǰe/in*ZgB2<YY[2˟cwGZ_* y^;Kn#Ƕ U`F-:/뛉s {a.< tkQƝ82hzWL I +p݈/y'eh\)zp= z3 VQ&gYr[?Te% m>e',?jW5 SQO9Ĥ\h9]2tTWpQ>D_gp#k8eŹ=?^qzvYVQC) p`}+}Oܯ<%0~@C(yWp;y*ZXocN s!- yj 5CJqNڵ *FgΫ \-g)\rjVg+=;4H"ceFa͔!nc9^x"@H q )fXjVB0C?a2pnN.T{ڎ<%!Og00*U+h3U|i[;zy0ΥȕᰳSHoArֵ󖮾hunjwFf)́#Yf,K!}- XaYLb(ioP,kV)n=q?kζ(_ۉ7ZKr\ap-cF|s+DU2)6 ud/3~:2";fɒ 9uI!v@E,D6+,sZJX s:=_j>|SV@-ZFIi+RcDr:KޯE}<.ԟ\ww* F&wKdf,H563"og7$_C"o1Ķ]іܓ>;Ȍ!.|;KZ4@7!lT]eHy~ I:+y0&;/p:mPcE8(*dpb_*fKGeؖuBX`$D pP%)C,u 8+>?1 ~Nrl!ZKuu>C%+8{uxTD3bT/οPZoNh"kiGUb'VRxôq ~ҋgУAz=0e/un /eօKu߻j-^޴,|H^1,fwɴW}R~+ zm*FnauLZ[4kPs4ЮhR>woG 1o. ?>>q4v^]&[ !lG@r'5Or7qr fL"?gJ*wv;۷|eܟenH_l=rO32iid-??ax*~>eŤA?"QH(-"~/#`uvbm20FE^A۞:czRf~'KA_ʇ9?jMMO)rfֱ$.^'aB" N6dg; AV E/8mij@P!B;[]d s[ZnQ#}NNHX:K@d܀>|zLj#Ç7&|s9 H Y sTbAj7yj/u2'5VDN$<3PB&ϗ*:<9H 鮔 ډO"/= _JT U-ogc<q cPTxޚgk-v^utn^x_*0rń"pױJ: 9&ŗ8E?]y!6 4Ùf=T(V՟}ʀA@*O9p>lŒJ]WMftE[;{OԄ$o4UOvA9W[uq  :5Yn x 8nj@&]ȠLtG9\LcX5P¥۰g{UxY6=P@/S3|bO4SaȦCL$ dhQG^ FGS;}{);g=)܌H"Yt|5>' j-:-8ׂ36>ƐwM(:3+t;NB `UsYuC73V_3@:t%'v$1xda0v}kP 2Z'b5wCDϷk<=>`\r cPxd'lRTxoDkQªp>ϵ:뼟`$Xy]#>n4T>fJ3MLSL,AM*I)5iGgA>+gLnha蹧Pf5u"pL0򇦐¼vac:mzMr%5uΏeK p} kYnRH-^lO\NPAԺ0hANEMAȆDH*\oַ2}\{2+rD"5Z`4?y:겳J IqFWDWy,׾iB ݽYрpD3e{jIJx8ˆ"I|c$>%wROq.XVos>Rz3 ($3M@T1{a36) /VY 4 ^G ߷(fQd*B&vؒݙwĂiX~ОA95iջ#a{GEGxf T#C'XK\rH{! ]U(=#=:@"mȕANp3[ɅRh1RVwz"LT X`)s :r7ӈM~OPgBo*=ύnPE\P!v6V2xB"p*Y5%Eh]s.ViRUPR{dt"ԷBcq(O$Sυd]\A%qh;wŝlq}q zN:[Dz %H Ay }㜼9nOhtCox}D&p,V~)CE:O̝kKZ X FJ/FG09#|4pN.:.SS wZ ҡְ86ˮGɰy~+UF EHkrmls5|H |8ڞ%w8*PHMQqNQ9W5N+'ugML=8Wkfڝ6@~ L#&_[sHtVhHR/)p \yN32Wߡώx4 BbPY& 6L%D\֖NrLL)(\$:8YwqfB'XkU һ%4e|oIt1IA*J6$$@!F+u Nt%ʱCqz SGIULw.5{ Q ATb)p%L"cōp@cD[A]&n[~.ķ09EbHj_ooe)}5<̔N@u'KY7ԶML!@%.,&6m&m:QȤȃ(pJEtwxFM:6K{n4; ^MÎ{u̎Mkrmi~u+ Z-ۛm$p*mhx{$ҤsM=G ~ZBqͯJ-V9m b u$oRνu1wf^ch(uֺhaU^9ͷRV-2*[Aj)F7&o7VVuqtI/dlwmWD}s. I=.l{'cD>wAŠC,s88u7IBⱥiǂtZ/`]ir&I+މ'(uIXS2f˒m{s䴳]Fv%b3ۛ+fDQrqyֹJIFtrgqO^pg%?x`fgVh % ;2 ~/+_ښ]Y1mLC:Zm, lFcސb6k#܃HH_G"N(3,r,}N%DYF ,uOoT%9FUVd TV1s rڼֱWeٽ'=*<&pQ K$sĊD"oПBmnen$MTr+),a%nhZcCD/LgkfiTvv(A=6ėN;vxTYA:pS VH󙛵Eg$=9]|.03k#&U33:t*d؂c^$h`ވJXN_݂߄{y}dWa\ a Eվu4(0R.޼~\bo7feN'arF7f6l=4e VDFk0y߈=B-Ƃ 2pFy3$d@IT@u^5OAtfJ١J9dEaAQ"QϱՃb [v Y8iIk==WUi2D6YT]A0+$[PM`g4 Y?v}\PsKTtpi{YJY Zc 3ban$ * ;ixIUtP"B}x2ۂ^MBVvYM@sem5{U YO¦L/nͤ/3I$`*QYpesm5ab@f ga.'~&9xJzW sJ_oHZ!AɷS)2cޗDd=[`..1MU"`[F0VY+y9MsQ͇ -/A YJox:LZ`_PE+, }]%.sqm—0*d(لo~װ[:ݘ^P[(S0>M%?y^}x-}'sUyxgSW=ꔝpX)Ɉxc Eʝ]x+Fi){/q^fcc.nxޕ-LU-[֘*-kZ8x#2z0-6RM/Iy3ޓ^ x|GP0r ?(9EU 4xh1彫lLIߎpݔ<]v)$h/b~ˠ>rZy%C>X:cR%=] )asG#󫙶Ԁ X37ddE?9Ry46mDκ+)R WUW?^6//`Z+>]rBO?=QyT e 8BC**,|ӿx! \i62T|p*@GϠA ܽ$u;"I }6L.B سo]8Gu )F`3#`΀ DC8)LIj l)Ǧ][v+QC:RO o, LnlVQ]Nbvȍ({0'!*̀:둖z ;Fbv9y9nIEGmHsRl@!P)HD-Lٚ+9Smiq뒀 C/k$kzSQx)EQFXrݶwJI=\wcK`|lwMFhu9t `b^t2Yޝ0rrT}d.)и1Bc D8&=zPRYd64ET;bDcc!S{TK\Ǭ=pgU<>β#f$Sytх/ÅS0O8O![v@,e4+|8l?nZ|"i4tJlNf$9 шDU=6d0Jd ;+ڞɀV M0 b ad7m}y @XBTwq>S`7kȯXw 4OH˔S@A$4P/gu*-|N ~Pq/DTCrH! EM9y4Fq;*sasK`^6 V ZLc(2 1рe!-uwR}|vat ֚ɆYTߟ bZGI+objF]eh7w5[>[]Y.a#f9ҟ@By`B{@ S2蓧xA;6(*:_- Ѫё>`P]?uZZ5 ݗ|Π 'yi7QϮO& (YՙMLU믆vhxi6[ffPW0$Jx~yI ~t[Q.1C޵UFPU~. ӹ2HsFFYx'}kc#oTu-& < ƴh _+.=4;d9"6}G*7NVMߙD .d|>IWyiWݾ0##hIxG6fB(Kk++r66V8W{h&;81?OrdYV(L!S3PJFVI=o3lN Owڎٱ&}vH)8{o6 F>e[|p}|ʨp:6~rTb'^IuC8M 6H!"*R"/;:z',^P 81[ﮛcrJ{j9,VȔA0h0lqLsՄªzN6g;^^GH\nR1{g JJlIwL_kPObHK钺;q L!3?EaB8gPЂ]b*2Ν2ތUT酓T֘C~gB"WZq?hRf8CljUcHF>:D=WAV1܅*CΈv1ڂ\XUΗSUx7wNb%Z29qn8VTiK7~萲.!5 kpkH-}Hb2Wh[YVȺMK 6d5>ߵ,5svk8ՖЩUiխSg ~ގ6F=l~j6ӜӐb?^ΏӢ(h腨_^1$CXa0\ժ$^g,1C2VY [ni+bN$?-XSxc"B}'qIb@qmP3-gĭad۞F%Nxy M>ozUǒ{D~a6haxc̩Tlİv<|]%m嘓WvG"hܢCkݰA9YnA9_T^= MFmL3P'28O΋ D5az%uKeFqy5*3]c΁8|ju'|$aa3ci Z$V~F,78@D6@*͕|lxkw$=2}A2*j4.s։ÛhoLv> >k/2 +n\| ]4[WjYWq)ylhc1Un%Rf^4f 7{HdN`Ds{-69n;IޜH6nv0{<5- aSzL"ocW!Sad-T٦q$Q"A(";6\7C(] s6`kS?L5p7^7"^ q;c(9YQk5xL-$k*zNM҇ɱ psVD?5ސҘݔF"` ~WUeomغ878f-͑fC-V)2 XʖvTbTQJڦpB=cm Jp=9b2kd>4C}<èv l&ArΰCJڍd;'y=g_ t~BД$9 zOƇ%U6Zx\Ut8&9BtrgqVK,QmzۇycvψJ>\S)شw=7&85]%F(!Z 5:#$ (0Ɠ~@D;/m`]`qT=>j I+&+'ajxqJB9G=: t#hL ՞EcgaR^Xoo,Hi8nΕHƾB- 苺 3eAiZH1r7f2Ԑyli~:c1I!Wꃢg|tCS<_Vb=-u '5`23Xmmu 1ـ7`lXh c.؞^lpf໱XxO틳hZUW*@ ~`ga97 mBgA1D(ʒ}\ ddE,3j'HrytD!qQJdlny ~y&pL@U|.yb3Knʳ WZU#FnXo! =*]B3`CBlJX=uTmPd= ,<7.vN:IW'`$F"FPTC}3^S"F&jUIX߬1OzJMLe }t x0:25/N`S9`պ\rk͈֯&J1hdE/k1TL_N12\;2bh5;B5\.4jOiQ' d[K[h*j򃖎9QS{2$n}L:IY"d[لz%|\t:t8KZ$hդ]K>bG#|.p*NN w#ܡz/%枡h+uqԡ#/n<V:lH>PeY,!Nƨv=IkO\<~uUW7ETe'lJwy1˖}lM5s|L&GNK&Ǽ#ӮCzifL1K`u!g5O N3W oL 9d=_GB=_ҕ@9ngZL Ш @7MY>VϘȴ;U`j_B!KuQ7=xW`>Դ#MaE^d(KXw1/Խ=gwڎu_Ighj]k _hH΃y% M y #UqDhj:Kw MVăO(n.̫knx%AQAں?gr)zsr `n!vM gKnƟ{tY7'.#gTSDᨖ f[|Kl?|5[AMS;ֿ@YLrBbPkC:ڒP޾-B{;¾Ljhv"gBڊo R!7Eࣥ?|$$4T%ܓ]"PtMiIIҡDUbM-}SI5xOql2o ԙ/MkP3~̵@`WBqi9uzhR'΁iUa,& X  D1{ܫ=O<Aa[eɆo=vi-6 vnMʎ~GjϬll! U,1_{ܱعA,Qtl ҡ٢UלK64kH7r)D H5n?I>#̵o B( )SEqeq/p-k'cc-xQ͗s&Qi2SBG0 ` rOe=oZp?'+?5'g]N!^%`fLپnYĉY4 {+23=R4@^ƜFi\)k&Qc94ValI*ef pILI!p/yֹc!=/hat2 5=aoG‡.9 EDؓi|za XvGpE)WC"4UImC"<8p{@ނEk./JsƋ8zb=H"wR%tZZ+4ñ6mnuz(9}}\#ΉL[nr:A *5|XDm}? mz ^% R(x~] HS1(:Y)`,OU6BUd- ߋGSSEM|_˄2ܢn ޻(w]*4:N4oHbɂX0PitF>K(:[]s6@s0EdK!! mM%8Nlk4Q!k ^RZ `3j FNI,*2x{{˿\?B_p2s=J=φ6=1) MwZޜyR zJG?`:lGP >XхV`<޼Jk>I㛝G)'WX_:nZטKkF:Z1i C\c&k,质ҘY[V gCz0*߱ݏ#%XSoUU\95'O7v&7ڞWbQNA^Zw*z@&}yY)gS TW ߅ V5ʷk`~ko>@p-Ν Ct#4*~V}.:OnP;]?L0M\7S/k"hh)LEگ'X7*iYL=2p2:#r vSXBe+i 'yI#a$k+>jjmSV#f$y̾} O.>W#3kDy/d}o'XxOKK;F+.ksZXt,}B!^my~ F$-lzD 4Sݤ}Ƨ6l仃M5yta`ykQ:V9%MzJytϭE>81?a$ X;l@.H=YO͗ouiܼ + e˸$ ֢86w*Qsؖ%pسf%?Yvs›(3e$Yv}O|} 1]E%|&:m{a:mv(`9R/ڛ v.G 0:y۴f$cc7 UT;qc\VR程0VS0OyZNV;wkLIozqOcA N[v^ X)dVӠ 'ԜP>N`vB'Jڙ~hO:b.KcaX;)~܍ݽ*?].IG*԰1yc u@}r*wj~S#7-2g'猸c8tD`;yE4Yj\I.ʹQ狟%PT)$}zLRtg-FI~o1?m1-nQ$ض_QSJ?Iqrb2AwHL)zbȼNCj-n=H>~ͮ _`jcZh>&grsKX5LYKpΑ"Z\YoL6ak`/Tg2)@jqp^60sFv/(#I< )dQ@1<}˯A\zĸ߱[KOwUrluMq laEܾ{׃ XSғUF ӷ@uxi ][ܩiIl̊;b6l/Ֆ,õjjWaFeXT8JAO>l:&BKBKr}"K`CpgTdq?\iy>xaJ*4D:97X'HI2*~gH־(tS urAɚD4CՂtƳL?(>BJDT̿5dn= οN& \kp<~5m_jV؟i }KG➩̙r䁙^cabpCX,k9">(ijHB?y&59̌v_fbS[ڬSGly{OQԧOLh(\3K=juU3hڋi`]`'5÷{H@gyEV;1,-V Ƌq|ˈ%EF,eᑛVtcJXMl# duAcSw\zbP `Bw|Ӗ0N~O?<)F4̞]wJ _e('smBM~2ӛVl ԝ!ɎݨbϺ2ENOҨ-,tVݦXqOO5 i:ᄲiEc!U<tAnRe~zԤxq=R#"ӜG6+T{TkߍvG&fMQ1/.ymc9)y}fr>zGGHKce.)8 K\}5m,-EF2*Qo-bl"}l]4WvV41_ )/h/~4 ȵWV9Pi]VC@P~l W_kl2E.4$mk|%V}3R^p_qXWtxT3Gɣg @"}z"v:VvA,Q7oQ33C#h|+dG`P@s_r9H)mpE]DШ;*cps{sv؄8,+x}* {2ɲs19&RJ|gb:J&̛k)P+tvPf֭>o}OTrf;%Ƭ5d0_DrV?@Uqd yWiɋg{iPa𡆩\IQ=bPjZuRg`\k*QӲ &ÿ ){U4lnD~;:mvLgd ZG2OuL^EW5ZΓlGjI8r֐'nNhM7@9D>FFU@*ei^¸wTqW^(%j.>!X+%.au9f:ik"8Y]#Z GdgbXD͟ X\1\ί"ѓ[~# &Qmt<CHbHy:SL{ 49u]:,aq%UFW`*E%ԝ'$!w: rA ID+mw .D .F#pНY*c e@+5`k[J:p\o8g':]%}Ii [^F=@a 3&/'r< |PLcCΖ9gy ]l|Az[T9ΚؙIY[]Ki@-{,V~w HXW{UU/4)bJ9;r2%gclxxĕyVbR15!"p#ES VhYh߄RϓXAvK/^ON'SwtT5w$y+n܂]q )_z<^V12B"FV$yFXd;&o({?n^ {=c CFwtfWRS20wy2>? )>go=%o-pNb3M <(,͞xOY٧e&)-GD8pӤdgI;$8k&uV%U54ޑ$-20Yik}0HB6tyK? R ;ֶ,u4K2PS hz o]fg~ɦw/זbÓy$4]P u*X=ׁlu9fKOpXDzҞBҖ/PSlʦwƊfMRE"_ƿK>VӾt=-joM1ӶGe.f5/aQw]ؙ ?3t @bT+kT2p!k}84m}6/B4 +r Ej0_2F\âUel%7P~#7ت!:CÙ5_דݻX=.$8I@+ĒZd4lێ"dHV PRtp\LuW ɋ:3\_DG )c~_p3sfQi2Lz) L/!!SEݐ]z;fn5Q.L˹[ų9u6fG1.pȯZ ihc֦&0Pv4}n`͖e[Ug\YmRz0rai)8p# irZ~X r~؂sYDRDDx֑ul o HmV%iJ 1cuF qy`G "t1UIfyA/Ө`Z[_Uxڠ(R-&WU(5iHXg2թ]0bc4`QN3\t^H>D &fN r#Kq8Zr,Ia,%3;: J =(y!+]cv$X>]9E"j1)Њ鶿^uup= e]3T'Ȭ:z?Nc:5LMA\8oPy-J:v*5 9Aj*] L'jv|yOv*I^SG!V˟Gx5~+# 0Qd&1~/ξD,qhDCAl9M)q7rkc vp/^9;}K3ěLT>ҕ7:dIac31mЃ߲6Pl2UQb3r4sC2O>BUgX>flVSNK/ K ¤ۆ-"T,#v?=d@jFcE揂a C|RXlܑTv; (+[Ah~]7hHyy*6^N@N)ċ -u"uqzՍNZ=? aB˭d9TA)-6e"OATT<=E;2i"xȊ2 S599$KUXYA7Yw3o|\T=OoGe1FO=ҠrDN<7Q6ŏ}ꢿ!@G; :y*Ju} n4k%֍. M"mg_IºmsO5Y)T%F(|5[=!^$uVk4#MKF-G!= >>#'е#YtⅧsT̗j eћe'FDTg-KQ#,$l^/rX4~mjB)xV;iXzX~;VW PƌfX~Oj l9 uҺǗ!f?dTQTVĥ[g'j_u%eBe,9xQ D,CY(RZhc S;`aJƯ@di?۞=Iknz ;!7Q+89<*^sjDW-)_m#e"$ܤū _0 ֭ c7i0XږXߺ)c|٦1 kѦHm`'FQ i+{ xG/P DG'vGo9 ^O~nۥ..\$`,]:O1cUMlL;DžZ X9y;7'&s]; ;a~K I-qe0O_udG2 ,J.V!w߂B)S}:m ͝r&QA!Z#zpRN"q,0LH7{8&~,յv"zg]\IWMu>ኃ3%tuM^aթ8Yg'Қ\u:ixW/4wQ7s%5<8nğbXo{f4fdg罂& δ@BJDF ת*W+qH53HB)lV:%b쐿S XVTqI\c6uզ9@|O9sM@Ku|g#ǚbi3 >784 |x!RfϨrg)u5Dd% J'oeQda{%Ã!͠nҎ!NGei 9!/֣.F腱Af-7@CeK v1{h-h)8l|d돨1B 4p*0 $vu7Ԛȃ.@hEL&KbGuZ՛xNEU}AUQu5~ZTL6N##Ov˪E6`g<]&g7 9BfX>eK5\ۂ/~{9ICLI`'&ݹ0z[Yr,nOzX }6HEv!QTΡFx2<$SXAMV}=?ɼ?yN3u!t-^J N;KHi(nך2Ԧ KHkL_%^V$'W2t.z IJC<{z[Qkg-9P:SKD xlˉ&hY&.`q-g/wDHVI/pXqvύyrX o#ӯMjDv lPӸ WCY췻ԧZLp)jJ0ZՕFD3B%wEN46=b#F!~dT(zQk݊R|iQfÇ,#g^m'|xl} v:vN>Fl1-x탟).Dgmj%M@ @CE E}BCL[q&h]HE_݈@]]3C@fkrE-$!J0o<7DK3`pkJgFj5kG~~(T?D,_ka,T7vR.b25RmI C܎T 5?CiF:~Qƕֳ}__E:M̷l,_*lt"vL| tV|iٗ ,ҁp[1 "yS]vmklE7'Ȟ_kuN,ѝ~2'%,6A=̛IG4 J1J *+" vU`%֭G-޻8*Y΃wϬ07``]M ;EBKKg&$B_#e RAPML4Ok$a4ċM`UݏM!.=1۷X&5ZL`*@Rq,5hq1g$ +nuh䦎\"TZu*li$_yVhs$څKO g r\Ѥ[w(Uvh_k$섒oS[7:6 w|M( 5CgKP< eπX} 02QgfETѦy.TyH[ߙ`ݙhپpwLKm%)61?[5N2R cu<I&JaD8?$ ^R`=?]$+g W 5ƶ7GMLz'ix&j=k.Y;d3@0n99[1}YtD*\ ػB-. :.btyuI` ,ݙ|{VJDi@)L0.LvY˦1%X$0Ez?1W_ =n JA}Fvr2 TEKGt-^Cv @"L`8`E(ϙv:^f7RRo&jN{%,g$ <תcˆ4Ή/'VP}(|+ >˨;i'!.Cs" |+g{6y8;bIp<~is@u8ShcG xӘ̣ 4-|%3B't>ZiР&+)tR31vC9E+Fb? Ж˨hٗIur-zH& +ת0rU;JϊӨEH=dCpyd9?PhR5*& wO'o6Y(,ծ$3e\h)=X!*(42gWiگwg{|BF)h. F̞mwn0tTL{3,9*!x(z u I1ب?jb4er^=NVH*>j>i0U/k?lJh.Һ{VK.o}=G1.$.yHd SLPr^ߝi"F-pTh9;Fnv r8;aJu> &xc>XQu^f2{?+qQ:H̿ą LPXٷU--Z]AC@}k1P53BJr,c mKW~~r'.h\_yF,*E~kQC€mMt|K)źe{)?NG4W]NO~;PM#XV?l|YODTYd!iJ$Gy~9~W7ޖk>zoE$kO$@2e&$ Gtȴod!p{g%Aʠ+ AQw2g_| D.%˭zHH@ 'h[뱰_eb&RCnO}Q? v\dS|6w|~`QAbWUՙd0Y_q_Pt(¨EPMI_ai89!?EQ]hV@b=!mO~; 7y7i`kHL)K L2-j\W lFNXƺ-ܩ9rd.j]# cpKIuf2탫r2#2Q[np9Dh4`h^Ld.Ǝ( 3?P<=x`0l cGJCQVB{@9G N&k2DxT[F .B[^2O]|R0ɅbZi8 YUaHßySuLYM"wBN㞁J"b٤A 4 3XÅcJf]h$$|TV1DPHK=AW߮0:(zDF-YGB a \*΃mD1d7E# \[1&*Nj %58) IKsx%,yk/zd_m'SKWIl!7gW7=Rcdű?40X:Ur!×vTk]I$ōuFZ$Y2R{{i\E<(.#gA{~qvwEb%[=}Vasˁq+; "! DE |įLmmJ;$|\< ;kͅ%kTӸ>e$mK_;򮯊*8v )L|0|s/F9ǔ_%$$9&{q_}d]`iqhD;QIdkd @El{D㔙lt. : iG\L`%n^ԤYej'YW)᥿ߚAք0/ul]%D9sqgQFm IDAɲifz&bM,i䃋v-+Ӑ2oW(dN#A [`dG]~i 08˭KJK|V(eKJ4P0x3(#GAlgL %j8*TrCȪDT6xф!dmbPhŠ$ u+M)`$a0)`ZUe[5Y(HQ!CH6s\0x6Mg:6?",#@7w&\4thT*ں?۽RQ*tL=Xso3k{^=9TB'M}˓%q؛\džG4ND9NC,CB!#h]C6mv] `O`G~m0KS8g5_V!_OAB(qo|nS ye)9Xb ~<(4lcy+?13VSv~ՙ-GvnIA~ 8&%r'.5ɅoƊocT'"&yAH 2lfr]UObZm-6ۺ0ğ9Y=jx]*EЋH c1yܾq4$pV{ I5I[m/*ag0{ˑG%*VF]H9zVnn۱`8La`f8: 4gz[m˃gh&9k*vRYD߸>y,F @D__Ps@(ŀ ]UnSC.S}?уOR^q۾)Μ3:@uUt1issZ;.5szS '(RX IZxmSEgU5mϲ*Y*S۪x*zІs}Vz]ͫ&'\[3&GWG]v8k>n~ Q;̟̅߄` 36ve_rra<;\#>qK&:O܋Qi = |"Zj4)-G 0u]QӸl{ ^Wp&9)NNOΟ'& ;m\SU)Rܴb2 dR hu͙tCbA@vPҒ6=j0@T_Me"17|XV ^W;μQ Jg1{rT2Z89k<ŷp{M!%QICI2e]ޞe#N{s 0/cpҿk4!Jo ¨!Nbj#%AEFC*JU@z`s#mһW[FԳCjOk(_!NoHbvy<`uBhv0uC(fYOh{l,*8Wva Df9飏M1> ،s(DϘ"p;!aLqPw/s"(~8A &V-X^|dF1H23qe4alUw#q:LGs7dKw/@ 8#2<ǯ>2zhtH`btB=6se2J:~lM:~ʛBj0bd[Q|ph0į(sh<Ut sCf"E0ecA!W3yc':[KbˆaEMl>h?v׺V^IoiMc0؇Q(j 'n9#ρN9rvXgU˛؀zy]iT4U66"ɚF#n85ţAά+ķԪ^lIq$IX9K2\MSϭ;ՀZ$$0P l  I=0"$ $$nẋtTD /xNy1_x!p')@FYpE*S-JtݦW+Jzf:\UOrq`UAbDVboRbz:!4' Cح!Du})LpY"Xo1VYLр;()~9ྜྷ 8j %'D 7{ 9& IRXUx_̙ō e؍)5V&vY'ŝ-ԓZ*I5J4HJCuggn,6u{Sȁ!+9Md)襭k~EνDdl1#G9D|;KVmnrX |0K?}4,%tY Χ'T-OJxu-JqrB$N&X>«7' q¶ٶGm"Z Jr5Ǡbpe zn+jQ8ff4 ^qGm5iA+E(q&)Pt`t T~a\![{HY`oNPmAକnN u1־'J,quʦ<R_~CYr7@ǸRh=;XGˆ]i*^ED]I^x@K!@O3R$" 'h 5րP>7oY̥q&B7j =!P p?y^jd oL#mvU)\ʏrq ㋰F 9GuH&QicZGzni*'.-Ƶ5eE|8=߰h>J@X/ ч]98d99 oaۀ_FOh+b^{ Jj[yO C4H!dcgwHcc跫UJ(Lco vB8cd+Y23.67SĉKgH@PU\jc5P_f>W$`Pxˉ0S< dAyՒ׼"r> j Ow~j~3v㧆1G]3HTz3&mW4[ hR!Tu'C6y¹![_JW7"I]U㇜.=!'o0K +^] ,sUbK{?S獿*P㯞QnB-?)#+CV@$ te|-%bPZ}ZIaʯ5-3L)R}]kd~yZ=Nah(O7釽 '_# B`fc;>iRj2m y6 TN 'BAN;]%8Rbp;&_̵>y9`~ 䜒.9r V h Ihl>~<ڡ?,>JlP[oX~hĩK|. oπIKBSw^ow\#r(v\cRsAkg%A I*kSܝhc KdJAU;_$Js!) ԕ#~+Y/'Uϰ~ e6prSHiIƣ/>8u`Yփq(= ketTC$G:~jT%p;?ǭA-;ԆBË́~=`ct߮xf f}^lݗ$>D{Ohp>[PrjpiOu!(IV=P&x 4֦_|8;Y"pp9!\z~\c)=@֦e;3MM<ޓbAgioK"ig|̦i#+AZ_HV6rq~"]6tog :$\C_N4)C~3|G}gu͔. -HeĖJ'Uo`YJ H3g.},6F,i<>qz޽Hp<V3":zj3tUW{fJ13rkҶ q,'MEdĸŬRqf8#- g܎7'"J]ºWp0k(rZ &M'z' [#E5 bY([QT8@0o?=8vLPy/#Yԩ<zߚ^9 1Ľ1mܴnU'3v6>C[|~`j秉>T5Kd: WP[ёRYPT]2#0-AvBR-Aj%hvP]O&7u,; o۟&ߤȻknǝPaWݪ].ȆB V3a#D7 ' N hƿӐN)J~>eo@kVqjjk0 Cg!{ZtM`(+qkm9}_ZbQJF!7?fZ8j")AACϹ~fS"ͷ]DNƂ Y_0SsqZ1:sZZOP!ϳ<} $7l9v3_vJh%j{w:$"FAoóH4o %z dM7hwgԚ(8(,f폥}*z;i :0H\?0$f3 E 4B;kE\pm2$Λ[HEzE/1*Vj֍uϣjAy7HŽTp̆.9OP/ҺiZRTި.GHK2da$'-NJTK!뻄-:ML"N|}8p ni j8kK:ҙtF4zCD]0MaQ>|c?M\UY`%y,Td˅_2$)j Y{<컌 &*rNЈϣGgٽBe=j_DjE5yvU"6A<3(ԋRN?\;)p#k{)|> zy%ZSz2e:2TI|Sҝ_K+7V^bl z3:PIj^鄠0WNb0i>̳ e^ HulӉUĊZHA98\0 6lʊj96ѕ?['~lUO'Fw"zX+qD& CRʮQΤs)M}8!|%#f%%*3|o O-Jw~~"ILɠs8N;4A}:Rs}ȫi[3 >P3LeՁ3Xu+>eT1J.l[ EQ:!؆p6'60ijT^N] Gc])KD#@4[= 91c9ڸG;KmB 9I *'qq"Ts}^;-y~{4Y"s/!Rx?Kc&z%_kU‘rߟdI ]sհN mjY1m-[mln0U[V1J9:SN#?p[q4B ] SmDl5(2222-Hdw3gIr4 eܪ%Bs։*IGK?gũ4a/("; 3xV EC^P?g$jR"Nޯ"5gٽC7(,X4 @=NLpmEĒ|s\4X,RKCxyJs1M;M'*utp>%6E^Sri"iЦVRQtS5*`zeގ)C+r=/a1g "vHݗ[\ukh2qeA5_'^K13SD=NJ!Mu6 DGFSQW?tlmVx9~%[-~c,8wKBR9 HBNټbNPlgR *mĨMρUEnT/f4SэTtKx\G2J.sA3bN굮-:W㗳 S908Sk[|x}`]w˺X^4;Js c`Մ|{ ڪ^ _H8h?=Ayj w(^߁k.bh𹾆swmOϗXx8UgGݫ|c;9 )L^c9pl stc)f1Y,OL_cIhޝ~C(qmQPWrUw$`xc-|3 n/,,R9ʀg# ml\YVE;^K>HI ݏke5ǯrN-6m*24)_#6i7B_[A )z+vO^obPS-mzLK᫏'%9ڇx}oɻqF'4&nl=$ "hߌ ;S`r?amn `6sഹ;7@NG<|kͷyn#ExLm׮r_2!nm70woeБYjx8QzoϐiC,@/ !^wBɜBN~s1w =Fkj:IbD2e&$#f36 6gL0ߠ̄}qF XuKA&׫=.Nͤ@,TjT`Lhڍs52G{x.e8 I%S줆~VmЗ%б8>Ss' z̤C`!rq,f-R6x6, ,x1i\ eý3g8FK]8|_B|(A!(fyg_->,iz<6B^ 5#=]DbKͥ+25-R ﳀM*di|OJn.DW>rp,A}XqFqV a!9PT q\S9KzzklӰoP? x}5f2 H dd^1z8͇)^foqJ)9d {{;ٵ3$4@E4 @EEn \k7-c)d $mܮlzEm%R.SO f۠,X?'3\pǕmb o1^>J6Bo*-~Ǒ`7mVw$nB-Eǝ Nk/90=B" p0HT ٚI\^TOͱ lP&s'z6ҤaYx|~|Sb+YVټoB׋o<{|x,*g.ʢzzjYWT2cg?#<8N*SWJ_iv쳱!ja ~ VReVum, sxJN$̢$ '^q5;bDsЧ/c~v{maR} Gp%! K]Y7@ڂl9M?UH%am1 *S5ENHE1w '6po~Ml7Sʭoe54;#3 s"aBGr /SČku•Pi(GI ۓbSՌ>ęJbvI@KXTӛ#9MĨ@tT+R5T co-V⣱?|}44&Qӄy~D} ΑA%U+T~O5TJ##Vs- 5o@ay7LRl95w t F U!HKj8N?ab9^Cwpx.:=J|^ok`#+\r_}uӟqޕ`xΆ{#{k:1baDaf.ϻwJtyn=ُ%r"rzϣr sGF5DT&e63 ?u2LDvoc.OS,(d,`Wf:dE7]e $V*hSȤpkp!RgZve*ԗ#!"=Ć@%wJH^m9 6ήDϸ0 Z0_بWuE)[3;t[s;|ctSQ\K~S'͕knrCn%'|3֡~F>=~Gΰb+>'ȅt4УtT[=}5`ۋFeXlŴ8M^7԰|<"7dX [֮Sw39i-Y1 T(^,aE.%aj6}a7YnLkkI6l|%Sg^KuiǴV`7 لХok` H;[O!W$J*ݛY pu>Y9*1ڶse`œ{ǜAz[  b6C/ۮ(s4U/l']'EtZÅZ|N.)c6i%.4,dtl{cCsg7l(F~ YEnRUh41IX6\%(x oFφ0Q%(t[fiR܌:*+Qڠ_d4y=yHr1k(u@Eα>ExL=He[$d`xU֗yJ4٠QC)LTCz~hD"vjNK׃~٩K>}m+TS"}A\QpS0 |I 3|GW 1sR'z7q|dD|%5&3ٱqeK‘-U/uA$˼7e$ [b,,(ɷ%% SD?P?;ӌ~AjվrF.[ @t͸?+MLtyD ܶw~pHa"Fn?x/έq a_:vK4_}f-TRseYޥ 0(ׇh1PYyg~h.+iSY0:6/kZ< jAWVSU?K12=Lɗz-Ņe="[mZeN.ף"\#@ ?5tl3+MoC jf./BڸkGeh-d('M_dyUp*q$ K)쫾Y;n˿fv6l]ˮWXdw(>A02VZi,EP-bڂY Y;'\ 7v˒SZ@Z^s;rA FanHGg31? `xO`Jكg k)C-ߖU졹 ߩ|]4%~|GEvuC*=_ןþ+-+jU0gCyZcW;?ozM%B<`;k)8j/̪k_RR.FnG !𥑝mڥ㝩L ƳƲ8.2C+T.i *3Յ%+7PReH@Й>)Zc%i;=O:I Q>< v́|[J5ž?wSCRNp%ګ[ #g$rl%w51MrQ-Z$/xpQ3BrƇFxlX-EEB>MwAHKb9O3!Ɖ)`Qemǜ2^u_S~l1!Vʗbd]ȓ_*qR/ iWb|.ek璪d7ծ-(yP`7Na?@28S'a/Cq"JlXyJ:|6 Bn/;uynRU4O5eڪgx5?a:VMneT }:\LF+sR*3&zj/Ut>A>XRN qdG w&tc@*hT4aPWym@<5_h,Y/ qMf{nCPs`9ܗ8g,᧏/{QuoO4F0[C(*a޺ s0(uߔ5{uJX)c3'ܠizRFzd ʝ1nt= |3 fɎ ڤXM3;욋nk<"u?5Ea}1")>.Ga$$aϏm#Wˤ817/a%De_^|XL?L$HY= 0j*Sp[iy[VL@a1!Uq22Y#s7'`7OmS^pv}6w=+5AMmv-v30Wd Թ٨S"l'A=~jb&{p>sNfv>.KrkJ7쩝8!fCvv }hv$8"C[}6:/&Z!tL#l+4(UC3}]g0 t׫mbLa/M D"Y>ާ7C0ȵS$^=<&)6jl{?3&Yh9}Z wHP@7l>_%2jmڌpU1agXH xcыIP-0;6|u_p!.M~n3暱b A@)E[Oz!7==ɵv$wCukb4s[YP2vqlM[%UKYi&8PY"$z Mй§s[FMxsWHm٦iM 4n[tme6MbAR?hQGQDU}f :'$w*̳gw?dәŋ*Zwo\~i33Χ%vNKP@fآѬԟ'0cTBYj-JG>M)fupяiP`dXDQ#6h(5isP9xDZQRIn DOQ#T5K] ;πj95@D^ځ~p.uMVZ#jH0 ZKC^wwI'rH &P8ȨO܊gF$Rv*\4!dO .Tzmjp|[nh=D0 `hhnS ElB^ўOInm `Z.*A"œ 8@X2R̈<,P'BΉIKR^)Ŀ%nP%SM|x CX0;]<$w ^YME,-ٰ٫r+1Mub`܉KR9_,)gm7YERSwl^S{I1wYWx XO߉Syjl% %j٠l$a/1zc!W* P,`/;sBsh7 |[-uV5CO:V^ ˉ X8+i4u5m~V]A6Khޫ&XQPDs33Ա"c{Ewp6M !:S$zlT)6r'T蝹 rI0:Dp,߼ȏ|Vpҋ1 pHtU2*$7)mHFSvӗ٭$آaP2XѢxhC9GLh0f /~'B!Euq[I~(eno,rkxC`UA"'?VHѤ 1He;xꑇQ &ފe)Wlህ`A9n-NYy~7@#y(O˿'xkĥ.;ҬDC^a{|]gzR:kI :34jBThub}67mA"P AS0nI{#IWq)5ĉ #'-<@o4 Et%6ٍDp I3Qa,\w!0&+Db+XL4Za3L~tfcU=@TΆ8h Bܤ6 lP( 5/O^~gT1q<²[M3t9ƶiWoxO|H~2yCsg"&;`||ƏKj:jprWmf M#|%jē:|Hx@l7;t T( IO&\}l&\Bx5׽mO[7ccN~tfl#uҙD;!F5~: Js*@$(n 7nlQx%m%xoVÖ',U]ϡ`RI4f01 PN4uĐ2#=x{C6<*`TU#}( GWiR}jۗ9.2,7]o`~ c3(PNiڰ`glMe0yNmC4B%fDp$p2Crz6G6*Xs1CDD nA%~sWs4(6f,CD0b$oà R顁4o]gЇ2CCH^e :Q"J>zIf̉ g=+PX+cY1W HkH2aW7?Pޠ?'ǁ(kt O:1XH$P[[tZىX_"u%YrfQDZǤY`r5k 4yʼՋmvX|rҕ#6:s!ҁ ٙW=Iz(MD9NH[8cR [b[w 7rE:1G%>Aw7MC4 n4 bǩ7(+Z@䕿_7,0n˄X%BlZ) _R Zuёfq~LV-+/EMUdeSWߏzN갋й  dEw 0}DAAm-訟ۤQ谷 Lڔ7tkE+L) fη_)QEW,i exJjyX9ugVd&c1/["$4Pe;8Y׬M+{(*@bAq 7 &]Q5N;_IPݭTDDwEGÆ Ӓ&-⚉ eOS7rU߬A/ 4Gp |!L ZT@P8qqh6'dRoQ Blk8=f y!#ɬ&6͝n%ׁ "I$[~5VÞLR _fнtBqGyJ̸J(WXi]y៹g`&ĺĥXks0gSEVRsȖU y`3uH2XWc(]y*^8&?^֑PD֌>*VafQHM]T{,Hښ6(;e>r | /BĩD;z4`NzW\#dN~&aI]P1`B71һ3<_Ɨ Tp6Q- SakCNS8z2esmU=I\ykgmbgiЭe,M(zguz_M:197M?JD7BX9aLD-1W0C)R^ EzƳ'|.Jd] ;7#:iU9aA{]~L-;{N ZƪTfbOk o 'e C0@fjּ{}Ѿ^bSo~wt''OP^0ovʤ$55>dR+[D5QL{)οۥB[ئ nu#F @lzaJcţ\2 d 80"fٶ|hckbH$|ޝڒ+*e'L$[nj!GD}U{p!C=s̿^UPmL8˱?"{X:EzR% aV ޕa_(CX#d\7;R@7I&.Mi^ 7mAZP7{/~aiHO>8E~,$-G|SISKԔ\= s@e'>̼ :b ~}ux>h D/>W/jOYa${~ny~g,}ʀtyePtJL pKth>̏bV` f~Ω3f]eeeX`rgtB@Du1xz/~x"dŧH p5'BSq'"Lk1 qLPY]_rve)@:Q- K5 )y $3tU!C=GwVu>0Zmb?RaQ HxbawOisY?7O޳!%c0n;s% 97 r%M~A"+Ww,z@{m|I>HgUl~.YJzB SBփѼe0.q`0rʞ]6g@P7y΂cƒWE鷞Iq1@s=`S!XI̗lW"\Vqpk%quQ7HPh1 "ˢ8C^"&9T -x_#:q+?TdJ8[aBӺ46Fhgt"&N^'fp=f¾}u Կӌnr˳L^ޓ ψ(DyP "EH"׾ R.3I{tWwDrsҋZ8OVq?a˥07꿤(hۮ];]]+W@ myUT>lZnd,ڱ*6*N q \a[TeV[;$X/nY3d"V ,J Zk8-><4 h2sC܈7DD|X ޲4I=$ DkYn0;Oԝ61Kvǭ86M;>K}t;9]YpL(P&:+|>ʗ՗pσ {wfIih5Ju=)w ZV[3H^Bs\zD~)'4!؃Clo]h61#t=&MLGa'B-'V=pG:jiI%.ZYrX2A@8a ).Ai{E+XJ6BTCpiVg.sߢ$xd{R 2ծ76ZhOsΈb[a^$ KEq֥at]".qK`p` yb̚`4'Wܜ<)-]n-Cp@]!OsLlW5t+mA@=sqt i#8]3U]?D.6QhJ!#R' 6|eW 7fE~hl /#P cv/͐IylPÒʸop{pJqaX{=_(ZeNaP:HF<ѫjIiWVizU? ~RHyi*&3k alS5s}S0̦QBrSqan(>⧦I&eqKsU"fB:b -v4yD҆hݠq+Yqo(́ K̓IrU AdewPhƝi˩[5N_kҥHտ 'G2{f p>sTG*`ʟ (}ܒ$U.Et-r*Lrq7-}Pm[-z]p84ɦ62B nqNgP{\Br ]1V{"`\Sp[K؍o{WA#V mK9Bf S&*9sq[.P&;pZ khs8WWiE{ɭ #;-a_U&x` W1Yxs3"d1\X ߻.1 uh؍QEϒ{F2`ӜnJ|O4umbWnz[Dk6R`l|Y޻O N(koBGxn_αyQ_d m$=N6|^s,UD[yzq=R{Vؕ{,\ 솶^L ]y@? # i"JbW;6}&٩l" *6XӦ[ub'F>i/`as笡"Z(S3~^F$wD;KK̂B "͘<>IN|[n>b.:`xD]~܆ 'd_=%Nno'<}N,~#e~bZIdI)AtIo>BL)M8pku'|"VPQ_q3a\j.ĚA%aT6_x,UvG a֋8x_'zmb.ΣS~5$F,B8 W*UU:KGB)?5ȟ*A?Km67u&3v]8{pGvp.fϝi9*uՊA- ണ'_Y7đ lz*u<51EHAk׽@>Z5vt>xg9'vhak'-Ͳmcās]ѲRʶOe=MsWeJLJ)7hv`V+/Kz=_(@;e)(aa#q^hNr"H%hѹ5媎5vҷs13@2m0oX NMBs3`,Q^*rN~dCV>g QrYd"'PƄ\(N`3R-.mSkZEu9ν֍2SeSSO#uh&dFdȒp:-ƊM ˬ\|.gHV mu xesC#b@|_8z[MM)kLL1˷b< *3nA!GzeKHS &)d|~:4%KC#8̫{6~2B4sPi<#m.^y6Mɕm 6D\ mq/8МwfW<{D5+Bz, L~XH }l_!ނЇ BNXn`Q&d087mXqOk駽_ =;bT ) f`R !7AL}kP}a]Y{iŭOvF6&\+/9@7bˀ\ 6wJ`ؖcj!;bcN[nF0Qgۛ[>&{N]h7빯{N%UoщVK\t7ѝ2_P2 ֞Hwʆ 7f*>0ݑC '`va˻߄ֆP(ɣNju[i y m>B 2&" gTF:N*2`+*~̶ h ɆeEpёB 6Q9}҆mX%gRiTNS妝 1! [7/BhgD?8S̔A]Se7$ƕr$uR\k,P.r`fl٧ z*Ƈ m=%NFۙ,I?OK|ORxf/g@Bj4҅w9=]@ 8gu.-Em>m6nKHIQGΌPJCtf`wS#G`z/Ǒ3>]STsj2X}]0Uu)N^-bs64Pca¶O17)O\ 7*ŵğ]b#.})Đ`4RJ;:NVVi! =߲M )9cs'%$k" QȒ0l{V?hL"6MeMQM]):+X: Q1 %5.62iG ȹkn ,im@M쨈n+ϜxS64X_d`B+ dRIѲ]G {NӴSexAqSKp (A8Ԁ2Y%4#SbHz- G+C`/ v6l9!3}@sec7$Q]# 57@4Sj:;39_"[nkna,A,De3e6O7uj^ÿ ^H?iM)~; i5$:P8W%)ߏԈGaPșt^%>x%]g޼q\Zr8SZah,m)OȂjeC,!5 Cf6, CQ;f[ܔ6hŵt33YqW7‰֙Xw*i_k?#K!V-j{.E>;q6Uy֒[U)aU7x) @d@`U>zs:Bnd=j[8[ln_)º'A0Ofݝ42{HS,JJDpAdN]h=(O,B3siK ' \CBtٸ,YAcfڻo-Qluwu4}vƿ@DGr;AO{hVHo{x68[1_~; [oyZsy<q#ף=mmTn_|l%2ủQDP^jqi1|0 D w@ulFd/ݻxmkaIKSJg!_#1 42枓6;B4Ds+=Ni?v UZ_8Y` /"Ā8/S }@ؚO-] )Ţo! qS\PC~}7cX7*|x%rB_)R=r ʫ .r%ܴ;S2ee!Md+WڻZ,B!5O?c;fm>`5IZhlzD˸? !93jҳX}ʅvV>c9UrfJ֥92\S w9s}U~iަڹPֲuݍA +U[+nI7<}8jJudI;gA—iUSV1=7~p~>ȏܤF?L<׎RNztd}۲'Q3 Z\QrH{K-iGEbX}ZAa*C+Iyw&eD{GҐǜ;d:MjG|DŽlďP0I}όbUNhG#Șq< ^y5"0<پY@nHW.3m]6-QEb2s0rzL*#SFp><2:`?IknR:d$S޳l) ׸$(yFh*j.R)ΨF`P菚 !O'[j3/K-)XsVfr\Mn<۰4oN6>0!Vu'T(L/g4&&-_fRe<|OiC(cR@ ֯'ƻ4ݳVx&¥9 @ _/\ctRWnhB" d [-qer(rf:> zTUIQc)TlW`K5:LT$%PlgvoRUֶfFRY=7Xݳ~' 4OB Νz&RNʗ )!ZOTܣVDZ6l0u)>_y;1IHAX k"aKGXŨV{"Y:hSnzUD۹ |qʛ";@SM/ e#rct] f7/~!6z ƬL#q E){&NEy4{:\fx`lIW~lJHܯZtW&8xȉF E7.CUW+츤)a4G^OY+X:]>՞Y\ߦ?ӫsE54)rD"[ *:sZz љ:>'#ޱ_D,Ev*\OͨүI,=Ҝ)%Vs=r'_sncʥݒ m"Rs]5mmKZG8ۋİ,"!ݶLcg JZ .[rĶI#J7%$F~c#Nk0D'o K"_hH-wE{pXf:"YJ X,c):_)`W?ICoguL7HH]*@TU;Eg+gMaO7i紙[b^vpƺ'TʯY^%LBZzYQN㠦h0H[$;Dd]-{/.gPNJ.C7!}ߛKwm*y i9B4M**EyeSl:lǐݞ_7P)BQ`T" L$e[3/!F],It*t E|};ՌX8W *-{yFZ΋2clxkV W]-kJ+xrG I^oi?=s}ӨuPk%I9WHwP*Lr*ͭQkR34ɻp;ts {;v)3A-n{قYk;q<8O=o%T+!36i.#oƣϵZa'YP9L|teCKj-Ua`2 JD _6$'̩e/V<'zNZŖ|# eyX2$$s Kc9c l2@  l)eG9N|4c=?XW\4nI!BY.<8 JK#5g;\*>n{`-Gp* Mw2ҷփ̆'I*Y5I̒)38BPlCɼ[|lQ?n:O[yB`gˋEIόz=')QM=KԲ=mBֳ y:%Ca.{L-_;j\a`~1??,xze|`EB$zoY4Q^ P3L}mfE:^M[,Kr)gv57p-})=9UbeD.Hp>Ř@Mb4f]N2o2~fՁٸjhPꁅ=DZTr<v5޵pK ;ȯvt0oI|t=F'D/( goFÍIbOR`mw{j /6v20լL/Ht iS DVaV5}(ܿ[fe:blډ Ć! r`JvJveeR Duٽ#`f(r=±(J| F6 Hw&f/TŢo[H ͬl)s@:gZ숺h9JS JxB&ؙqc $ew-Ce\>_==mq™n/4'2z,Ikzfto5gV0 ܌j"&:&q7mxVqrw`֧%f.Բn=~鸹}𷔩3^'Z>dE6ڪ3 * 0J |T~!M" :˺5RCф1pmV$)~'_ 2Hs&[x*h3b EB?y?^M5уҼH&?eYȓ*C뀨jӺ70+faՓX秏Xli4* M4[$agӀܙY~>1 p>=1zđԩTt?͑FP{ ч[m2;x.11^\ > )(>TRfA 3-ilK:'^lF1Wcj9OyMf2=E@)=03SU9FYë:;@ 1ٕ߻@R'N3%N)Ԓm\xv{,u"6z p5~ ) ˉ'VF "k[{Zx7u-NkF[(J8Y&/%I~;SzV+EC}ZP҇I[lb&+ :b8̅ۄ23=AZ$᭫xW|:20xӅed{nZ$&HCev _4]\?} 7;pzNڝI؉!.3z3ͽ no[Zgt.lH(-!*n2YUQ<$VޟaSq&ʾbR(1q^W{*t~ Y$?%Xay ?=sr5FuE隊H+uy8m1g *[x׍DU~m♕4D(ۼYM}f]oic&yY٨v_7l M 0nWuBuAg fﰂ?^UV8F" M6A\S$A~DKgac`(Mk]9[GSV$b@wجrK ߘBi;hOw gp?:xm.FBykW1VP2\Dң"MIY7GF- P ͬ{QD~͡T-mȨ'}*@ANGI¾L7`Qͪc#2IxN-#~֡L|Cҁ^IʛHV@W#-Q) $'bW÷vֺ E@F qlXrzοdOZxܧ-Eل5=Q@7نeڱ5$ZJ4xx3"{bUPa80Dy4!aC;M 5F-~ ()q ?8"FZ^q<8פ(A2vޠoLQ4" g +\SشŤr'`3^$Ou6d)5eG딫12?E< XOsHݤ }M9ەHhs1=M67]sƉPv gTѤ6FS +az(aׂJ+~3r- иG` ":AͩE)^%Γ}iqbK-/3qN䢳 ejM: hg 8/2= LB9`үcMlt ~~Ա^;f,F}. (2 C^NrRxJ>+٤ܩ BG8HHEKqvgWqmfHƣƷ!/t;G"YlA*뵊k?Ta_ᾈYpSm*6Ќkz aJqhр~ub)cw{Fٔ5aR>ŹX SnEV'텹P&H w$놥?-ҍms3;pۣ6&gDvQ?hB.3 @+%p]K~4L*6lv'$̗9"|ըx4SÄx4UÚ)%Gj]1blhB8?;がln"x2Q)eHd>6-`p|"4͓ (&5'U[QMpZBs0ڄ#GP(p>R /`Q 'ѬUZ )P\^vepc sw2 9jBS&kOLETi1EhМyU_ˮmYz\L=sTŵ%˳)wZE EUDITo¥V1w۰xC3 4m7:Dz:FeB~N ?ͮ;X!]9!`k?†X_0P!M>f 뇸WKy7¾͏;j簢 m?7#$)̵)9bٻ{6 vp7rvtvi/|B_3Cn2 4t =6-V  oDD"(asL$zScMnmu7zz}Vϋ'gNςmaNW:mU@,/x5wD!>]8fwECP̨@sr_fTS邶c2 љ`Z.fv>*'4, U@K Cfʕ^ms屖a5JJ VMwWFEOsܴcc Բ[jo9HM!d+aǨ$Fp,]e4ɭajjSK^ZQQQk}qŦk٥Uɝ~9uGce[B giքQ^ cʺa=jrNyVrmux sޠc)T! Yxw\,dޙa4?\m'n)6Y洭ʕ[?IZYC-ެ*/NL!]J޻.o]M^ֹ' P-",̤[Y"_wkx.\y{[>U\ @N_#g?Rmzwz/Ëlkqph*?4p'd%ރ)|qyd$6kHշ]+4\D~RAPפrg^Ώn4<ՒwZ-4lQ[=}D X@T:z~ZC{s[ .&Q7hbX?<G˸G#aC-3R2aa 3"zN^: g$TToj}|S7 &W?t,ogLQa1COP<^_إ"f1^Rb_Jژ;WXW/攽ɖF"EE&6}SD>f`.qHoP*n +in(VuW9PSN`vr|W޶N կ[LGQg6lβXո:MDf"1E3LeLˀpbV҇\a4tWa+X@'F9@:յ 2iuǛItƉ9۷\_ط] |huoHݹ]HؙCl.c`n Í|_a<+M(;H?ҭLsz\vq 'Y][[p 7^3o/b\'w 86ɧJ[}DJ./j. &: g qk2HήXdFWEu {M>!B 5wzp`4y+˙>a/M@_^L6@)7`.hN,[0vWGQEz2ᔄڹHa qQEB#U^ ]˂:ګhϑq-#`< ;;Ddg"_sH2ʎ6 Pm@{# 9zZ.79ɳ'32~M6Oj+}.g?cc\W!OWvS l4B7n=7*acHDˎLwT'݉q/aNcP<N ,J\R AyTbee`ӇJlr)wm_eݵwH2Z m20b_RD>N,hX*^hcw0HA[ۚ tnCrQc9(–?KLJ*-#j8L|/GS'駛@-@dP e.Zҭ$r-$T0؉bfAeGp/ha6Sq~"ܽ\ܟ= L11x|gIM['m!,V*;?tŊm,ZODy[8i85>гw7:5 ޫSYvP"fykSI^@+),#+A3F>cp!R߸? kKr Z xL yaJ|tvI ~g2}l>%(ųG+g.i$,[_֥`c65wIxg\]KʧKsc]=.:Nb,Kו6p ¯{h_.^rH'::* Yn6%]GBSGoVΐeJ#lmM^s̞r &h# SL^ǾeM[w"貊NlmRW*@#A9u㟜ܣo4Ց:Zn{sh]c6_)lF_xM ͤA KjQ dyEe"j)(]M dAG6Nc.ͽG) U|WR?$UN0{7##]gCF7qTw킢/ՠ)@cm\ >C,jv7c`kZ/dx?*Q׈)eVz#s@bjc މHgz$7DfU[jDeJc4+\FsAO: JcVW<+FcKP?мs&c7nM&'@ZRza`t4\gڜr2MOU 7JjR ` exh,c1Snzq,#^gƀX#ӴZk'J Rtbz 'qP,lZj4Q~'}͉IIx tA_ՠvq~̡/B̻Z}ܧ!<'d75.)N†(uVũԴ@.g*qjqкn\ǺP4`ϵtld۰/K$08܊㘈c8XR- ii분R4t+ C4$Yt? R꿚җaqO3=$0IDugf_{l>Cl{'{z+w짽O=_k/fO?o ׻߇ӯ{A} G/}%zZ~bO~?~}{F~MJ/dv{kJPA樂>\^ ԇ{O?w?JW7P}F={F^3瑩ӗQ}8o{\߇_4/}~9Տ跾S_}H^^/}_~/T}1xl?}{}G^տ{^?֦eQoe={G~/o?~/bEzd[{B۾w}|t^?^z^xD/[שׂ>e'=rEpԗ3?z^o}Sx^;=~z^Ŀ/~ ׷oK/`W{O'{z ս<}ߋG(zw?OzCwn:^Mo{z"~{+tlCO [$˽sRܴ&A뜫 F1ov!Xܛ:Kź&R!ׯl7Yܪ\JW' ާ?mC^[A| UapplsϾIVm>Ҧb\`[]ߎM`SJ?d:^EySvvE+K'ͳBΛԸ j7fK(@*4L"<.g%^qԌԠksx (4TAY? ŭ'} C& #̵6/7=٤ !^e #K>ؚ<&GѴkպ/3ю4ty@ƻKn(7}F~u f#W7֯P7[cu㾒:s*shˡChj%vؿ}0?3{Jp3QF<OZdv,d ?sV(atuʶ-k{n_hJ;a\~k 5#;GE($r>S<fo~GykjrEzVrFNBK|Xֺbv燅-"߆)#`j_ [ۛQź'.VrˎÃM;*bXC5<)s0*kO`MAC.+ \]G9ӹEǶRiEL\N̰ƴ6oK> ]ٮNS]roa^j;䄻pJϑnS>8DP͛pi1t{Yͤ&M U>Dx;"3nwmixCBV0T,>b785*N0!1NL4R/Р+=t W)h\aX|P}kㅕ3R~ǰ"c+ރ+$4Z:c?A„4lQTN/KT$M u;Nk;|29X`РQԣ@EŸdž9.p=,j5&Gdoɋ[w x:ZЮ/ Y:>ڳ=vvDQu(t={!̇Pr>j<bj|DŽYDb7ON||4 'Z/+&v򇂬]Ż"SI/#/ 6% j]M(|ճ򞽢?M{Pr\ T % 2`15:[ MzG)ЮH-E fO_h>Y3gTAԽ2sP M B^<<;yrdわmHڼn]T kನ6X 4!;0-8݊nBe oM B;=.5^o;<>@ l(ȉ)[oE&}+훎h󦺴+{|cƚ5k|lEV8N6C}l׽z)A 5 h.K?jh%)]$j3 ,%@?r_ԫ{9l~oF#XO>pTAH5jK30?rIaKyGÒw݇Z!dD, ^p*>UZRdnDwA G4ECۙ/xٙehnFR8y,~{D<<( Qp²BKn>^$};nU{`rYH3j[pIj׌x2ݳ!YF/ꂸ6'.v+?"puGQn{;s\`H@ Q+ TXN/*~Dm*ZN{i1j(ّT@{} 6N(]fhdWxKnc;*D52 YFz_pc e㜘=(zKTͱ|ralLx!UG;Olu0qMCr|($Br lpٌ] #Kb6b0xUIޓ'm^BnV" uOUkOB"N iSiW }/ Cv4gW5)[#ThJfXzƎvL7p#{<\V&M\\)gd^RIwt4i1\ v-P9l]K?7|C \mU6$?s^?!Dݝ?8AgU41ov(hϰc<$2N^$F>4!`~^Rb1O6}=|wi *R3}w "~," mO#5"6mP) 8{M4ވS8$jT-f@2j2yݧgkΜ͚N%6mDG!0):'}$4vrnn3/?,_Fê%Hoit9 'Y,·b{r4ѼG˫{Y7>ە50#)dܽwE77wfN'3g/_R<+N`rEx5NukiII`4?]+Zdo;qBiwӇ,cJSy{b#8>V#/K7;g'p`%~ B F̿9Wv; $HoIP-rҥ 1Uq*]/q~b_`s@W  \ &0I]\O Bc!oj8q12 cj5|X(.Ayz:ot~$Ǔ-hDa%ED P6$1pd-%Rul333豚 D9F/^ᛳR=J33iW-ԦP~ymK Gᒨvȝ޾ mڠ(8WVҔjWF>p YNLƣ!i@m[}ެ.X\y%c2X~>rdr{H&eV9XRiMZSC<’8l]1Op2KEi2zp{hJw:G9|%#k8},Ds }cJZobYb.ġhEp_eEPP:]vB%W.[ VN!ٻBw}M7^lTŶ<{B,_0X_g4SDπlEcyCmd: u(EAG#@w}efUKGic] /N@M^CHI[̊-Zu-_Ƀf py+{-++]Leʘo! W.hGƲY[p鱭.E.X˻BjIG%: Vu5?X&s>[So sJ:Y:/b%Š SQ ޯcٮ&ɤ=x7m+&8]u]E 0㵧Nq0`LW?%['81x?`۟uT&.ɺH̐R `2dAߐOkjɿv!6T B>9$K|/`^D? n R ׮N7d(0*j">73šhW̥ fECC\{epGIvj?aYi 0,s=ʕ-0on_\iuohJ ^? l{m8uOҞ41?X= \"!7k' B~q< غxM8 M`6S0mqN\y*98N3豕.U|jm'85@FauᔭIwӣmhg&("`A;%'nd:e`,Umd[W%Avx+` ,`X`Ԕ"=f]WV _I)(%U ObgbXK )%-MSe)AJ~'#Q-E4@w[.f+\_=u^ueNEXoBwF|}UL¯aNQ++rpEСV!Z96<3TkhА,88a#8VaPv>\0nr~:WEN%?< QOUq@P#P֩uegx?nmuwZf?z]jT\5!Tk#; tkl7 Yb¸K+d9^%}~m29ZI?[mn+" 'fjbZ8n7si)O@Y3fȹBc$;5<7͝ ~Y[@N/іn;q!MzdCM(p33`|/Qch$)?5 VOWΓ'`L!D{Jsї֭BĠ5g?dB'>$F? ~1Uә'6Y?㌲B6a:ѫiH "'W(3rnTuH%YvBqz^S>T-qЁ4FZi6Ɇz>y *|{oPGޔPezOONzmf09ŊI†CGu}Yo:b8pțN8j @'Zl軼Յ'FL ?3gqh,jϛo:ӰBNsD!O3-\\fl2W>zel4\cM;oJ ʤbY=YȽy[-΀VB 0/Zv L<.%"|E?%Poѧ#wӄMs>9-Վ[ 1ŧ~[o^>&'K uW?2jմ(ZBjĒ^{6 !8 JuSr lT y,~ ;㻢7 a 𰨊:;nW"1vҰfOS })b8^"2<sShFh#l+\c=mʱ 7> !VG{%+ fLr<#>hMN ح7%rj .2F1(D _dR+U>8 qچD|m|s(( HM[,>Z-ҧ[SAlofH;n7_S rdSJĦ</ҺV8 `ɔ0xށt5NvaY{* B"CJ$tslSA o6C@> ܝ3OâiqGb4IaTH|0(E6ii{0\tM*(ҷ=_9aCm53?ֆN1nylثKR4nH|p 3]O%`㪱Tmշ ` A} LM&a:y\Z|1%A\AԼyK3<9I8ycōT6Q5Sɣ9얛p:8a=r=fn"ɝG pA@q_\!(aqJ1*M.r(!ˎF6)PUa+3?Ds;ʔQŵi fP$fJ " GBAhlw;Q,q$_,r]5qVzR+߮ Bke̓g L|"ΝXԍ5x`UKHT\GΤY3f^g!☴ 4a|f\`7;ұme}`=zr~ -=9.Lz]*НU^p Hb&[>;C%'[kRgdLUj.s9}r81R^Wk:MYVG }1h]nZ|W1Emׁϖ;qk(*%Xuo+ܧh?mm#4&YL ᨗe-c^ZR뷖6ln~2og< 3uۤ3/ˇ\8䙲ߥ J~38NpPQb"Z\sQX-'Ee"ϰB|԰ϔ^xX؄7C/Kez*p0[G\_ +'D؈2p]l ﵒI.o8:&Sm"cQ f 5139mN̅eC*۬TDe_q LM۫Ft0' ~F8 o8,)ÊhHZ0 i! K(tNc瀦 pfgeܩrYIauX~¢V6V}zQ@r17-e0N۰r|m}y -5&RM (X2inr*n0![=ŋCƕ JD }sL}!uT!F` EF7$i$*xdNΰ:HܲQ>ZRK&B?cvA9|dq7]꤮p-A.ڥK%-ّP8_YԷ9Gx۫nVe\0>hNC6udhs<0(,]٥JÖ?~PO*f`SGEXH1͐^5mP6?a̹d-cbpKAqQ ߀IVl#FNxFA2/ }>z.5^ywgy-$&W8EC<Q&+ʸi!Rm놳8⍿T6)ٰiZxf5=XYPqSW)ކ\ j?T#q-mNjݘu/7ȅ/0 .>t,(MVwۈxo~j?hlEm %h N 8`9 x&ֻ_KC!dh9uOT<إc$Hm jOS־6kOϦk&(4׀QeYMo?S h6d97cc[*Ϣo6n^e.#lLSmB S 0۠;} ձw[yy@Md<8sc^r>߶ G%CSg*A0W 8ȳ+^,c&8y (i &Dzŷ%{nȩ!)h@A E}+Ð]"wz?bq?O}[b؞Q, DK<_2OU߹fg~p68: b3@&o}tFNxMؼ޽$5lKM8od!&RvXzlS A='a#7sZ P1TTYR)kN#W"HjA݀ͅHQ-wR5h|m{}nL"uU֑Ԫi H ҷi;Zhwڕo7U5q`MSeS;"|RWFygYQ5,({{e_M. ORfp|7K_^4^W^'&n@3^wsp\DPs:wރ2NYԌ&%cM6$*%=ې;e=ܒ([mdQiD94hͦY}MO" #?? +HݽaQ N$MI'- Ћ†,p{RPznЫ(+>` {b4ĚLzq\l&\Eš" wkb-Ѫ,b~|,f%j?Ba IWx[|b@)W!QǑ/>`4ΜPo!`0| }+Ȱlh&Bū`㴼v"_eqd)Lw77jf6d1#F05"ku0DRF3 ;?ge5F-9"`4VOb,sbkJ4HT`%xiǚk1;=bVM&h\x/?u "Ze*\K =rIv7}i9p57Լp9 7ob\YCzOэXw^{tH`xQ^iy jߧ aK@>2޹!7zj/=u"?id@AGXZ r̳a;^#w(%v%k5nFJsW+qVHvzϵ.k#$ʌF&_`́9)W$R9޽bu{p bpȚIڲ7##9^]Kjos9 RJ78ҏi>/dEIQ*eyc)gqja[2NP b50x7K&эY8;0P/ ☏;aw9;EκdⰡy5đ,K^?Xig:0bYl"z^{ R_FP4]ߨ5$RWt-uiPX3P(nbpq\dԲD}MRh34u9_x" pcC4 w(C-3"7-jE:l `W+a胺7y ֶuXKc ݁v‚7auWS#͖_9.0ZC YQw=_p;U]?A\y_);cY rTPr[mqʹ.6G.N!J)"g9PԵXgdɥvulZ\qncМ(U=ʢS}?̾rPT@tR/U* GkX`a "(2 /2%3@c+69Hf !bG- yF9|l]T^xKjq4g.9?N0ws7Ec1_" bw*9\$IfuV(p:cF#԰BG`pK \bU!'NbfkRӜyn Y8wRxLT'^{yi: u@=NՃ`Jqh [Y!a:jl؄"qӊSx*,s#E Y Hg‚^b׎ &R\'AѦ"VMμ&K/E$| {PnYg?R}E!l >!4|A90,q9Ddl !kАγr4z&Uń9_ ~?e$㺺Bkn 9pq63r\Ph֩z_7f>A`UB:U;o|qJ%᧹]WCVOo^6Rx/1)%-5QN/*)4~rJ_>QnYqյ 3u@?aH3A"?!R0K._ܡ I\uHA("ۛ ^W]J_o@p SGЦ%(Py@%Ѯߑ31Nu)`2`^_ tZ W dW`5nM ?⛻u댄) ~EAZH!t߉cWyٸ!)^8_6}`Fm'] &A п-@ L!{Ѡh1@KT;T3'^=xe_J8vCӷO! E >jBFç1ttWDxTZmBgjw`k@VX=$+m׵/l"*jQo9 3&,91?*^:` DjK [pS%AI*aD' q^|\]4땚si\ iI{o:TTu]+9~eLٍ͕"(Xg Eږ`+ɚU(Q%JJֵ:ҖٜPEGUNA,!7i0ؐMR 󥓲~{\R4DeMlV7W/ Yd Tx1#@\,<˹E l!.$0@KzyCumMxe:Hm_sۑޟ(6!^j V-Uu9e@6&xJc,L_rc$KjP= M?FE!x1KTXp3mga=ifѳ&Gܻ"V؟hY^`^<3. !K"AMi=! {`+ʠFnC:i9LiZ@(8DJb@ }+JK'^mcX =c;5g^Mv`)|PY.U҉!K&TWݑbZF^K稹V\!07ף~"/VPF kH,_ aqٍA?xOWwIu.u9LH5fIWrzؗ/xǰU 7@ye!kR;ҡj؜8vO-7@V*}9 mb v3a:A<\H1Ybķ\\d+ Xbnip2AK8DLN>6 cע"qUX0QV }^onدwK2 jk^J4 B~}$=!f5?ATdGJmjxL(lwkcRzg0ߖE^x21a(|d>Ro:+qG]p!3l@*aT@B{UoEBjvGn~ 'X;,<< AdoXy:wdd.aҥ#Sx՗{ciT=Yf@ߏzJ.$+mju3_E3~%YNS!5Tc!lp/1Iz25n 0iPɡjy|9$aҸI=W:Dh]JFw-yt e{s#ye[P&{zV0=$rqkhAj05ޅ>҅vNj?Ido=MܹzlE!mq*7~$z饓>א1Ώyw{}-ma-¿ũ]O ȌTR nOgq·OPz(!ƣ X1E-zY{T#-[tLv_T1I3ܤ +M1E!q/Oyе-4f-\˼gV2ɚjoe:Ry菀I5FbᱻkD &ym W%Tm9 k{ +CSa.Dתf|f.]*vVyjI jZ)0 q^w$Fh g[&osB^ۮYJƐ7L@o-R{ ,|VJ$H 2}NA C)]z/$ Ge)Kܶ5f.189=o rD'up +"=BUBܮ:UEv'<&_UF%d1r.ms=v/ R$2bj.JTCu9t WN|g9q|KRR^Xj}!;x {> KDBeV$-؂mـh/yyჽ S7{?>,>;Kɢ GݻZ|& g{3 b0jT0DVYb~k{z|amM Y`GD%A6-4N *`ɢ!e-`!ٸ`bGq @WFXt>^w5Gd-f`g 6'vMdtx-}cSc'+?zHNERD2/I:?qug=ICNfVRQoxB}Tq&ՍPBAqW.,2$^%[#rmͬH۴\>cL͈KCm VbYR@ eO-ђ&)F Z`Wc9jꡧdc/c/jPȼ=\TDOj܏H >wUs$rR&oD<昏jvP爌ȻgAMVwbQ}kM |.H]SOiS'9 jD=,I>y4S;(XOR EvVn5"$c oBQ [ ]'ن5.O/P`hɭԍù<f,Fc'ԙB=S;4]/9'ҏSb"b5|kC"u"( /v פzgP%HRXKe҈ڄV@|na򁓵I_З5Ry,EVۧ O1M&lJk_X۷4nK/+(fpj&r9HΤ[7}?Qx7T1aШ0x7قrnmzd. [Ç;l;ٴ$nUݞ IM;<۠ƸjS@Z*U>"2& mgۗ2 I!G^>Ʒտ`±nIW 0ҍFzedO!B8Xw^8J[\[{ rزSbQdr=i}ߵ/T) 7M зg|4n {'^a`GqoX;0Gxes[Gp\)b08Έ1C:t#gm@ZoGFZ&IW'["ii /=2L>ًGzɢ XO9|no;ЀE8ZG^7].b&%Do4V.=j&)zߑH-&A{5JE%xzh Q&0.ǩ] 6{6Oo~0>Uፕb BDz_.%,$Cx"cёy ,%N7[(e\זCݣ"p4]D lOu `IDl`oGglI efA6&)"DP ,* RǤp)PZh/Ůw}zb֖Qmb,Ofqhra>JdEd$@4D:q^Y ~kP"ᒐѤxdĦA8>hՍbDtX =l8Rs9$gg|lҳ}d#!yTe*7ҷi$ua<2'`d:|g^I1?i#垎PyniC1o.VT T-366 F̼kia>ZhBo%0쾬~,0e'^0vz~8;H"0&rHT5]k8XKlHB}e~G6=º9w^|"@b}$-nGOaCʵt *cG;t?G#i{r~QܹG^aJŲ|XGR#+"ur[ ) 'cOGj5U_-W h-`7mCOEVZ)?'Np |*/% [<6 |MyQO =;v`hT:'4O`g91ՇzWNʶ齪J$©`M+<ÛDydL[yХ->vP@n׊d&5=jxܚ消x DW\yѼÊ2Dh>ycl/HD;2):͔k=w ٌJ)?C1>ƒQ|륯Imza#KC`-n.MbNMxL#qjr2;!46D oY2x5# .p#Na.!cZ=p15;bKq e/p&s|lxVMV6s3w^"nhddkupZaU1tP$R}[߹l3f 0Q(juT^$\ x&Ď 4~mHH{֚gbFX?7.Du!;'$P9VJ:Z E,>c\qT-Ps.`tO=T;w7xK37B9W[RӟYֳl]YLJ3g]+ltFJդrĐNתWS J-,6 .ot"N(:.ETB 25Lq~qvVuۑNmc%3cXL&RP:~P8NYe: \/nVl&z"{@M.hcΟ`Ku=GePPOzr4D3ξ,Vo/ʦN4vޟ([b9|Gfz\@A=YJμeM,r`|\% 4K!O+XT,,&ґIT fGqOa/-5҂o:T={%Th ^b8#/  a D(kY%"oc fHY3E1bNH\54Bz+6!Ņ?|TC r@nփ&=mٚlH Tl-;z\跊\6 QU̬x|\hmkCDpZڱDi 6ϛo.b c*cd%}]p8'br\CLM3TwxkGZMי@ F(>u!"hߋzz߯eEV˜udBÎ$}ćTN,>{w+:x,#DeǛ!@a~pvq6AhF oY mt 9kg ̹JO>M4:J8a5#3΃&ʨtw( 8+_E_ N2iD#;5>,jPqBK(w .ݯ4И쏀u0^>9+H.Oecmqz6IsU7 PVZ\o̙/5{lçmQYCB>z卅0tJG⨣Z*rCBB}ȅ+#U咳)6l)]PyB\KM.cډy_' ɯ]1#% _2YtV^!#-ZvR'fK{,QӪ*s %KCK 4œJ[_rQSޞfݤlPO/cKJ5Xhk@>16H늮T89\I*,p#\SPy"z%O/ i8"=#Q4(pTbžnR?g*N᷊pN'3h oL=)?4M_uSiC"?癗r.a| ԴCpX7gSM[T#_pΙ$.],rt/p}OdG"yxPh- _GU0,;i|_FtAg{=ugwkW~.ե߉?=Q,ڹL݀w WɆV hRFm2.H ։SҿޥzfQL-gl!:Jє^M@TĎ3rn5yD '\씨5c@&KP_j_2 P"V8 i@@z}pc6IrDž#ÿO0UbbF+ < UYḯ=vufu~-esy]wg-YBb1ݖ Jf{jc¦4yڂ8L*گ Zvd EiDzZ`DGb^ge j|-瀦2WMaݮɻCmDpvdK,fW]r<4ӂW|G*I]>SnxC/fvk֥ZKO_0 | _9jǫ킿OSeckl̆]}a9/Z@V`)3|껕4/D [vE ;W'{TɢO> 7e*(,蛯μ`27́.َU~0 @zlGОEDJ1:0ulf[Zj"DA9vG.0ٮγ˔M.K%8Ӯh% TwrDjCeŃ퐧'%'܈ LStj_{ [%_wOF kôU;V_Ny? j0BUH&N[rX@NiD 6^rYM $1( يĴbq}f3< fƒ'CKY /.d2F"s賍1%[fV0ÌJr 0MCY2?6V8]: aEmTH@Xy8xN {QHygjp{#Ke}FuA($6[ t@.\wÄ.jzkfC8q4mU ocIgL "%fWV'OlqXq](WIA)岯ܦV5#/#־N隶hY 6Ǥͯ.œ[6پFU-.想FC 8re0ZH!xOg~oe^%1`J&'O)#_l궈s }#eEQP/6ʥ@&Nc7SEߖzcə\Z[ Q%txI9R@켲J4d) SdUk D;К`!Hx7z^Ә`ʲKH>/+뿐r*LOs7B >Y̭ls R&pN) UB0 E<a"c(6cX 5 dZ}\M;Q!FD#\>r*7cI[)ciYb4[CLpn1:J֪TYA9\K69?~kxUCkI'>fF/opV+uI]AeЪH1*aW8R#B!3V0VjXlҺqad_Suۦ& uu 2zD@gm+㹜&G8+{Vn|6\ 9og{ڬ}H^ h#2l2c4$. ^OB0rs J& g\oH pEjZ<8U\k:eH59l#&O({#qa$wZt,mGi^ǘ3I9gCZxIٵf>0@G,:93-˪sF3iVv)ueF׃: W(ŭ{P'HA`#1.pMn7")|}|J58 ωE"[QIJg?v--/z%Ľ:|$.U#ƿ ? Fbd mNc֦u/]Ḧ́;C;jPb[I)dw0b4͠mFAq맗nF$+K5 y[E-^j L`e-xj/gL_ΒJڂyp Hܴc>:=c-c>NԧhMq*r#J883b2ꈜEK WzdoVa9}D SlD92`ʤhŢFҢ+r{C$k-\ XXi QuH0&.#Tߤs_š[1 !7C!~:fznj= M} 13+޶o-*ϳ;eOa!*˭mK Y&)åaYYr g q Z7 GV}3`^\WloTT O4HC {ߧ[같nȫg,RjH޾erL2:V)?Ur8,㵨-gn_W,R+e;W?$v2}~o1ќ[{,izY8[1!at`|˴.2v/d<} oD`SFO--%4kfI?d@#ib%T0+NЫ+Aڱrw92奿(U\u4'V-km|Qώήp+9%=]4%Ìv:hC 1X,OPc5C xxȥ\ D6:xagnf2Wc {Evh0+ie@l^A5)U{o9% |}p8Wث0]~IdxI'ֺ%SP~#XT·Eڐo7/?LDp]]fziDH; 02}܄7=UDg9}6>;}6pר!9~Oh=wDWxB+J* GVQ<0Qv8&tFW4%KmUcVtvko0@lȶZ*qbM<2BǍg/?az7!&!γm}1UD4~m{=,ևҡ[~xXGFcR3>pH{C߃ɱ2b ݘNԭ*,Ⱥo":pur!z&?D)R9:Gہ~dv}1-t!Ch-Hq,ߞ:6,*X֝4|KEJzpVv=JBY|P[$Q|]<8" Ǥ|"0ap7T|EHX+;‚pXS +^E^)jCS Cղ{M/ 77M@fY=,E*5#߯ (9lKԽkĹ}HolTtH&B+Ś.Ցn}"S>s9ssbN!Qk  3F:{uTMB"XV%Չ)ej?1*&/@v)_ʷߚ`5&tt 7J,=6S{7'X{+{،nM۔yg)x\rJdߨ<$OC[6P:"hm=zzq@SJ+}R/4SJPPnOXY&mXӒ*a|>m<%&]ڌ/$D,mժN/K=(.1̎R$đXGq-W%%R߻bɂ^@ڍ$VK_j"+M(Ix'JpMZiX?lX~+ ea,ϲ=3xMA"3ި8_/%>kvX }#{W~k"3X.qzP Q={D]'.]|SI&[kKTO*cǬTӍ\* ExAȱ2߸6Yt]=^F[0e4bQl]M:6eev !UDcKy/V⻔·[ `-2PČ4~5P)MWuS(>C 2[OH}>=2Pg`Tԇۓ>iGDr0d=mǮ5}jmrWe/ FEAeyZh,1sdD2 )  1bV.\Vl4fVS/mQj'6S ɪp; N]+Ĝ~@^\'.Vh߂Qssw'섉xA356.x#U> أ'<̋V8j=]HA~ĩ,jgJ1ӘrZYKt5=$]DnPjق(Igg&#: HjeD.|֨C\%W"Z{M |[QKJ]āIQvw <Ʒ-~\6f]ML+t^G紙 iQ7c%:=f4m 6Y/5^7g8pV/#Ad D?>FS;PZ1eH:0>N/r@利خg9yf)݄R*~6 ,J'g/n\0w𥆃;i74J^ ZmZSߩ>NC9ayzzVϞb cUCw]r6- ܏RՍ_kELA'Qm$;6Xⅺg{Pʨδ XpqA$VK孇͢vƟ7w|ѣBVpޒ3TɖFFrԺôST\,}ӆn4\yd5o)jnqpQ\(%?̆ql.F a".Ѡ0F4 LKг Al2c<ϥM9ߟEhd%c^'~ 4z\Wzgw7:o7D_/@<$6T0LQ/"Ot=z6wxU66R`; 4] ;"{CxJ_ղ X7(t3K"tЩC83YSF@ ҲYhuӘN)Vt9O_μuoq;jd.9!FjηOn]y>p=UMn(*ZLSCI?/ V1s‹SÐ&%X6!Ս Пik.*{gЫ!faHD-vAo[|9?Gϯ$FߒO&p}x DB'爫E%bb4TJTÝ䘶`~yi9*dGYsW]A ][{@KsĚ,)19FV"wAb[F\xex|KnB/@ ھ;mId_\WOx&qw[Ehzӗ{/F9`pH2a$9c(˄\ =MaLN|f$P]kNȺ :(շAu0beA1͎J57~F 3L x*ΕA>HbT[ն_ Ɓ1>>D^.xVΟ47P ZN +9ZRoB΀(>/XqوF0NDx!]oi*{GTK`3T4uZD*AztZ G=n_ a܃ |=$BfK>RL-ȹ|g31?"ɩZzNp J 1 g>M1\"<EUy7;+C1sTe4i9ņ?)|O^>Y5ݛK}1r*ȓH/ᄍ&'mD)KvN51zgi4'^/'K ը$5fv]L`_y|IqW_|liWоE +D Niy 65+˙O\= 1%/%?+qz`V gTd4NK<#g2aN%t[dt>ehUn 8H~,ENVqnt w5 v_*Sº˧-sbXki:eVGbF@j%lj$5x UujFX? QPc_Ꙁ7@6 L?S3[B(C"22T!4:mٸ$lM~J'^-MJj2-K[D emGT+˼<#'_Mn'KMv* ݳr*ȥ)桑1'/ƃk*~DbT t[V#ę`_i2̻ U`@EԽwGQjôL*?t_6\ F;a)L4"\q&?#[Eu0讝u^i`ߴupzEb+'0AErz!ovw 9"UF309"4\&J<qLMIB[LWCg!PXpD魙n>ng ;*䍽H l@|Z}J9H>ӵjۃ(* ZZO „!nirQB(_aArK Jx5\LY~nwB>1vy|Yh-N%d\&kJ/tZ3j,02hjv4 HThK9dt, ?4QM}&ҾnDgPؙGR'FVg Z%FnXu55{̨b|a΃="8 4[ч%&[EŠUˑ$ciUnF=é by"ˋ9iDHh0rk]Kޫv!.~܆)'.GCu}T߸ Qi>S~9KtyzA-WOfq#8u0ق^#^e0qž  Wۧ!av^1O'qWBxBVE~gCdQ>֗RQؑBFF3PGC + O+|4_zs;W?҇I@e<0Nי_{0&S_}}`ɮ=TRTR@.mXѸPɊɛyUE}G燕Gيo> :'t*;(sb0N g$USzlC4a97.k}`K5 23HH.cp(Ėn/gUЉa!nz)'砝YJx*Fk]׏ d4NIL %^laxR%EKv?"$ C ׷4o8-~F(a7U3] C-L&`uBtL HmG}7 .TxYVb.Hco8nB5 fr{=drцȔ:EmD>X۰*̀9{+\9+;$ |\ԼdEU"M> $lPH2+PN7!>1NeB3 jRWcݢ $"e]'YnO_o#o(MLyUm>b6<6,Cja P^^?KzWo ! Vh QQ#*ߵQ4@kW}W-̧dp;3eRMK@_pap-\3##(v?LA St`Onp\Ď6Sn:0K#c=uY*i>)GzR~Ls> #=GK,ѺS.oq~?a@xs| <>0}ڃEֿ;/Bn[!-. (I4Yس1K4|zr~<*tL%@_TH]CjM-K 43` 48ҧ"5g8\5gwZ@y^t3"9wuw$rsSs&F 4nA!c> uUV>xCgo$K*c =@?"9X0TN0_N8=4ߒXr;a=C_PH|lnag;:n.'IDO FSFwd@D;2Hb FñLa -v,60/u0q5`FڸZ{}/m[}Ct8&Ie4I5#=W KN kF~p^Q 6'aD5E2Bqqbuq*૸A <\-OۙM\Qg;z޼A;pEAԧRb?\-j N6b6! h $G/rp[!-33lģ"7_=jVLCMˇj#pw$HVRbw?l]f;9^HHKr/ǓSֽH}/]W(GLfg4@Rs|AQc[[󭩥 X8G)!P 64rQ$ =?l hoS=#ɐgEvXΰ0gڰmN$?qR)% eЧA->Nrswsgci&4'߫E{4m'2j Q 7rr.W%ih'҄]7_agA]kdz.xQ+4Uo]'vNތ=w][C )K@W#d 2{P9{U=_٦;d.dE*UmP.\oh_xwfQ,urE(hV]5:J̾!=?.!M@\זUU8+BsLCw(۰Zn^b.ow昦#a![J^?GXrT*0`e>ܛH})abгMLo&Srzz uu@DYž_ GP"'Ld#QÚR]dw]]'=Ԭ5f]X\DtNG[5Gr'5w yfiP/~X &n/goRL+uzP#(sh,x '`Ђ<6:bڞ[m~/Berަqa>s첢[A:|*ahw~À=iFQ+څ] ň=clӔ _ D<`u]ޔͷ}j&b'{wy@:|R>xJs%z~0>HaWv)PfAJ+X J0'Ɩ&|J~:f+ ή1x-J1:kj esnUG[%ر{q̥ {SB?SLms凇K@[\|W9C``>/5ڿEiUԻ4|HagMlsÍk_s YOntIRhW ~Y.oQlJS6q\e)_nQL_{!8"I~WŔs =?KD|'Zd5 WF8~)P82P,ik˟w i@Yy^L˔OۚnyՓr~di'\ n[e_B)>0gr9^u@YL_v0fD_ز%hjQm;b9eLbSeHUS8,zfVŕ+(0,E<(1tG0dL8Բa#'{g7.[8"EݜzuDwdc<&)Jޱcm9i'ݵ{ -8l'[ޗ T~Ɲd #tB`Y sb($3g<,]ZE.cyДȤsВ'UWt.6@A;c ^AH,Q"qB_W}S?qM!Qغ-3yFCEcCw8}p9I1zKm7&UX'MBOqRBmEpOpj TRVQ>r[yxX4 n12V^B܈>#(ݟ=w\^p;f} @\B{ēcxB!գvmĐ*y ~lnZ?YDH< G(6ay M6u6H)WG%P[ڽJQv#ldOoJҎqZA=<|hpjHʳNPTཟ( Ѐ%u2i$; [j* ^A-OZvH#t<.߰>-3Ə1FeWnfO3*NI4ƴ{N)4٥hĂ虩/f|`GL"#Zm ^3\6T"8D[^bgLW4yJ&6nygWMSu=JF ,'[/tz$'ioIw cN:ڀoY-k'2tZ b"~5 8\̘ l9T]߁ӛ^JEG/5 ʢ8%^> 8kF ]ԹWwJg͘@8\PhCOf%UWV6p%(s%OF8B! Lme9(Rb06 %sw$ju}Xزr=pI~}y'- 7b)V]^ϽFbsȭ>VteՂ?KU6"i11Z_5`9` TRE{i1yQ&مoJ9(\ ]=ԏHt/ &,+o^`^@ڢ2UwR*=c12ypy[ȼ}= q4cޡ7Tϲ$k{N%ݽ}g~v@FrXԫ}xnU!i=)$Nd1u5%`T?fyC3pﶺe9B)h!dI'r\+|-ife:|N#)a~LPߓ v 1zڝsDs{߁|suעTƏ~o_UoC7ߔY:*;ˊﴨ}㉙Xr=z*\qYGUʀ!(KSm<[7"RVZҬ VѺeǒR<"l\ k,Iut[Pb3bܴVl/b^VUu;s TUk *4"bNM!爿 Kv*58Y-cL+99L" OqHMhbSya"SgՈ3;n?FicV rxHP•ݹG:Qe؄Iv #WUJWJ^6⡆~=Vs~,`d7.p=Oć}bWnsv60B8X.oE׆@]-.Jixr4<#\~K e`{rp#%o9m.m 1V})*\]h91?G:XZcr_%.tu7 C^ ;ev.[2#P*kRnDu|@ $A(S^RtVZc4lQ2>㪰FVda d)W(< s+cТG*jӹ]gJ 1j52Šټdf|gRG]}ItTc2oN讽^!&6<|eW8J<>8"Q'$O;ڠ!+1#RPW}b l{]r A0,VQ.ubn'q884FɅR#v^XbL4y䅰G,倡M)@GEdеgel䒭C!KMhb@XW%_#ən u tě˫u )'yTLNiɋ;EK5ʒqY2NGҌ\q8:6H>]lRB0zorJ| cxxIs5Y$! 66sus=nuI*D s0oL!}>Og"o!x.e򫰛V4繘A늧w  s2m*'PHQf"*QIp JMH_#En$@KBjSwi7%ZɝHoZemO=:zV7 1F"zH򞆙pmi=IՄ6[ߢ!nF bhz\2/ܷ~딅}b^E\"'yq񹗩b( nB1"UqA1$Zji/8Lԛ웞.#~Z[ m:曱 *F X/ dsSBN RdC5~nѲkKMCTCu(!44߿Py V<9apŽnaۙU]6X%I[$)(al FK1}#̚JNC6[oZAy[?t5w> -E̜ss%F+hn{wj.`$7T|LDO.E#rjTu 8}c;%TT|T{nn TaƝMTkcE pxm$ZWɆfzƇƧR0Vo8ch' ڟsDCϓDrhq{&bP|bryW֡ɾIXF˄]:: 4rs\N<_Ԍ!ɐKcġuT#rC+p'Hd8&|!x^q kzxϞrȘf\u^ cYό iD9"hmaW<\r3Z,W ;Zʷ7PxvFU 'dGHP_ 9}@o"ݜ!@:J@-#0q]$+^i*B/^P7Sq1!!֗y24LxMHsF>"n۸G5+-:h,Mc)55oΟ=N^cqi>>>TYwzgqsTʙ$S+ ]4 UkE&jݝƘN a>iUS (bNl--Yzlk@< cy:s}@Pw9s%$H9 7b!Z iMf&r1W(yaNƩ@]r~e|_mi4.3i"M4d^k༧ cEJ?l~HZpXLN$69lJ'>ELֱSQu'iN_>:ڻtXp$Ԣ V&ʀ%U uL: 'mv1ate~D^wn}i`!`~' lq-Kfla5CokPH#!ZC.K&J )Mphky R4i'NbtYx6#Pbr V '/5&n$j(Wy]tid LWB:YX^1Tb/R;ɜ.Ѭ畻FGfΑ*&Jf"'^7ׂHh#Cu]G1 =}{(W 3j+0rS9iR'͍dС|!s񜮂WT'3z%] L:`J(q9,^<}~Տ:M/׏r.1Z5`s(ziZx[7pg`!omv}~aD˛3-l3 P`yk%tf{z(dTK8'==EP4 &!H!< 37Q@λ,Noƴ:7k,3ܹQl+ezQbo_P1c|n 8ف,?|({|< j#H& ėl8WWF7 4L8wd%ugK[ćKO8li`܁3LxŁWеhf ݢs'Xx>LMgzպ2Ce<;E^+#p* w2䬩ob{T OV1#^ƹk5JdSǥv@ 9QqG.ܚ}N)H>2iВuC/5XSCk_̟#˞|uD1n7@FA*ǚ!^žtf }ɻTQS-tuW~],m޼9@-EC 9>)|PyyǵCr.LJo 8W`c>Z_aUrcpmwQ>N/# `8J)0"a۫`-"LCc(sH ?(85 AKCk%jR3Wt_^ZR9.w2qJ~:=kN#י;hauSϗʜqYxΣP#N߳J cO 3^x 0:6}|]i8嗓D, ;\wkO~iA}-N:٤FtvT-d9$zcgM,X 2x޻R"0!5P+I=S̃ b⦖͓t:j 3<3{y",1i""9׶7*`n 1b:}ƓMKgM[j㣪RX`֤/ 𼺭]0{q Y^ʢĻ˞.Akf@p,+ݞK"J 8L:—ϊo]kaF 3k+|nS'ƥGAݟ􀟆AZTM'k8Ox6gdY:TWQ3(2a:'=ISXX[䠚B~(!ُ&w dqEUD^`+ %kۄRq}rEM)Zg.(M-YOOͣ@zN6&.jZY a״3Tƹsxl]瞧]eR݈Ka/ρ6s ?ipwb!9.ta'_n_\InǨ :܈^"t+{5j:ROc*=.7)<JH :L>?T[Eeżw+OO(2>3FmzVQW?01tş?j؊ zgaqO}̧i?o)?tBBf0"”ǃý9mxz7Ee/^LDz[̽Kiǡܙ;2`z#t= Ќ 2`f.4"M95-1ىt9=YdrTbkOw)R QHmxruѝ_fk_k㾁#Fwz3Zv'|$&'HP_ӜBu2oNPKP8 XKX q 6t L])"B|ZZ ji@AⲎt] flIX\`/1vs?:7ߣqȠd~"Lp7g$'iAZý!$H)@Q⹰IF4t*8 d*6 O+vA͕ceN0 |sL%??~c[HR׃6lצ.bdp "8~ӛ(stX = 1R=huoÝ _GQQĦR%é0S ![р<{fB0,r鰷}UxrjMP`McfÐ6~P!w*{3=y UHAijYxsق洄@ЈܝI^R&&u&%Yoiֻ:c39,VV #D 8ê.7=etByGAxjD\8}Kϭort`&E_G$ld7*ɍ\*_gon0GA-+7U}.#BA tS'1|x:(q32r;yg~ _VFY_}/;@vra:K(Zt|q\;q"!a".е j:k֍8O#IžR'CxĐk}2l)}a}T '~،Anoc~s m3ȶ̜x+ h$ +SNgB1B @آ`cpNB9LhӺ')Ntp:(IUwhXKI2GcarA>Ȉ||^{>͌,NJL0cQ9@o W^B@C#]*ݢ-SeI1,Cn?mt*UZ+`>Xx,>˪CxsutDzybvEhTRj|kB z$'V$+N}E 䢪ษr?*H `~T .FY/i6"j5B/_5BPXI{1R|O<9'aU- *xO9^U)/K(AyG3dJӢ5A[UanxSǠDb)f(gd[|)L8!])h~}mO@HC-wcPnZO覆ĤU "_0k@m5 x.5b.zI\{.W;[z*kZv̀{4</dY#H&~Ѝ)Y&7.{ۮ͡~xHpp"}b({A++$.XGGA` 6eF]#rƁbt_Tzjc')l8Ju}7?[A2p8HByP],ZV0Lは>lK\)sozKYt2'k|'dcA0$,+Ym'tpuU d۞qFa S.S@̰0/*m%ߧ=G"!Uל/œu) #u#IA KDDCjُ3@m+/`m.X-ҳ STƥ`l'jcDS"_*LM[޳V\bILuC(޽ݼH=U=E4}5-) C Zؔ%Ij"f'`uљ6)أ+nT𾦂S9"+ s -U!o A4 UncMӤ>{wlb=ˋ;e (7SWpͫSh z2j(\Q20&6 Gm7 ў5C< ;նc^0A!if 3qBBsN5yAU,4+%WL f^Jވ 4XSNK- B&V'ƾٻD?͢ B8\i5y'}o3VRͤ#lNc%cM"vʮnLԃ&^]]LfI!Jކ~Ӈ/`Z DZl`Vq MO#HPeE*@|ťZio&5|Wðk7e,2 ؞Yt¬\`Bd\X-6[>.#z 6_&W g2.f)WRd M[M Քrw!!]X O:mk:Geuge@@Etl%mc|Ågj\<3\j|1 ? A0ON@u.`QTdӑ쯧}e]>X_"4t$"Y¨;芵9f]g̢Z#b}ʑML\)GWrܺ_Vuv[s #_UKl蕷w4ѣd!a,3Œʇ#N=b̽`$|ݾ"QTHZ;~QЗQyN _PxWazM5[Q%;JVâg;gDn c1wYG'u^W]d|c tRJӥ :#ō̩cz>W vzILh^5zH/LX̙dtП\9=֗B_БD/8&ʀAܙlXb͂TfKj 0rlX,͟%[xΕ[$cWݦ1!:Qp$ /LmSI_C+A@YO)4AtlO>j ]фp3~6h7?(2/lyoG_QqOx 2Z{y>l%8 ȼhlE!;2ΞMu)uCt72.rRFY&'ً0tgMy!*V G#F`IWRT'͓ܪ=XK 鏔`i~|0xHv-YVz@ 1^l)LôpZǦ$X/q-ܖmJS[;nE-jy4=t2c;v_ hCIASYB + 836owhfN{H qVI,ڟ]!jDhQ.[+"hAwɹ5~I#s0s7-LAh:'Ý-=YL@hN鵴 2zfswlXUqP0cvmޖQw%]2F:z*קkħ~CPJc53;LwCoAʫ x46=D%CdrX]ѝ0f(؃EJ88B "1+{I BNzgzQU"۶&棵I+&63\磧IR&aD݆>ձYn"k'9js@k:ϕpY弍#<e~=1%.yu;B]m{ȕ/׬3pFCǥB+aS0YvWflMbfaUےe] Dh"Ωji @ Q}32QCd47zwp>sU \-᭾|BSuF@bc?n}fv<6 -Kgpp7T_ٲ X9؞Z.!!'ABJK;t3AH}2}ɐ?^U_Xss[#QCwN ,pAjєW}j*AJLF;s&2j冒XOnlON|Kg#M p FRd(DM φ g]5f&sҬ04b_" ,Ud?p3;>Arj5ڋGgYY5(cy=ҍ=p){i%"E#.5d{V_H?G!4CpƍeAX+i2=r*8;Y_wZ;v k܃X0zDkF/KU'a(xKl}vE%$96QZ-c0;p,<-k2nVƦԊ6]"ٓ; A^~SeqA'}] d@q}yuQpz7X~u>7Slz}Hű%C(-m߄爒Md׀<5w64?~1*i%rt\(*}lɍ/x"}Gϗ{՛~PDr@^x(5ߠDT|cT1e'i-:Y>>@7uTE:Ă>rUXs m3v'D̬H[eh"Bw+RhM`? (|@]ew/~95%jxD^Q޺1ؕ"\U<#(x(Z)z6:cT#,~ՠt.*#OXn8b0F]kE&OF7֦::$ve<?zUð_:pSdc*mHקKFtWS0T+cA B ƕ攐rFcnjf !÷%# e8=y?musA!gbkcml*jzd T$3Wsp*DERT'z%2힖`|d%5OiCaP_hZ!"ebI9 ZH7D>_X[@UϽEgjV"hyK$CeX1]9 D5d˴V<+sp}{ >iU0sl7[g #A*s6Ԙyq'{y٩zO@pM^ tPp-w=c'7QoxYCg>O <&B=7$3QqkQA'Rus_'e;{z-$grn X>ZvZ,f/Ϩb-V 0Ak͈5UonWO*<"Kѣ V#s>jOԆV23BEn0[cX[RrKDoCSd WDIB2ǧ^/'r4d-oa6<鬴E$B-#6bI~'}Cۇ暱VcM<1&!A@);޸VRsy37\rB0]ld)27<<䰵;Xlzvo}a H/'t!M'^# knp9Q9-GYiT'9[ScKIۅa˧x<ƿ$P Zn 8xWda|›B&n OPeWr^x<:"H ȇvsv?b`lA?x*AjFKVWotR̘͊l(?Kż)U-J6py *ާ6ai5?e? DiqvҢ4_|As`]{ %CbI7\|#|6v)m rS"͒>Bo<<0L m:I:dH6o`Y1Q=}R&՛h(*gQhɞATI?YCoZkus\7gXqyb.N:FE60C]APjsby [7!o7\ ;-t%2zwīf*9Xh guJGw[l's&rj`ʀ܁[|#:0GE΀]7I @@leY 7BM|P|0?Ӝo,`;i},/}]]C%vVxm6B R8PڪnWrq@X[B! Y%~ެMZXގ ý2 o 'r I< 3zSsǖF$ [y[;ef^ԑ ^Xt \.`Lj"Dl:$ˆɸCϤ'| S@l_:U4)>C̸=dE'sH\[}kB3!SZ%B}rnײk6d gmy>?J4VBO9z,?PF d ʵ4:}V+,Lux8ӨzmW!lK{<*9Ċf<`O9N~HR꼱9 0_=McNZj$ 5yo _ iLzx<9X䧹`$(V3`x DB*wMD>eK'S #tb1'F_󛕒p4@a@N)D"-z )*dHY#9@R$!?:1*{WlO*`7dL@mۥ@\۔` s%Q$ْճZQ@آp甆TIO?<.apiewfHmI˟FU ?M ʬxb`A|D"%0i\X0\д^exmSCʣfxpK#kasb,7fI,XiQ]81&+Ip]6uy);Gvfcd"i9ct0-PXKuͲj!g73Ús;MIևkHDzyLgj |g&N‰g 5pX rKk∑ s(*CDfJu`R&ڀB^;-%h:.xnD0hlR7oE8A$40~U"`&TIQ\}"X#gE n5S`c%'9^e!9S-ǨU [x %|Y<m}Ք(҆ 2vkc +CH72⊉mEۖ7]`Ƴ)ڐ{K5wAD\_.iP}!\NZA'0+idxY-7pNRvbi'GE\|bn?BZSնW1X9u #MӂVјIceHD.GIjSNi.@߮@pcJԿ BDu.22G|__&mҵSsI1/.yJBїܶ9W"'L?~KSCEn| kb <iKh}"2Y" q),"DL4qC$ D>/w!ZڶA/=Ⱥ.V=v(I$޲X n"b)QEs'Cf-kLJ+`|-7EUyV&d }A@[qw!U푁a}m6w˹bX$<$p{^xva.,t}"{`((TmfD[kxYę#7̕I~$㵿ᰗ )Ȑ6|c  I SF8`{nUym;:aF;::AnQl_ RZ}u?2NPJ9x"3v89jVgdn|%[3!F"* %IhgoQ>%~=߈My'@ӰVeaWda2ve:Vf[LO@K; /҄אh }E@^,U!+[KfFLF{K'l>mjtws CX jƐtP!x6]]_gH|5ni$D/}ִ[5-'S$eP`\1H#H 44JQQe8s|v{xc=/nןw!.#Ex?aEW1Gi]/=硠~6n'<3<Tp%/~7t^Ų _ 9~t3Dc{n!}R"6]_с۬Ly9.}G(6=\ .~bu-O#)+D!@: nIB1 @x99c 3X]v1 ]EoAӁD}fփ.D\goXK\T:5^ Qa-nlva (TYh]v^0ſ7o`j vhNf=7Ƙ 0{z[Û\Tu }Հ^Ha:NJ$r@?rɄGD ۲Oc ]sBpFc^^Ďhzj$$ 8zXFK^IȍuS[&ؗ$}U_(a3t,xF6&ײhhZ˥y*rrhͪrjT/ICigީS-@pӋdP@úҦdTcmUt6Ȅ.i1ȱ\h/l,lVUߋp+_ hxGh3pDjXr60e*Sқ9)^uJ@<~ [;I6Hbm@.Ǵk R#oJ/b\lh3"[m}BLv/GQibW4gQj.3u*RgT!nnGzP`z@?_!1[6NStOVM cDD/nޭP dI@#Qhc #G2dUR{ R'WW쁥,)eEXmܫLK/M~lC+Gwo4:&c+Ď8?ܸ`_/tkWa |@ tp",6x5Pse72>Wf_ _5M2zuq.)f ``7VI@i>(l\vZN` h(hBĖDxe;am!N(D0zf[k>?صflգ+Ƴq7TQm;^jozov_U`S^f,`+Oε)!%cՒѸ8%!j\%!O?@I]ً!G|p ?A%ZbD=Moqh~t{ pt1Ȕҏ[/UfiZK ҲŖ^OLw]cN=\kƗo kEV9\)+22}ufIH9b5ow(Q?c]ww~"̇kM)v9E;7R!nB1r#m|0/CБS f}o_~zZ ÛM~nY~u6J*.6cxj(JKL3-|\juω CzdG2 ZIO $*`#5O`a*B 66P;WER #+Ԡ~ur_NoۥE鿭5[:, ~jakz[ty pɞG`k6"WM;] lQFjz Y1!9VP0cu:X3 #oYԿ 's !#O:ǔ\*+u}" _/pJѧJiZ@:#;*2A)W[Z ap(3Ah?xy^yEO"J&O<3G l" -Qu%mPc)wNX憐k|ה=43q~DrV>k jE ,(Pt0XFhx %JLͺ;ď__eN6sxD-UӔ\ _{d˩N;vPcfm7p wuk-1 3fuDn5&; $IGc¤ƧFO!=jxh o42䄇Ħ+AA,a ,?(S:+:@զ -PT ín-TY<ΨbqД -x7=8[⾤yD\̶!+a"Hu/!bٺ@- [l+=P0ɻi-o>)ێ4F5(<@XkgCgP5)Knb/hl9f+ 㠕}KVoKa_]xΑRF^CRRPl o&zj5N 7( O_GN^##l>}D1!ix0iw> iUf/& ]ZH r)Gn:(`Ek̡͉~T cdwڡz tPSuF5(濞T΢x`6'ƤA%r5-Yxz1ث 8ݪ'TbJY ?ir+V=~c̹5"7##:hY빣9MQ()*:2ۇLFrk`$6uja$⩥{¶L%vt26[k| Vo͇/œH JC 'zciWmgz(4.l TE @I5-m)SG/97x#Am{W}aZrIDRݰ!ЅеVCKN76Z]H+R]íbu@BH뮂4Z~cvC76M_[TEm:+Nifm)Q]y/EW$a3PieD'0%+ӝSM'1晘ñ)Y*ouMHtڍ<2]}< ^qۡ|q ״HdHZ*$ee}RS/M#$+,\(!3xUDe*5ȵ L&{P^I3Dyceu>( <(` w5̈́jR%W3\9wb^_ߘ;p0(@wtry"ӳ #AcJEݳ{(cuS͉'p[T*X|׭VRmu~'Ǻ-2T,x/PcXh6=-TG&$5H  'yiߚh)1$?@^9_A!Aƃp8.Uko7l5%t3J~lÞ@ĄEQv^51Jn(!,I=x6xXv˛eB6[ 5|XȎ(-hhʐ;˝7lDޚ=,zO KBԍV(ʡᏖqyHdKx 0勥N2Rk(z«f?8ÿ%ƵQB v(0_kF|~G9fHӜҟvL@9#u:V.Oek=#AlZCMMON_&]WۉLv-pXlEjGV:Hݶ*z#o(P/ޤ^AVA%uh+fwΘ It>q&C_mm$ b+@y'h˵q:3y()}{SeNUbT)*ƣ+J HsI@7i `9Ŷ3pr}ʷ:KTHT2 8ԅw=ޣku!k*wiF d/܀j,: RaW :06ZKtKr>׽݉xBCG[J_ՆK&K; u0m7|bAʀ( |\~c=D9a|.Qiy~ شL &ttN9K%uk"zU1a>i֬?+iĺ#Xgfx}{ q+mjf͎i|8i;,?ׂ;ԛ9 &@ٔ pѰC9wiZztc͗!R|vwk^Zm;ȗ4eaz'o 1xTIy-X)tRHI>c;2QZ^@D\AUf!=Ρ 4:osqI0p "|ANstGql\.^׎Hh]|C0<T,2jRU G$ļj-z0gtSa&;S VMBQJ2RYC|'m T ,h䎷&u)ҊO籍F'oX߰@.'j>)o_1 11Lڝ(z`$EeFگ-H(MEi%03dVj;[=x~aj] b!Qj*bGCѽ=֓50B6"IMD"tj*x<7-mʳz4*MItqQiE$?LZG>h2Cwźx/eip}[%"8*z% _Ȃ`λ{XYvh؊iO>Cc_Ԥ[x)%(uU~?bA"ʔB{Q-8e־] ͷ"hfjqܴ#"=DXzPn[#$XMp4dJnn'bO_gP1MQ_ON:kW:9k|P[퀬g؈9Ukʰa _znմ$Dkhk%:nT#n +%[y)ƥTX N_w/P‚ q+.}o×в u\p^]V ܨ6m#$o;MɍLX?Q+[{0LH/mxSЈޖ-F澽`=d'A5vȳ Nc -e_6*"oor`0@ S[ ڝቲ-~QHZLs ezؑuQTٰittBcP_ڜz0ki'ɝ1Y(A8n5+Kz ?[_2dy"RT"V R< ࡨ-ַU9,% ;'bXWINpLbU#(\FzEOS d9hio3NnU*}ibOL 0FŀC1:L@ZQ*$ʁ|^`" Jj~~ec&yfϒxRpMZ)M"v9ӟ!$<к%%b4Qa'㎇?))VԧQrqiOF!ub]_N/҆;8ޱ#ѠQn| :ȋACj'%0r%3|uAK`Do6/[W8ANK[S7kߎ&gbG:D KE$d`gP%x 0]d=&#CP~1 ԩTj .>~,Yfa{i:vsiXĞ}>j8J.}`O{! (Z5$"Df(h5FQq+f=Tɴgz DZR{gMIz#yӭf m%.gW@[1L+$3|~Yzm]g)*U .AvGHjk0G;5OXee? \3=%q~jA07 ovB3IH_ߦx*=rM1L ]nbz=#C61}9ȳ#-Ӭ#IEӽ|iȡ|KXGR(aa ϧsY͙'LZBJwb^|P MG)vTA# wISE1> Z6c;&HB7%f 6 \gQZi-A-! =jyC.@MLCyEANBո&/*2+8\sESWM=  PLY%ߘ,1<&ĢBM\b˝H9yd RL PR2#[A.ESL#GWƀf\hByR˓3,`ugjͻ(ZD`79pg/@CA_p|{Oz~bT_jtHԖԩ' ,f4~D.二$i$SbN7 yaae=9HyN`:W^F!ӱ-7Ԉ=,@L|ɑ,\!).nWY .X1qwMUsعah1VJ!9M݅|ɑ3;r $nV uPqC4n>`5˃}{R'kYoz 7Vgg Tےt^މ0c~ +P.Su L"t?\'d߃z(?Tf3yk'TnW^7NIs:?ͰQsGU~nS\>PI:m~ѻgcMff&6,%FN:tf?9XP9vij2Y?;)E`ԣ&*=4kܟcbq83T%b䠰{KZl\ ? uV(i YXJ^5'px \DB3毇282+QFF[ !$;Kɋдe~t6Bz#!m0z\~^w Ƥ] Y[;_5E5q?P}lÜN nih[{qhbIo}C +}<'<WLQ5h—e'=閘N.?q /8>fpͿ d|V9ǵ5EIv0`s>zx*A01Gl30Ա4:g$>0o̿o+|MnnrL<*˽7Yi$譄RXOI@%bʥyUVaN)sUP~27TWkuEKlV ې%[zy-T 9K Ms-nd"RQţ#NF:whAc"pKm uKD5vTy~-@r?wP?N!65\~-/r=|4}PV`85|$uF [@ 07Ňů 5lW8#C05z.$nQT.iD2f6yn#[dL|JvvWy"F4%9$ "Gy m6k/5Ȱs?j2jON-~f!`mFXc/nϒbйꏁ;s,/VRX?unULͿl lNе]bq~³ ?^Ơe}>te4*xkbK4"aɮ;ПGEMg珊HY\}G˟6Z4M_@ )tYJ-c#ȑ;'NDd03{Ƥ}iC5#YoF2l\2)(wbj;)e˃*QSBm M{0֡7B6F6(F-V;Rɑ&o2- bA"+.Nӈ|'3YDʶffN~VKk6<'Z\9qMmdPG_|:etrcxaVWׯ&cmct05χ#ZqE *%9bE ^ ri͇Y!ҕB?)=0RA=Cܾ;rOkt1h[bmsޤ#Q|Ijn(\ER:,hŷ$.sIt'8|0wc{.KԺۊݙZ Pmv30ɒ|0!ǿ]%Qmq;OLz!@7lnza)SCZO+g}A^[ Z?4S$C{ɢL2PI}֨m̫'lGhbDË=#2z4Gs K@Z|;=f"p2#Y!ņ)5rJ:\wh>|pr|9&T 5 iW]se1.{/g6ƅ"[Ͼ+ŏ Ԟ {HWGS* ٩%7Y]6O T\#@'oA&8֍|57e'\{?Jk+N!Py#^mսb*6Fw#:Qg59yƎsVZ}=goIT~ SADZll 3ӘQ0Kteh ߎVLXzOS HI}.|פ?V,unC9@}%QB 5bxXy|^y8H`Nq~9M,= GzIr(ƈq0U-bc !f]"jGXY!@'E2E)6I1sŤtxQۥN <$$ ֏VWI|jMc>0Uv=@)Z*i臋'% Dѯ2߿Ѣsh*h t#uÕP*0fLīS,~Z'$B7#H `m9oҧ(Ŕ wL mbB΋eSphmԚЁa!淪U SE+-tX>.f`~n׎@O2lLkVԸJ4dͻk7XŃV St~LACba>qzmwjrC—KJ'faCEm@y* RnS(ȐSW>;7Xa؂^kΆ.꾋#bpkXgtHHU?+BaU].`0jt2xa^%x/6A]ck:k@Ǫ/"B*yj*f#Vy&^M i"մh Ekk<ͺRtu{FsƑw(n%w`73rɳU%=B,S[HL͎j=6bTWu A0>4br/0ǤW;4)ko8F\s Xns?%Fydbk! ? el.DMϸ 7c! #iqVܝtݑ' .^bgcI{zg^egL̑m^U@Z<y <\϶uBj,HZuzX4B!!T8~9]vaY`z %o_:DݬK!X-ɞ.3E6>tE]]D@E=GPOFm&hlڨ׏ _Qgjf oN =W9k՞:K>H`F {7ʹߋVƱd=JJ8.Q%E6#dS {L$&> (LsX0bT>c#dA#]E䑠J Wf)Y' 9lT!vjE##AQµQpqPX"Y3ۡ &}:s'ݗھ?9;=wnÔ dT49Gcy "eVBղ ƃxMӱ(a㞢IY+f.aXd !Gp;W'2WiD1;_AGW\WH#8v EChF@)N VfNtUL9o/tV*2"=$B2*5/'K-fEDLǃ<-pW֙y`z>!%d nS䢯&N"`\J̲x"`#ÀG ,pR@1`vF[`MIxnxG7(zL⍼RߎQUJfry59Nε iUOV3$J zp#8Y+q,*/kd q: ln9߿3RCX<(Ƿ o(b+5&kOGIkW~pJ 04Nd0""]Mr=Y(NKB;)‘TS<ޞ׳yc7DJc0n]yY#81+18em7}glUp_1-*e\4^bE*>ϦAS],#!F "7R+7[i*j@&p /k(jS[zm#F|Y8J_mW:HH܀$UOFfҞ: L ~:6Ė 6}d0c "³h[t0|k*}'{ 䙋U/o" E$ "HnÂONK9]$ҟ}NP=iW:a| [:]}dd6`܆5P(矇rYkg>M#&{8D5 a`AIQcQOch*Wx~7 ͑%҇Fﲡ\l< ^tgw!s70Wa<C]?G]vtvܧݗ{MvEn.sEzfKұI#mJFxvkK**FV RS@*`>? |:(Ym}Flx`V8ϸpJw@^lWҙ~Yѩ=X /;|mXW,Rɲ԰M7 RJz6p,cA^}S)1Rw Ɨ͠y BB紭fI~Z[Ӻ<^;݀_ֳծk@w@!v?kz#ulTuzK1B4EH n#G,J;4M?Ix3_'0DVrr(ʬm^ٟUVP=t]USͱ~We3Jk?@h` Rhw K5.Ui\WKL(9xI塜ߤ&HԙQk߆ڍmSw*3Z!# B0UQ=n7Kl2>!k{/hS'][ҰӒ@83\nz;*Ň+D7~\[-r񧱷y{^'`| >d'S.1.E[$EARjx=#U&`q|%8{1=%+UB|1.Uu9ǕPג27Ylwk7a5[z=Fu:~5&J"4+5*ER[q(2EKmR! P-xU.IM.%o tVr>uZkϊn.?Ơzb*5ӼdFxkUQ;^W?+Ӎƃ3]OR/aX[Sg" kK"$P>JL1bǮzM 0҃cY4d3`8%A.xY"n2@CӢ4dn4QެJ{d_5˽AJy^L.cq215϶LAQUmM4hk+dr,bōES_J> g{*rZtNA?W/]E D}ک#(*la^ }p9>,i0tz "=5;deS;}Zt[`GhWԙKO Ϟ`m/M"躿 dJs3Ɣ,^8iGz{^܉~Ÿ퇱5] [(`!5,>zOSYn "8Z[AYT4Fh9U s%eU81{ "> R(w(:ljr;!UiS0#mhi0L琤P$L% Zׁ[Z bP1PZ:bGH@F:;΁]X*6`Ӓq xL58C86t?Õ'80nihRRġTA@|ɴQ:֦>ƢY\]Md6d5ߤtJJB/}%j\~^Wuu{8H~ۊPCya?' vZ auQR`Z-8J(%gh| & zT=Fe y͙~#~=rn)8^#:3f0 ܥewMpXl] %sq*||nُk[Ua~b"`X #GkWGD5(5 ωγD/d廤uP604)yȼv@UɸdTs]@MNJ!FݼtLl؛ tZg H5LH\ *x[8vafXi4-|0qW#DWSجe=zsܛjDj{aWSDݩ_|f{*M /!o iFԴ=+a2sd߲.+[ aSD;PE]7 Vc!AA[6Ⱦe'z^ЩJ,?F*0*hp*o~:^y!q&cT+8ի 1e(t؋Q`=O Mj;V #(d:B0S[lp_eCf?q?u·i`N\Q#ɬ>ff{ `>~X4Saxqep &MU4!"Z 4RSYBZ-Ctll CCb;J a,y}Ks>˪R?O 0lZg4償qAW( 4?I]GDzl^4rLǼp"sUW-34;&cN_!յЊ5ošH`Z[1mĮdE1R P.T&>fڐk2 e5gL&,2 lt{s@I8%LuvLI~{p'ZNZTa}hv9OeCy1kqF5z~ Nd "2N277Zv ?Gj\>q._aԖaԵC]il 6uC;,者sB#"\lFz&5^Ǖ>[y%mU]4 |"rJ߷7>,?CCl,"UK`F(zb Y|.ohXm$j QQ}Xvm)pa%uN `ѨuYOF\&L¤3%B k#PqEJ+'LfTZv3/e!_x{ ;5)[T3-F2 Uـxa"+vTbR+[5d= !z(KZZU~lxXMXli!9܂,,vS,| h R.4X s84ur+}-R·k.AxpdŖ 7H9W K`9O/8M̿0j wKi ++z-kQ 6d[JcsH f* >W *r_}&Q|$5F]qN0~JĠ.=?xΏ 3DNi|Xښp";:JѤNsnrB] mIBbu" 9n(~;HͫoZ42 o: e9.FB)Uc  هK{ʁ1Lr8-'cpͭKq;YCΊ]62_<;XX.Aq!ݛ3ydI$Pr6O.Jd9P<4 56g6kNM[肴UYYhߔ<*OW?_|u2 .$fMG\S7!mI[򊅷AYe8|@Pa#%j}E( RڟH8!.m? Cxv`7{H ? /[WyaFCfѫKd&&@(+7` M%v1N}= b8b%ܺ7il*s&x  ^, *Nkk Q6wl8eafwb1-A?“)hMۨ_P}r] ZP7U"&Wh$Sfŵ#(qIIx*('ZО4Ij\&IF̲~ xz,J1GV4N]g?yDYr]H~D}eCP 2^|nsCuH_+yԻIWI-> eZ{TFu N ĕX<gT\N?;Qa^)ScIrkZG^J =mГ` VH:a.Vк+[ޢ?)O5&Nxi|e1}e⿜U7yW`h| b9E^ FmS"XrЦT?4ϐ/c QiϘ,'m<<&K?\&MSJ_B?y_Eή2^(V)!(0H7iɻbsGq5yU8dx{.gxŅv[N6r%VqȚhnMhR?iaItkCN`$Ss! $m06&1_ݹG$Q!p9%RnVb>9\+'J[18 ~WE6~z2Mvqt6$_BL &`(Dci'K+ըj!R 6m>ֲ/3i)t׋𮇿qVkpqcأF{#sZoY'z:Ÿ'Ù!v=ѽ?@{ 5RY}?LQkTfdfsKf63?];9]5WU߶V {Q;<{ {!=嶎|1Kj~g},< y:ӽ -nh4KEg5m^(D402^Yh(7 fw:L!9>C*soeaZyHh3 Mס21goyQrr"9&Ph` yFosE[cTl0}hƘ\Eq j+\X\]:˼A;ZY_]՚DGsz &"$a]:t>SRئD,30"!.T`ϦYB*2c8[S}%a@ۖSCK +mon+4oALA^wш&J2Gq!0>\2|f<F2"C6 D$ .yxDOI~m@5Sd{, żޚk'ȾN ĵWazu뽦 l<@%>(0Sj’άS5;]p)%Tl @loᠪER yW1- 6G_-YS@Jn_DC z*c/BP%u*om=o^:z 5uT/TX*)`~r0b"Eul~o#3:sZNcesӃK8&׹ t"LAO猥ԯ`Vx;3h90bGh8Y_3]C Ȭ xɳr#m %5_ AHs)S+14Pʳ\e &xdJ'e6eWVHe$tUH4"N`OuX\ck{F{L-qAI64ةS!AYKw3hpbZM V*yM@uoz6Ci72W--ABU5 CZ/jpI[k/|5*Qݫ4ۗ,9(⁍Xt;n7gm5D[POZ}\ Z8׫ZH?lA6{F)[ $텻؂ǺMErI>aLl%wp㊎ITPp@Na Q0ߤg<yl9šRA!4Ќ4S`c z ʪnD^/\0Π8!c8vLTN"qOX¨Iߴ$LIy]e7 &.W0-Di4y1RlrmWPaZ0*bhi mL=S[xW؟7&Vs[Ū4^?l_\^liembX8&4ɠQyQ,6nd{&\&eKЮ^T:E 49AJ^0ll u5r.Yw:OUE*!GBXa@gDvg#@mjc"8eer1pUvIټ]돶h&⽒"Uz2Bi2'h}'[w; pba}@%]]Uc7dY yit̾~5%@!ٲ%EH^B=5т}/kJ@*n^މdD~?_TdV7i"6j2>V)r7 ֋&?r$t|A9gg:u Bts׋Ջ,[`̨%`,g)Їϕ1$"?B}vMҽᶹL'+Wd!+C"bqg&cNj fCQn1-#4ˌ#~c Z;~vWN(_DѱȘt!L Gڽdd_ɚ rx1m V 2ȤX(!eG&+ ؍:U$1?c30)[$xUa`t]NzERn{{1Co_V$ͰAN&9Y=P>3jA}]Jſ .- qU-Tl_!NUY3%k%~QPi t2RiZ-̑ek5t`8^5jݎ9+kȓՌTL-^v 1\KTULȜekbϼT1"]ls V,QVػRh^m.$] )wҠrO,K-MxFa<M~oh5.PQɉ.F!u(._,ǯ:􃓅(\ VLmd-1vk[1>Ӳ<[YS]]cا HY*m@w6OEǥΓm{VMM8AկClYh[U;uxR(oLJLH=U~ͱّ 2$|ޖ@~nH' Z!^՝}/+#)J+﷝ ,?ɖ1h6Jo)A`SkTD/|=MT`u!G]` UnіrQ.9H,bI r0p0H(>b28 L=H@p/^}7g]rӄ.߯bgʫ[j1څk]Ir}^QacQݙBy8+T'%b3|1tQ!NC]PYDy?i5Ɇa)hwZX(\cink۸JH]REp?o!PfDb {۔/PUpjYk';NʲvO43{Ep [Ϲ h yK: f9ͩs"߻I[>e7Rkփ_@zW޵zH}>=`$N׊йjc_,?!.LoTa* K@ueݳUs)N*B19|Lkx]6Fz`.dG+\):Zp26-QbW@;plAy: br8X6Znϝ$;RH k'7tC+Ypv_{:wjc@4ئ0B V'_V a@2.Δ Nڍ!)t8eW drRIoӨG,$z/ @<Ȩ*-%KD9a^6DVufr_r{a:$X"˻)X:z.v;S~[&L.cp;5Et7 B?7RZq N1y zh9[ðuH<ܵ$<w+@VZsN)4ϟ< "_I^YlɍsglA[}v{N>b bk"2}q2#nxBK Ln!/И^eD=:}wMmܚ3E=Pl1q,nt,>+Rt2,yZu'0p H);cfJL'hUwF$rZ~jp# #YK7gw#ԥݸf/tpN}qDoѸ@QKy6b:eu=D[=^XIț79  OޠG ZCu剈 u+ ߅8U|ԳuKzVgVv:^'8 ɂ=o$W~y?O=n [$ҙ;| Nv 0د: ]{+t]hrRkB ;9d^!m#wGL 5Z:Bz=i߼|?5a#qZ gnro[ȫ#Osj:}ŢPb.6XP\HewOu5]|@97VMPh?zpW&ܼn l*ǥc?*7x9{ y?3as"mrap?2G1jG*vHz,J!NK{Ocg ?ϓDŲf:2\ x.7rD y0-31I [TYl7#5l y@iNG;`̤хLt N5d6u@ B,9k˘ٻ RsoR0&Ne*"h,E$fA9 RҊ5:7in*P8cJEĥmM l'5 qEP̂\bY߭"9;߅:)5 #vcHb:A /6OuN맑"i)(n `ǂM}5r "IssnPRAӎ[.Bs3gf6]پD(b0ݩU|6 3: x$.W# Mҗc\ƽI''j3LsM8 Iψ gԳN ȖJu<4w2p{ik (r-"t姿:Ik1L6wfV @43\2r&'cWÖY20T]* ZuO'4MkK稞vkՊ̠pC8 IuOM׀>i.bX}( Q9&h :ũjp3ωY#vP6"?z5iǓje4WGaП~Q_rtX|~nKb DWfg`/iC<.r6 g^m""oWPm0:# C}ؤhļoKEbL){NC9ԷT͢; KnpNGƒ؆Ǯ8\g*rMz"\;_ <`.r4 cw,i!O>;Rv{%@e Zen]NƝk9טJv(&RČ- j" E_6҉ Uа*&o)s}B2NǮuѨ`NW;$BATk{w(V3`@0jNMtW%L4̳ bB?#xr8=ۣl2*jJ)5'L#B߆c܀ETp =kM`qk[#t]*T0e^̻P2oFDsԾ`Hc])=9S1%}Jj&ZZ8Bza6οLE6:&۫#Q2}O4ѕM@e;ud -:kLTkwlH nUZ *ZpY"p(vw1X=MD ;U@cYT jM&jV&]漞✖VhXB)d^L/W榟-~=2Ka:u_ 23|iQA#t oKjڙ~2fAInH\=u oi$ C2aadfR)?Evͣg6j[;K~ @VcTDƾ{caׂX7[k%D7)tMEEVNhW9.,{|YްWX+Bh #\H`;<[tZc)OS {g Tu[0n(ZҫP>Fyj}BM@QFa^6Xޙ1|gV I+%qsKsʭ= `!65UB8J)O\mfF3[  ]w AgԊϡH+} )K)b25g2;ii1Rݒ@ƅ~e#[UߒN{䯡p.LO7jۻL? N}8ط߰,T:Yc](]{cN69%8 7J10Nߵ 7 [S y Bљ')fdvH1-W?)f]J9yʡZG,F9m0uH' {e ^Y_2CS!Z3vv4gО83"5ԢKERL娦0$?]Hk_0ޱ@y 6>XWQbְB"D*r 8OO흹ة =qޭtA#jxC{n֔93gs:ơ=fڢy.hqVm E'Feq)ms(^ 7s?=ܴ;}O@0v2.,dzUmO!̧>d :}/|W4%(Z/_TErg&,FWP+]zRVb70eR7 U haEu:ۮٸ,ARt5s\%zksiozIK9KrƼzm<">f-I%߀"y:|0- ceczbHj`BK+٣HFRBM\I1+ɾ'{('J4[.6Oz,x*$Rr U鉸^ O.ظKTonY s߈M y'0)N;yn`" ټ)>6u/QNR(Eh4= f6 ƉK1AnƕyπIOj| ৏TFjKN$7㯴u9׏ȭ@%G8Tw :&'h2߻&8&0€;X 2Gx,|O8GUEkTPV4USB^skn\8t:Qjm#Һ2wǽQ9'eUBEuR e.SbWk~LLxv``*rY5]iμP*\K:MY&HAQdiTK}^!')KKK.@`8U[y^i4BdHӍI-Aؤ `YsS^Ff4~f6$=q|!s buf:@_3H+EަV3tS _OUi .,[I4:oBjVq~}ґT:CO[xLA VK 8^Ja%f` rnѳ]:8OɫOKcKaopkWN8`ìiN,,^ /r}"%\mpi4a'9Tȍ}>P#"\/J[r0x)E72[*\%DS-(C VqkyB?)i\d@p~AN@'zhr^PPt@ܦg(Xn] v:[=/#GhtM͜l':(zNI`v~|2ΜڔRT T'f<ʉ!`[Q,;c"^Lw Lf֨o-o 'Kr+GҔn1<٩b +w3g6֢xmT646 PΡw]!PA%ndq DuH$ڧXB/v-rc 6Isr !p}ĤW9q2Y],\cG`E,ȌJ9ofH%}?&Xdm)=mf>'NDvZ|JmS wcc̳3g]C̑;8>s|8628{ЖQĦYCnh!xnS]ClS!^^1W= =2*睦4оh/~+Icr[B-SUV[Rt?vܳ&}2@ eWՋo.C;̌aBHŭ~@,{Y{ N3G,k:^腪czR ;O{kXFő*bO`Et$YzxRoOuO3D`ט:Kx)jx|jP; (> k\m6ڣB%}~3+GП"HX%XrL,e:\@;$VXǗ}eq (s\OU]&ތSOatZ)_eV*2ÕOR|EJDl0?bREw k Ou5x _MhZN1 "rloT.&CpXK/6%z)V+2Ib[ (/gYyUb`b۔XCnj*Sv0DD9ȄOA4$8P齐EyLI(`51;&gG;0dzd um:?Yw[B+]WR]˱I.$͍äy ܑ~>v*_kluU:"ղE%+EʾO @'CKmm踛Ab(oΒ\gQJgQ^LyϺcH ʝRr !m*%TЮS1;:C/g6"~j|DSbimݗqjt<)y1<3C(Q^|$)~Lz7Lٕ)IF 1ru:E{ӿ0m*%}dZe,4ȴIJE}ծ ]58>ǿ#7م@'>:y&uy8Ğn[4XLx=ɋ,dl0aƹ OP.qAH= MNQڟ:s~P 88mQM+lzpD6䣕 4m]-@xY G $+lYk:x[SuF􅁨.҆2P)/ <˵1\GᄡڣCsZFD:#xs6n8JSJ/.gz1{Q ojWSKqǛPxuuRM6f?TpڀJZ+IV;]P!ڹ<:F̔%5m(h8 H>IЬ5kr*QL`sEI]%^+3Y1 ϼN%e~&BdF_@Yd: VC w0hg)F` _KyqꮸuVuj.f:ҝK3Fm{.*aԹ+mY@ybSI/GÙ*Ýb*,v/͸[׶tgySS4>"L, lmkw^C4Dq4yΰ)L'M@h$>*n*[u&¨ۄv6 8[-Siɇ=;LVP94@l+M@51-Arl`k$ q"D-Yᴪ|n| FmLnP7 u9zo/a h2w+| aq^xɈNׂDH?<.?x8`[Zoj4[pC T^O}){sAhG, P ReB7nv$)s-Y}V$(Ser:Y\T8 rʫޭv*AXƘ̲nz<#XLj6Loj&-:ִdUABqx]^H-d0P1'Cu vWkyyv1z/NwW((wg!e4s'MEU_r!TbePf(xCH(]]}rǶ*'$Q&1{4[R_89Ҟg誏"4d=_,Y6R9Ucbkk_05| k=zī9ZF?a+XZ RqJ#^">]|[\@O16{SZ@G‘ZHmkIoWƩN C9v|7< )EP޴xڑ5nOZh n՗*pu.t+e :1CQG@l_ Ͱv8'ww55،сHCJ  Y+:ڪпw0>%^U'*`x:H`'mO)w&ڢ9fC"9]OFzj!톯KP4l:sO Ph<4 \a j\hϲpJhB̓}V6l"yF+pzlş?yRA]s l'e`6w` 2 \CWyfO/ b\X#HL|p<]O CN3Lwt0$jOVYN<ThEzl5ҮIXww.ݤxJY% ]ڞcPVbi/T5h#v) \?\ Mluʤ%":Dw]ǯacev)zl"js̡e^YGc2'oV^o~#p}h Fa@-9 ^\v=ɔ8ei'0\%tDzGof$b+2_;+zDBc|!A"Uc (~_#9aq!I9&VX>fıN?0K(v)}nlg_RJ۽?~Ȟ[/IyˀC1}#CnJ,"2ԨK\wOb +&Pxg""SMqI֢+NfhV`kd_1Յ6Q ½f/r&[Jb$dM3M{ZM@I)ք>V"K)jYˋpNndod Dq2.VnPp%*u!fʪBñO"+@XAmX_}yTfG1ݪuPKR; .;HD-h V//5է%-κ3Z0za^'Kb$޸,&%>V FTS] 3Vm\gpa>ΨuêoE2jH%4I'm"樗Db,s1CkϣS3B6 "Gދ6pt$79 JHGabIXgT* UѓlS Z5*H̻#q "ܴiRjB=#%E gKFI}] +/vz./K co/]:aМj8n]9lX]S)b6%SS2dAs\BW; bD;E7trB#iz2@n>M1Q"U}шTӣZ\(\/Es%E.@/SAis @wc4fAy}֠-[,}eQNtyl1T :@C/wTprK-#k p+WEZ/EP-F)ƵqO5 VV;Bt$ͭI PȃA@GɅՁ[ӚsE=#j9A{d"=Ca0CA RM1 y3N}3<.Oe~)^b*:Nu"Ѽ:Q*ԚGn1+A*܍%ޭ+W9#VzTD>K|+TQzj"=AR}WA,v=D¤a8MoLWy ?p .3ԓcSH5D;R.uR-\2+,6WsXy~)ľ+6;jQÞip;Q;!$S/2 *&|xW35G[6S%P> i,Q3 F}WZ'-;_vHx5h:bKH|ǨjN@rEݨf\[Aq< pR~).xͭ܋ BjUK[rOb ?*-jєp\9qđ.݋DplSg*9gЫꉂ'B|58f/  % @{]xa2Ůr ?Rn?eՕFN/f#^aμ1i!:YYL.)ZO]1[ދ9"K:HdgDCn>dOְc]4,?0v̜l)4i2 -U܊e:w|ՍWE;W  䁨&_˔}ڢrv۰đD9ϲ6 ;'Q`rջцP!}t '9ވp-?7'FǶ5}oVG.w n7[["^Vb;6(LbeRH]PuG]fp.`sAC^̂ q#gWt񜼈<- mKONs} K=Aw>j(m'MU*Koꗉu|Ɇ|}L?Vk3K#oө8J@\l:Z<)tķlJ뷙J>Bt%X_T7z?H]8%H 3_O=, G>sZ87즇FᕒPϽ`>Cµ }rf:]ú٣bUˋ1xURl:ʵY0VKzq>3#xiKf:Mo˕(hN7uG>_5[N^$(g!Y(@wZm}D2m(_mW:^I%3ܹt5 [<$ nu  ] @e7ff+vb(kg;KM9ij{flx8_nw]~?)5#jsغv`(,c,ka?;fa|,ZwT$f]> -RV\ڗc$}ԯtd(`Ye\b*x -Yk_tfkyD/_l+Ԗ## H.ֲUtl3a/3.Ů9ƗNPU5#u[Xt+'ݑP4JHn +~OK=H9Ť˫跒ms$Lj67DBhgLjs=?RǍq0QPb|\ U8WN0`OؕK""TT6In2GZď_rh{d0|qIMR,̅'HDcҙb 0 /GX&  T>ZqX3oSQ=Ʃi*쭁j"rPs[n> JLkJN͆ Ҙ>oxUZhڃi?O^1ZԽ(ϘR_ 3KQG)-tD!A"q5&Qq #8] !DchJSӼK JGZ8[3u1N(G{M):yƅ붔qdcrΙXۡc >4OC$ ^7D!yL@uQ2n__wкHmģ(>vȤ]g`i-m.A5|H6I6lQ.B濑 SR2`]M̋sQ[#p>0%/͛ζB%M}<82z&(Za1)}n퉌㎪0r:mRaݲfA hU==K2P[MHz(ۗWj^R]<->P"Mh7]5QL+RQ EﰡʳvMC6Iz18 #6!Pmd]hk??ۂw-zGBå{4\qރΪXZծH*' oPh,5x4o!wkXI}'= F(LRkOnӊԷf3 CS9)\E}'I׻?p罩fRI"$V>M7ӪFJ>, ]1j1zOR2B-<ϾQ z8􋘪3UUE*,0Glm=\^̃V򱠹uk e2k^xO#}ʏ{fyXbw Gs!3k؏|aQtћ'ݤE,yN_H&dGFVݻm D6EtsbVM[2h tGB(`7ŋTގ"d.L1،? B躙@x6 7s}~#(Qd kKTa>@Mpuv7,fG&ƌQ !l3:vAἭpSxkF|bn<#{F\rǥ뫺θMlw;X-BuĶ@ֻ-EQJIqH˄iѼ`;4nDުdO*}D 3^ 0_ܐVgKJ :p{咎0 iIi?4A|j*MxG/Z;w!A,/S ^"y ũ5]i.:c-(gUyd>%g:u R?b+7*P/"޾LL|¯Ps7ϾXx XGӞؔJJ1vRU@fz $ehKyԤ{!AQ$ ѱSYI\QfҾ(q+㆏;}e7&0a)dĻI"Jͯ-5+ |sD qZ2Qڲ`e!Bvb;u xܩ ߨ0d^r3hswHg:^њ_ ɐJ0S)"6u{r#Lz=dۃr@j*;#=6Uz1vJBc^0KQ(66`Lѭr6&U G@^f:k7NSFǥRڷFfa[-=QEA/q *8:I..hpO2aįnsQ@~uU]d +~1TiX#?M#Z(EjUx(WdWW[y3nVz0IݣCbӺ8E"XX{n6Q'43Ed7辥@lhYA4kr:Zٲj?Ȩ["slLί1-nEN3* ''UtFUVyb^:RGN`5Nʽ4nDE苐E:3ϧNWr \+Gl|+%InUje)}P(>Y³9y7A$Aʹ"pmmbc/YSZ?WE,孪/`+&xY*[.cyni;쳥^Z6fmQ牢R J/SveaŒg+LkQ4VtO1&Igc`]pQ%2g.l>Ύ${3?$(RYOASSa"zA #~\I= #-HMQI^N=p)H@<5{t,rt1ՈLQ`D9wEa$ԗZ-ϸ< HPӹ6,3a¡UzM$tkBS+.yL:Qζ=y5,ž'gd_F- uЏR\evsm*ٲ1;P ,oz^( \φWe/F8=2`0騎t-mB™fR@A%!Ʊ#r2C9S("">sfGh}4 qpԎ#[e0l1ȉ4Kt-'87t5x.sSp췖!xNݬ9`35_6dU0Ot^7cAav,AOSen++>mj2"\wgIv+}j:~ꊟU꫕a-` 깠نm-tlx Fj (s5YKRO5).h)2O!Dh'3[@hk^6YH9l18fur ÁAphVK?fƾYߘP*"oY_Z=DSk|D{= 0E&LS\V0 Z+9r36uA+ P1.\k߻c( 8Um~ao 5iՕň<x #`47bm~ R!b4Tq]X(>i0,Ph.pA0i:f/)wQ1SYzfPbNxtP;*)$4\ޑ@~ /ǡFt|}ѬF9uybeub#\"j`mVzO׆@5] /*p܁2kk2 (rioк+ϡqu%8V"WIR80}9~VYop k)Q]/$L5ܱ`O7dRT“b'Wn|_mj ˮ!L:B#.)I~NzRzRM$:UO4 |đ;[KbfDtB>*4_'3rq2mqYKv1>0,b(2A컎Vh¢"[#UQ̑q Y"`1BRڍpݹ_so:kHUu~4WD1 IN֭zM%/C7:rځS쌻H?zWghh$rs|n^Ц k#ia'=⶘`sScA1N|W}4Лlw/O/&~\MR0'j M[1g%- :jg3!g}hDjنzUZz?-vr^xLb3ECyhv\^G^d}JfLNmzP6)D>wfcyYa1A9 $םOm1Li62C~Z?|P{LV'׶rAyh͆ݶ).I n ^BaVՁ$MD9S q=h ;^|IRBoj-Et;]HSM[qѧ1Y{^u%k (wfgHV0i+3"eEiM*T/";%(X5>RU+>6.07P+j PZQ) xygyP&6S1ȧ!,:Wr|q Re+eDUqIyrwcF;ĉ+ws艬h8(?%O>Knz-;) SlHAsmO+UäIE6 3nIiIlj &TtSҲWR3SG)~e6 28.)M̞QD5*EO]pEo6nb)-|q 'KkAV O.&q @3Y'U`z: @,'|MuFA_DGm:Re'Sb<}srĻo2wQ$aY%|T? AdrtVHPrYҢxn_iY $|֧"Hgn%0Dh4>qeZ)C)>Z+5.K}.-3(*X 6m]oԂaHWe !JCn.ve*|m I5g9Ei__j.E$t3yaaz'odԤX_Pњ;-qHYɕDINZ !v?jdʲUq?,uC( &jZq}M:;Hիݼv$EqjJhǛ5:b3tbKfӷ2DwRY$ӪO\AppA:''O|_,ܥ/ 4m&ɮɷզ 173ؒtc "SFIoZjYD`6V*)us}HG~y}UaB#F+ A!rGRNLC>\\ -s$s< cf𗺷j(fX@vWc{(#= ^ rDPנQ8PdNk9܈MyZxO\ʢ(];tT&!{Z)zrXliv3W9֠ލ ѡubRު5CtѡsbmSǩFn v 6{ Ru zf!`,ې~fu 905g#{_Q%VA3ؒ*Y\|s]q>D\`pQU͔;$}7VQ ^b/GNaR+GO1 zM30uhk5[)D+p*NtIxq~M{JBœH*sfɀ*|0()G +8"Gı=uJI~ bItL6hj45WJg|0ǀ DJPOäx ;7zuE܎4 p5>))kMWpܧ\w3ru-8k4g̾⊙e*e$N)~M }jN4/)-%:] 0K^Ju`֕D{& 3pKec#޾d_Ewka㙷Y"YѪ7VeڠjvM,Hk#żqOJ({znyw~W$A uۆi dX]>1i)P>Lh3 f1+Ҿj hAQ6L*Nľx< _߇tK!nu$.|kCI[Av.e2_C*=nZRb>-N]C&>:k{;T ʔ Ba.!qx-~Oi's߁miCY ;z2zkbʥ"p8#fKɃ tBDUiuq[SPD%a4%0_5 3o9iEoC(9P~_tqz~fϩdI^_!/<F}!d,v'7͈Yhp͗FkqAIO(\x:>ED͡Y:EY W͹5;Զ3o"ogM0sOI _;sX8 ;>1rn5H7F֥ԛywO_C ωI ,\Rgf4eNjڞR:a1 BX(R%Y"3K ڳkwl^J %nKkIҒ:Vt$&}[ QG˙X^E{߶RcI&vK ,  +%%jV.< Ѫ=9-W>L2py6Ѧ7TbϠyA }˸JEÓ0w.K@<;-9{2b?lBgb~gλfX'^# /se*lYqqL9![s)Rk iZb%$djpG9UW~UYo36jS =zAϗօKQ\ΧtJI8w|aL< Aa%d|HkBKRE+aS[޲e!}!Kqݱ-z'Qa@db㄃ |~̏+G4^5Ex]rG39vI92|ĺ{ClICӞ_/[ZAJ+b ;30FWS\0h-H ^K d+h%і;rf"g_{݀p3رuX1td0eeXhIxVJ=:TQ:#IY)tr{>5:I~9ą0zpԨVx3@u DGvɵ%4s@ӁٔmH^>$I  oS!Ў{wW dB07W*Q}(;7GndbY<G-!]x`|{j?DJ>H܎%$e8E.)8>=4/{aB%KLj-c6= }>[:5 J)yaÑH˔[P^y?l]rM.XdDs&8$f#Fdۢˣ"hXF06t$D_RƬ HOjdy 2 0"Bj&a-/~mO’Wվ(k%zbUφqp@@ٞ8 z+ӑWҫ>8QcHЮLOҺ"FHZ|D#"\c{o7 `, #rw*p۟9;6*.f;˒ b<*7=,Eˋ׈ڛ]v`czԬW#0>13zvpyQhQl԰QT1)ajyA hcL~ NC^E#Uvho*)&f.݆]N[;[<fH8 :ˣpCRلfӒoӧ2R=K}iLj]ZuA nYx%c!($HqN}wŖH(w\/ G;"GVwAXTp pETh?} jR}k6dΕ %%% 2;Z4H 4 maj[?:p\ܸNcm nLE m'HA ނ gq ~oz9z,'AB#E/l_u܊E20$""= H\-ka㝷]DRӄ@X>)&b(GL, lMjTs} {DclZަwQ9SɸiH~@`Pk0)HI\ 9R}e5Jouu.qI'Ug  Aߣ_"ZYYvy0Ԍ$QFL`]K<@/dnD`+a6N]F4/-et`8'MXA^IL};!=Z]J@~j{\ogT#X,s(u@uՖ||Uǂh\lǜ"u9Suօ(|V l`W_erIҰ:wqEJ" ~8]T:i3^Ҩrq1W~1j+n=#yaȟ]15VC"j\.v+ַvM*砻%c>LzL\G̿2, EAm+kd[A?[rTiءdO@Y wq]E)[i21g^S0]v4f)l#zӾ` *u>+H2]z?P#tgt!f)$Q"#tȡOBEw}\,\qZ#Ǜ3oG!qɃԾ,JՕxt0o@oz:o F1?IƣZ̗B)FuQ1~ "j !* y2}=%yГH9C1viЏݘ?ScgzMI p\%[gzj Ӿ>*B0UOT;IB+= T]4qFZ Hʝロ9Ī\' *7JTCȿm4D^WphvpU' 3H: 2k A*$3%E<eYj/v4> 0; =#c#,".턐|\30T9Q=2jBݷ "^ZW̋,/7Qө)j$\ %mӜKVФ"iŬ_i8#ltr!DdwpKno cHr@:~x_bR@QA>/Lǭl~o2/OdoP7[CKZ|3=3 `0cqTkyՓ3zT;iSnM0:./ERvlEvnǓ"bdlu M)W2LBHU2L鶃Y$Uĩ zsq[0QZZ 90?$]2y#F*8&ExD]( qB,቙b=~iR̝;w7VBDA}6eD[ Ԭ5ξZň7 % z"?sgTjK<@!ʴ9#(0 ԥ*XD?ųSGi{0Rr^-됶w9Bـs7o^3\RV9.h@KG+2O7ADU'o0/4M;ޅʔ<1O!MuS]]1Az3 -f\߄:&9cV̆X+,Md tEɓ1m>BSHd;V܀W<w DcGr(ҝewJ[$՗ ҀގIU݈DS@3+i׿d}މy5",Æl:ߪ//x .Z[}{EVɮ ^v1쭋"үK-E1OFwcx~/Har.Fn A}d^vsN:Jkx7m4y)íC;nI>KӇOGk2W'E ',?;;^8>$L р+"__Q k\*T>R0AM]o!Ŕ)ky`pP{,; H;r|Yʮ!75ugԯ4$/̒Ƚ7s8܆x*?*fWuMPEpZ p}$@yeUUp0i6[r4d5+ }qA2z% ]Aعִf,dejljpݔEc;ƣNjAe#;㖄蟑ZIybuS }:/\ҋQ :fHc4VBN~EG "C* a;vp3LVݦ$_kp6j8L4Q߲'cº.OL2e_!!yy')pT PبĻd}oխ J%O==Ճ%Or)Γ*negkGܿQbfeLEҭ/(低>k+T3 (ཛHl>4%cbx>~#_^3SSh2jpX8!fĸɆ G4$YcJp?z"w юk:S¬P:ssBD%tFU 2/2k_%gnlĨ RFhq- yw ߕ"bU A 4|o%OurƉ 1~YuGymN6sE)+ɠMzZ۬rN/wQLshg,qL)߾WeԌ]zF"LrZ:H>im 6}ĸqm'yGj9*~cPN:'tD$“!ܪT΁]D|WWx"ys$FAځo<;~z]\ {ʪ#t[ޗ# ġ~&u%xG[d vC%O"bA'RTtmӥ>\K(D@ڿ:ëP|p]Ҙz6+" 0ΛI'NK9uhoS{w$Ѵ ~-XT kUł -99`03Q09S!R '}ˊBZjKr<00rAn實Acލ vڐ"GaՉ dH4v`4ouTC,J~]JꌻTL驊,Bh{a \ֹKa+,p- L [xg[cX}. 3u_|I- CK($~Q?|Bٿ^( 4_m xDZLe+4]JAtip|-gAųd =-uAza:C/Jߩ-=ۑlhRHfVB\n>_6 8pI5)DJ6=@ žqp|Q?oX^*Ÿ}.cMćKQq.xP w%y-x 8.o"QיGn)9CRGKۈSMa6Җ`aJV PҘn35xg+&T|\lQ̎F8K׌Ɉ[ElS g*##aPoELi91/s^һ;}.c*s;%o&F %fxR֛3TsSvN3cWw\Sjf%B>?_1i*6G 3j / RKa%mg=>!`eDl ##,e|Wd}єc_Wy'6k"6R|,*v dNٿ>8^}82qXZLN#MyFIFPKVzQ/4}*_EDWʡidY9U1*Muނ'Vܓ{֪{5w@?Oh_=ݘvd n 0L^d\k_B֦pȶ(mT"{=6cWHYrV2b+^NrM }u>(MjT3UcIH|Уkup!|Ӂp)1Βʱm?~Y .AFSY&*MN?AxŒx( 5X.1V_-㮽oKNzU7 {svq׫LyN:a8 VnF;ʏ#ـ}hnsQ8@bu1_CA,bCs[fm*kHwxVc;vq(䓳խ&>?ǖK\]g0}"\-OkxQ?u(i:z=$vXt\nI'[n@䈄h+A@&%VV{ʑ_19oSnILM3}\E2眵Za3DQNGX.BK  DSȵVBn#DL@e5FXeQ$P`OD>KCТl4]HEPCx?Ƚ|uASvM1@yw=k1;Wsj^%7P}[-C-rE|L^-ntFΕ_azzR" "kJ]y`( >vU %Ԧ_"l]n(i>O~qοԳi*+ Rq`Ȣ> Ke Nܷoʦ¹}*(EWna?R <7$-d bȼ+]k0~f&<s{i1J<ʊwi6m 7 1ʒRzQFݨѴBh!gF*nh& =6Z@5rЁ>0s-iΒU|U/(Ӏ@3ihMt=#D.ņn) #g-huEO ôfw{6Fuyȴi:"7<3< -sռlq ; ]19J0. &K°O2L[#e#P]He*&1U&+n$^ZبX 0^xjqHJ DIwL§(Q̷}B`i@[@CĨ@rrAX1t8n:6KPKz|`A=w=T(M;]r-'Csax0{\qwӜg_{U<  f5(Hn+3xa`, Nh$9qy(R (WZ8PVƳvT”358Ң\^P_# d|eI^0R#9wuR9s}`pP.PG`88VWCo\qtEDTw1ͺ&ˠ cgt\BX_)5];tqL?!^|jGڐ(yM_u(ܿ.7aQ}Edµ?tBgU~"y(0-Zlx̯o#mQ P4[6ev'rm]ّSO]OĂVXnπgs\Da@V+u^h9߉zhS292\[`T\6[z84`]'m.R-tNRekhZ:X*x dNYOj⛛V!_3- B'vE-8JTtLfm{$i5O6/ ,y&ʅ?] 1eEKqE*mSo9c磩9:̩ҧP { VZ1b4w`XC Ybʗy{RPWWSsA{x{ѧyb8R\gOs[߽n -eu|<=e?.UNb xFVPUi:^/L >!9Q\ )6|ga FIDڼ( f8mK)jhTP3x{uh)815 =V ->ɟ&͢<ۊ+_=Y3z୍>璹 d1igVR{V+?k8Y.P+뙔glrg9-@"7W`a)t| =oDhh;$}+DžbaBU˾1rKSxd%U1[kY?TI{|}i}I#~M@`qqG2 pU hT1Ÿ(*lgIrnDTRc.?` USo+?c!͊`.Pu|f"Ϫc{g3j.U$'`>0{ ?)~лJc}iRu$6p1#&bW"<׿ g0=yksVn nxM]?w8m DJaanV:N JUk)+0vkB!YTlQIpه'k/cykAA9RMP=r ۋh@l",mN8UA.] ˆ$Т>ఫ} ԲS7h.FݞW"6"v392aDkQVW'D1w-z4 g&E|-_$荟=w1?gaSo1l z :XӦNsPv՟hdg&uILϵj>j3sqF VW4XbDߛGDW%olu<H3Ijh͸$ }_jv{ >C; *fg$Fw1`ktسRi`)tԜƃQI1^h?+(A;+JDyfvvZ#49V~^d,e+#+Q \ ŋG[g`n RJkUJ30~ѦUhʋLo@?S=RQED?s&NVwF܅W 4TFQ9A$zZ09Q"{l޶0NfJ7 -o,m8ѴBB?uRCo,O JlvoĊUܮSC?Zb쉵>,CCqAS5m "?j>& as5aY#f.I@d`> +w-+k DyH"+qOeZVi`> (w@ gT4٧M! ~ބkOObPJ[SpBZ\la@` +Nupc%s4c 0ő7 ¹##Hh̒ƶB*% B~bނ٪X\C5:0'@Iw $"Tnיv\|IyTZ{p2럪3z}eozMgyCq+90$pԻ2G`}7b yg͘G <E@ɬ -^ʴ[d"S[=E @Cԧݡ*9/d> U}GV}rm1&Fͤb6`O$ιmXIvo|'ts="Y}F|Zbzhe-ghSsCA-j4<˛.Ỉ|1u`O*j3L[)" F4Q1inrŧfd_ ʯG U2;k R\U z/무[ 1F xsX٧W!r^"5Go *^)/Qt:6pخ/_ws&Dh<+gDŽH&=Ќ3"\B"0QUo?Ƭ6lϮ񴗯 ;C;$kD N?%hڽԤuKEi.'y.3`ơ}/CZmTV!Q`%?[13n]%U XWg L]"K>%Yc矟 1D  W_$c Gы-) ͔ɛ8G5bsb!ǪRiq fyU4mTY`)ClP?|޼]N` IJ˧SVZ&҃hz@O2c;-.~`2U7R9( v}I04}4L΅:] h)p"qKbWzҷJ-׻hD!0>őGO&(PY gFC5i aK{!N!pvqD[x3l LG\WdFoNG^`ÚgKIJ[HK 75&\Ae.@zX[^/5;0 U{NA- <G55(~bS톘JC$gqsʣVR>dC BofcTԙBu)גXπ%z0m%5aR?#`I8u=G b, G3Wp-Ii/d2V׉gy@UaNQbc+dFxJy `qؚ7[q){ģt}u-'BrY !v+'Oyl<18MnY0 >6=g ZErCiשm"#&O Mh;u"Q.K|~o#T6vH"e茜ϳezzl% h#En{~JWuݵI'Yi_ڨw;X-}Q?;$X»>7knOS4>XgfFs$v[/΢6Uos0<@6N"qF4銢FGVx)_ߘ|]ǂq`_?2nY/&}*= ̴MVpGTD+"$swi0jn Wdw r#M_C{5z+dRĥIԬKZ F'b9B셑?NDT3ich D`6u)Y5!vU P=!Z3cDHjNle/\]lҐ"-eTb 7NO >HQҬr2ȟu67~lHUSߐ6dYķfI@Fqqu&GB.O^&k;mD7 Q*R g_%!E\DAwfe3tfKEp:"C!pu HJbE"kI0d-}$_HRs}mJ ΉzɢD>,'iM[vFm25G[oeC˜i4 =7 ^89"wQAE6́.P{;/4Sj 9 #ȓUR\8L IK3k_Գn _)hZM& 1L!GWfX|Tcd'br;.-Q's WMi` 3v6xT =.˶>o9<p#gTxRoL+S#ڣ كnoIY?^rCn2~DZ'hټIȇ+ k Zz'OmBC˭1p飁v}򭤌jIQ׌,f44?Sl˟x,04V3Ġ ª2f"ԃVTDZ䟮Aˊ xAl-q(NA0P0.7[|h#kwİ|$9'Vn]d+_<'#M<*3c awAy0Qsclk 0g 3Ri"t4re9CƑI8ډ*E)5絳mb+er67sa5|(-xqbvuDZ"e$8Ч˭JN!Dƛ%UZ]M,] WTc/@O(RL{†09Fz%(0oө#1?1U[ĿǘV y׈._03 CS DR - _qBB%:ƾX@YsڰF.  D]~`-J57i(})(*/|$Ć Z0ixOZJ 3AH`"ȳ:cޓw -M#]n/u~W]uSg觷ʁVxlHNhzQl67+b L{{^8UtnՒ8<^`Xj*p|b=YPO&c*Pޫ'INRPa"iqY1#a#i8D}]珍\odFb)%) >3aVu9KUh=GNQ">y -jL?tDڕXxln`f[a˺X_%M$gp[ 9upt GF'LNeU~& O5 0 ͬ`xJtaW|XY$ĪXEWa'E *jP H!>ΥLlH sԢ-!Gog7Cn)}+jJ bR1юy7ԙEu^\ʑUIEFź2 t ? Uhc:vui%XRl # g`B}حR(Ǐ$jo*1*3s]raJEH-#̽yi1 > `s_!?<&_Nk?~eO{edĔ!)ѝU1n"u@7a.ކASn 6RYo96|Ie8Y.:""FK-1CvWA'@yR014Mb|zFxJaqVY+wPf =nge65L4А[;f69@:!>BLe`mpض"`[1PܺNM6|ȼ .76Q,o,tf1AO*cX lw!:Pka/45'.@s4ooLOIn^nn>X`o]iަ0[tDQh%_%(v86/myT%2k(Ef[|#ѩ|ƛvL9ާ5mۖH7:V0^?OP> tҶɀv<5_N Y|&<(:zRylW ]b@~"2pꙓ:%esūq57˥I Вf ]I`g>'EȘs)K@w1Mio̙<‰1n9MԅYA "Ƃ"+P`}zWsT'KF/OK2 \Ow+>N :?89|mB3y3^ (҆hiƶdl>ٍeBQ2@g$NóתiJ?#|fqCj7&ASn6ʝc;p 5jy0Ect`CQ?Mv;FBO:n=PF+mCEf '?煯oGn{la]=1VUkXMB0rm_+4y,L_T[:uX HA8%F.}KLϠMih2^]lR0pPSY̺x!p;"? fЏ&u*,)=|M[GvLz΄ef2`+`5xZ?Y"zN?6U=Fk205ҿ5զfI/aؚL5NuUxHo=V8fБ5OY'M>~_~}Kt>w{#߯G|]TvŻ/LC|[?/ӓbz/7/'o~/m˽RoR-uxo=!CLoӏ}~_|^/./_qw:_nx/J}c/J_oξ?/b}O{w_zߋK~/[}o֟ee_{_߇ ޟ^?u;k|^_z_L?۾/r_~_-~_Cm~/]Y{7/_J_3~+_WcO~rc//l?j/``E})}w|__E/~_'~y~|_[{@_/Oz}a];x_Oo}$ԯA|_F./vX}} /g>+wT~/{/K_ӆ;-|^S{^?~wퟋ/f^z]bߋUO^{T?Շw?h?ŧnY<#h;ڊuE [wkn ?/ѿIitWSou:9Wwz^b]~_)}__?rЕw}F-O/mߋg{R~?1_eGmS-z~/H|=_`K~cz~?[h{oS./B_qvxW~_Zo{^ ˽wOoKwv~C;z=/?/o{] on~wwz8>/s+n~_W.~_K{ z^O{l[Y++ww6VOo_ KJe_z^?{P@o[~{z⻊nTG}nh>(47,pߓ~i? {5/ .~ mCW*{*wf_Cwukk?i-\?wyo+gO9/[nUm_ܹr,wЫ^_dm;:n;zG}\߇/GAVvsܳ+X߇g7cw/0ow3?[?=tѥͯkʿ΅履 GJ_/|?D P?+Kc^y}za+>CO?{DnɽKOSZ>G1}g5r.W<<]o}iKMO)A\o}!aIGl!=0<9?x@mpj18 !)FSRVU8޺]3 2/2U^yP :n\r,ȇ}LT04vpm#5 W@~)9Q5M e:G||[O0kc DRU^E8`sl4;u -JSOȈ/k4@fGu zr$lN89eϖg !iZ 5+٤BAy;\KX"@(uԃH` @p52Bߣ5iCZ]&9 4 mR4EGA Ѩ ^`h -Ngos8y|sttI+Vғdjh4GKJ5y0z~zt»`SiSa_^||Htҷor]E^Ubkr)%k%pE$1QQT;}C)GS1r Ueq\ō$Ƞ%oY䙳P 0l?H`!yazWu[p,5*rKI~VsP1_нbw=2JĘ4oU1;=M],d2$tف{?Lj:^ىEUY‰NpNUt~%VSkMcNtj FS/L'eYRxS | ^錏@ G8DvvC9-TS[8Ԍ8'*$e-%kDB4J;H35x֜b%8s\w2WvCgDi[&lRt>jKs+-[5x"t{WxΤ\W5b9 CYnK"GbN6nS`?XMW#2 ܛYL1t`EZ^Kµ=VO:A2J[Du&٬yCoYW0-(DZK'1Kd߾:xXRsy2108 a iܓ_Ķ+FuP`{=49<2$bW^7r,^۔kuAsPo/-TqL#¨.X1~}B%3 lXM>%ţZ̏~䷛n9nυ lu\ImҮ79W%X^U8ZT;>"ݷ݀IӼ-}8]3idu507'&9(&iE!ay HQ#`i7~"/^ȧB c65Qb:'#jJʻdА,h)cR{ox"^桄[1d3iH:$>J4a2p^WV}#58.$/?O\H4uy9C07[!hqa,PLYm;3* e%w |ފA}gw}I;[H-zTḼL*U"55&myo Ӟ0&PZTR|dʚ%R\\`vLc4D1 ~CǤZ5Kc P5 Re潕TI~&jWC̟> "y$SzjpI~@J/͝V.mnnk iYY%}CK;WV/`v?ƷkGʎ@D Y_y:e.IYyvH)2bh#%+w@,b1m{g cenRb3Iyʏ N%6*՜ y3fs<l :P^W&1r^ d$+E-%gx,)IJ(Wj# x).d_R3j QËs $(Fs]1DkS]Ccz nU[E{S77b4("(',+9tQW[TyLߡcm_H#mJx>*n|h+a13D=7NKHA*/Pٞ'V$Y&fn%?Bug ̳+y딪V3P\8%/ۘs?9!p&j-/IHX`ћP)f* ,%N_=k 8e]FOap-XnHlFOY~$%HB3 _D2H@ SyW~Yީb9OȖD3,Z%]`\7ܓD <;i헩S)Ȥ@p\}H¢fȟjkYRBϪo}%QPJf9P9`+{ۅ]Ǚ3ю+/Iјdn 74,R+A3KqPS[DYڻ 8$Sr2j7<+`GSXc8sxɂE@vW1W+h]t.2=lAWtwȋa yɲfpxiL`3YbK[ԠSC8aPj"CU[+|l,8z!xW)|@Dk?}'<Ҿ6Y|8ܸ\+Z!<:co+7+< {QA#-"x$Jq, #4T#f#Fڮu]a}oCԄ" .a`Mu᧯J~Y:J.g%DcKs`B C}b+Dzzttkf+ f%"CEP{ws2Ff0Aƶg{7Κ8[O ,>mdư𓝢@u=Vl\]f,\Z׽ q3J xHqut2(s͠<mҘ1pϧx <\O)m3uUC"PoFJׂMv#\oP_}Zx?9c^'{%hu89>@sc5JoTS֣t|1{"l2Zpxb>r5c *TeYӶG..'=0-N5̞u&HPf.yB w M?aleAE.&t(Ø~0kby`KK!m: EFd8._?`倜BbvhDUCi{>88E*2̿3ž܌g|@YMa/Ua&?0Ҡb.rųvoRQ׹OgL'} L\W(1UlRkB$Wx rJ>*>Ntz,L4pŘSnV{5b8=4Pu-tU@Ss8+^]8d< ]!u5sLQLᶪjH˂[fh9b8LJ~3Vq sv8S¼Ujݻ/Zk\-SD;5жnvk{~viWy[=Hn90d8DЩ *a&R&nq9UXu"'=U%OCS:;R'4xą26iX r33@hf:` Dx; ]N7;Jgl ) F1$عDkϲ$mmq ɗV̕E3 G"64 y=@` Oq/p2 yxkD95'4Gkn} waWN!,98)8]&3Pp6?U cޗ8~.NW+eG~ T͟0zT0|w8 K3âCoiԆqRwX)]H<0%Zͬ$f5Pqo67}چ Q`:u@_] ;2r)tI V+!q% 2'0Ë[c: -)[vcAyMx0n8:cWz'&LtŴ8cR=&qulPQ݌Kk3g.~LV_7`{7]QҖC72$_lW4N-!z~{&`r;2Ov#AiQ_XVzbWq8r.<5h gkBK;j ]NTt˕wJ&dJ/"~0U J&'b M0w}:*}b5OgLf.0)MX.G{.{<ǃ)`" `K'\#qK/,I߾9r4?NJM+hrTsc I <?Ub[n',7*+|X}Sn&j*(s K>4ڌ='~(X{sUg|H@Z}Ƶm#!U2vЕPYmJGb|v˲nDz (sn>baCf\VfB%roz]H/{ }[hlUb Kfyl.q.efJrj6˝ WM7* Δ_ y[=]Xr;Te Jf1HjeĄȆ8&aW gI`;s%Er«p=-%ۉ>(^Vz轜Pq$5 _H0IX c/h8d<)Q$@UƜ/(n17cې *p/| j[5ndt[ߵK!M41 ?zۧsL-2s2?'br. bi6  WBUb{gŎ(ѝL;?W֑{GuEa$L{KO;%te0߀7 *}LӁ.] p|GfDdqgǗ:- Yl+cEu̐c# [fXԐa8+nJ/Pnx)/ >..q9/]bLVR;(P 靵e®~' bW):d޿oTdGT ýOM}]J{9b!gcX oչ)R"X@@8yfi' Bia Fc# L~lȮBu:0L_b1 p6R9e0pYu:wl?*/\ qnm2Lv4l%ēq (xequ.N,'O LT&rtתE L:6?p;B/IX1Ѕ-(>'[.Zi fp dȤy1䧂}uGb̜&t}Q>(mrX;ZW޲';<>=;Iw`}G&Qe@!|=+G%HAMKiH_o:e)*iUP( RNִ6  0%BҀ*r.Agv7d!h藨ah*j/s}R" kM|&ܽ'S-ۛe` G]fcnKvݪ yS}ƿ'jF ڑfRI^g"%H?`cq[36m(ȑԍ7iww$AcBBUkl%r(J|&x,;5HU?ݷ:KY@|Y֏4/ @ln6jؼԔ!4y$W]`I-@ҩsʰ6ieP]:aam U<-LH9/@s*{>fi# \d^Hw+& AoDٴYNHmm&"AǢpf0&4X7( |y[(av,)-92@d=3 o_`,g|tƏnРlmdŵViyYJ&163, ;70_cNu-^׼9[2J&fhHsV0U"2j757bn74ggs|ޤm^ܺqW3gL$J^/Q'lV+_mn$n8Z:Plt@D=>GOL:L f@Lt]U O7 y::l!wDpvhSN5AL?SX0gqE==fT{pSwW AaNݤ-FBeit!l'*!f?&i;:}98lli}g6&LZŤox9に=V3: I2T-n٤(Yjql X/׉m1vXD6ŦSd2}9~xz %$;C g3)%EKM9,1"]* nG=xZ1Q@t!ɴ}sP o /Xʒ<^e}8Y[,.n&|uZ7L{T,~UzJhL {4'nJap'%nn, Amxܿ?[XԧJ&[ͯm!偫e?K/]PRhp؃fjWbJ^JKE1 Ӣ:콲lXfy[72}eNP#)f%hJD 0D57< `>WMwjb7f-(G?'>smR4 H"9gqF$ >Ÿ-lw-pۅX [ XV0j͍6I. .=(9-FE759[#%tJv @%L9=" L<1p m'U2OհCm|bmr3+ޭx*y -x׮(, gq3ݵvYk[x]p_Hma!3cu7L[uhxQV<$^Q} .ijC*c癧Tr<D] tGl위7.6aGuxOM~ubߧ@*vkq\5QdS;aLsS EchHsD-" RNyAig䊫ڜ?vՒMgjQ@xpRN #m_A~Z< a4"lyv<{\Sx~< .0QIa#~&4)!+a4taz } i GG/MVߦ)3RwcTկk2tz.?qGE8~Җ{cqavnv䟚=vi]X_GM"N1XjI5=.9dbʥ޸~ZiD/N <Q${G=I{bR#.@0I*]^da ^㑸Wz-L䖐`M OݥO v42PJ\6>.4<<(ʼR3Mt{[|nP6>sN6* ˝7ITVT”qɑ"b?ǝ]a:Qb~7 C*E`֧(Y/*id耪eYqi}LԈ\;|fy DX ) 1A-շDCp`;YjBI)C 6_>`@c-qb]N> [Wo `"nt ML6RIz!>F}#L|X}Ġ42@yVtTq9/&3g9;~3[{JSLoT]2 y`3 bв-I# mRs_ QGĽ<8wx0U+#p⬶0* M4h%r*V[Lߓ] Ϧv6z_Y龍eRVvR@ݛ/l)U=|^ ΐ5,/0 uˬ1@l^-q:R=Y]z!`v_W\euck7I,@ĽxvJlG?Ch"`_|Sӗm:얱d8&+jOj<üG'[|Y8#B.rNVk'LY;H$+mh)7ԑ%2!Ϳw T XZ*q;àkxsXbJu#YZ N /&2/G >u29MV䱛zWZk!S61;3IiRn{yilfvOKkRmYPޭ@~掻m,z%&f&P+7pBO|,N)Lt:y%ˌw[Ծ/ˆkW,iƒ$C6MͩZHvt,UR^sZ.a6RMB.o~6olp@ь }]s=ԥ*1'wxFxrm pHi|qҤ$X]Ye-dA>nCԾr {CivlN]#s"unѓGD~ڨ'G2~5SRn݆6Y8Ɏ>mZѪ6ָcPLqbQE9 V=؄фwLP6HC}n\VC+|]*KO,9Z.6*gCt4:}J83 :$ Hf ..5zhM~qI`"G=SOik}Hx`fsO|LK(Ny؄m,7X*WgzTkkG6>W5 [>ݐ.H2("1k=~Յ3K0vE,B$5 oƁd693m DD Ȼ&9_{c<q~}72YqQ(}NQ$|dlM/W9K5 ~["/'PaJdC!"nN>E'%Y =1BYBi I‹ߤIմEA!޷tZ;5NoZ׉8ۤ#caIuh,ZZo b|r'Qo@զTٺ@Ղ"_Ҵ⺖^>!ث4W*y9NZm;Z*#x6eCt M\E&4|ν i0XQO̹63ѪM& GHE]R\ZJ-uF584Ri|AtP$v-dкJbh,jnƢIDzŧ5)쫆,ZY]+ڔoII9{B%ի(qYڤ>U(SJM6 pFF?рIn TTZEadU}][̏ƺ>6u.i,QMU>rShR/Do5yUJ0=ҭevNZ6 Y愡;m%4Rϒ)0 13t8fe\ZM^Z"Ѻ}zYM^|6\zyqR cN [1EworŔiDZu` V-0sՀDw%_Ƞ8O `lXL(aT:'Hp?ݩ4R ED<͋"v^#9+-1녌ڡ'S)if&x6hv3E(1YF4'+[Cp?:PvB! 6!-JaK6a"VH$ M6$F2zb7Tu$$ft`ؑ*;]ȬQ}!%D-9 Z'š~6A_t )<pc9QZckiTP/l7ʮEC61G~ ,'ĀL|F\ h͵ BFg9~!}A=ܔ%Q蜣?Щ';3s(h Zً~rW\<3x2AK&?U#a ZI`ګymӠ"p @r{0tKYPL"zFt;;Q27txUkcaN/ܦYAڲ)jM{Z77Wk)jwTjGľa G)ek-hFI66 Tf@TW&9z" ͺ'*yOAp-Q\R`?|Gʴ9خ@8Ls;J^ӳi;`3Umwl kvQ& Vl]R 1}ةpΤ҄$vTu6Wܩ-N0̧SV)`[KJ .ÌbyBer,$ʢ,@(v= \Su)-)9_eVQh9] R 9epHQcp[Z7`a낝{|?}lmx V]b~cYTP hKkS;'l&h.7|4ͬs߹v_]1?"tzt+I> * x+|2jOb\~`6Lnt"jPx)w\?SS-lq ٙ.Rc9L]EkZjaNkUhyS3fVș LK:\JH'MnĻ<7Btcȥ Lĸ1g2d0jJXu+mammy<9zo W?;L&~WWv=k*Qoޱ(Pdanߗ( DʯQ~_a*bv7P%`v]לB3oP#hڟJnxLmcKϦ qmFN2^k}^'4H9OwV$P@m[%;/ZR))Ї(} "Q{ChFCz};9, jDњQEx z)CJҢqq(lM䁲쪮j4-=Z2-Ut )m%O[Y?X K!w%|xHZ净2pIu;񘕩J@kL>xuo_ƱSN6ѵlJ=w (/G׏U1vetX8?/( R?.VL t-9|P3.tȾ!w65M6dc{ -b2}mg󄟣6P/ rK3Ӈ= ӢJe֨볰Ж`Y Ao4,Ľ@M5@*',0Nn=$! ns\,`KSԶ=S6d|7}՚fpϋC?ץDw.h7~;%rUR~2PKf_g " gAvu_:U`R݄T2vߛw !RqoLG(!ȿC-tQ?3{.G )lտcbOA`Ǧ8R% B`H[޸~;Cw ItK"kBaD=85=u7PYŎ@Rt_Kf2D4l셉N Cc]1W`" Ĉ-tkOw%M!j:؞|}O{0cy];u ǵaT&ڋ|Zx:+hѭq'  ? 7 FRXR˻~ѭ{"8P ]Ǣ΋k.T6V "=`&Qs,b2Uq2S?nxM7_S: 3sB& m|(o@E %輠oB.*鲩~O?Y)}@7ӱK`)jQ4+rK5@**)C $]Jآy6_FH *x\n YHy;[SMkNDғ(쩜 A"P`@Tg ͉205&BaL@&QƆr:.NWuR,doUUzixδܒ8TפOghV}K/aVhG|¬q{mS70B@s4đC7(r^`TbYC+ C1V7wI}̯kJ8ǂ0ysB|K@> T v^\Q`kO#Jפ[:H('beI0m$PڠXj1mf֌['$Fc*{osuI)ZhzX'bnt?]XI?UrΤ?XA@yy6f+.<"Xs=g׭X"H2mw"#LaWe7߂&ilAd)+E_ 1`m&J- Xw2 񉈧IcR8Ӑ*錌V+h; d+r͌EU:@I_]YLO |<WH *Md%$GE\k|BsVk˩GTC4 1,ᠺS=v$DeULM&}M[\>vs&J!C 5]&6hO^(0ױEzImZLy6q'9ȶ%u-*N(WMQJoj5`o[w=[BhAml})[i`XW~$BfcKp"YRBJXcIG򁥑iXmHipg>>U  lmQ?{4"Y7??v310I[W$ɛ9WMu_z!W(r !wDiEM(0*Y׀H.a/少͈n ϟ7-] )JW<18Ry8wMovW/I$בil\ߒ0 X}45xr \!B3ͧL}Qr {u1lM #4] T3#xݞpy~Kʉ{.slL֪_L*{=P0iaո g @|܊64\o.8ѪWFYw3OSȞRfXm vz *W!$Mn#kϡy*ek\@0f׸]ܾmMXS3{d] +*)%2iƿѬ9jsIקŏ Fv/Ψ@9rI5j`OU#D軤,Zp BIEY2]\խTJa"zc&Tdldޤ,{ԶMZ)"S XL؜CsƯWPm`a tKcCˆ4*jlrÔ}wĆ@EEa5)vo"ÌE7C vFQ]Y]kZc[Cs\^ngT7Tq RQS쒚?,}$ bCsg E+;U !4:P#Z`w@΁tU%7<>Hjo &BRߢĻad2@T8Bc6+pu7(YqV KCA3lY/7mOQ%Bo\v]A/2{8:b뉎KR1HP{` ۛYG 3_QUQ7z/#CacAZۏ `ޏuRp")E5U%/vE,k&#mX嵼1%iPPvhhDӛQ PFp w~^z^u#tU~R|GshjW;YvaPγM28 s!X!(QX~֪ [ IgM(rYIp&/莭P-;+O8f]sO7i ZAB%Ht% >cFQDui#N5UmK ~`5T] W )IG@ Wf9a{֕SIaC2*>(j_~14]9kGv'<&~Չ U>/d()̐/.} _AأZyC2db'6ܴ#;HFݳv*vf t@.MZ5nK="wo,~B20Xk˩; @dܭwHOyC qeà A}73_:h 3,li7am8Re:g.&;q؝L5C['>_ڎʆ@Yɺ\VjГ:9"rYd?!7 p=~Q_Dv!HJPoTv4 eQݪ魋,ΒkNSv!4VR skzH^4Įx?݄ ZBlPOLCN*(XETn (=5S%o=0,=;) q|]nSI% nTi0p)a kI% j="'yC Z~ =)(l'0f ezɞ!Ϫ 7&^Ebbolun廒q d6~kwti궔{L/[>$9ýa[qє56Ql ?$f%~*: n"55P4I' ܂B*ˑ"kߵ仏;\[c%<(:1l\o `2D.)UF5P>DiÖBHa1}{Vu\ -S̛=tk lifH^-5{#XZ֟+Ɓ!bm=J͵'3'7?OemǁIJ:7,+>:>Sknyn9sJp(:DҘ!,yv!uI׺$غR  hM1b- n0je&QI w,.썿Y,Dt5<K7`\ƌ;Jr0++*%6cMTu-_ʣP/E3j҇$=uTPub=.};NI >HZh_uG`V ߕvK0^CyQwD{]c sIA,8%L9ȣj,hJ$%F-Դ T{f[:+bw.L.~zcDRóYp,6Y z6v fWjh{-3Y PC[t\8@Li@}Pj4 N"LE$WpFWTаd1Lkt˿_Z0F&&u~O7R) #~s&ffnwlP9bT frGmd[M2r0Cln0`|g (PtXd>]$Mg_V bQ\MZ_QF+Xr,O? Ѩ.-cs[:ոljŌ1Fϒ'o~\eeti$틞{ETIwPѹ L_裑N_a3K7|Rʾ[f28e4{ظO'0fZ. [R`kw'.ipGw7gsH|)G_8!>¥kJvmle!uYr~i]rѠ :W*0赢O%WɌoP<, 1xsA,-Lz#AӾA6ؠ^Ќ.LUd#!> ;- F>oiK!XVPܝN@EFplt%Ʋ H7rCpdNcpA:K*mNKoKf"^8ș~nҏJyI=BΡJI /K I;vu\x7Y%>Xy>iLi$'\J隹E&l<̫]DLcR yޕUN51T@JNYY|MMAsq`Z"nJ]ʺz+#Q:a̩%5fY vvy59vnOgeΈ "XntM2-?FP:S,߁Hպs>H3`G|݉ yWr)p_|]ۿM(ԙK?=yY#= qHƚ.)^AՒlhᏎ !]iBoXIO.psؿQYVyܝ%\/0?'`z}pC g+̎'< 8Db#h-l.smA'KRwK2ҰNa|)vQ9BPqߵdS]Ix6B,a)O48ԒrF 4,c@zë@˫&*AE<3M0ݜqޔ=G aDjNɦ.)%5⓴шGH]jaфv{&z4N-F+ I du,56bOzVĚeF.eU^f*'$DKP[,]'󴶝5}ă{T0'vi"ιY.Pn 3a&ӨU6zz$ ~?\̧ʵscXBD5EM+Du${EZlEW #MMR3i(Yc=` _~aB6.~"CK[[~PB~VbnH $$97;h?: IJN *& FÀ˞P7 hX*1ĐH=T<)X<wsr@ҜMr]p:δ~,Ŏmpք܀އ4YkoA .nf]RKox0vy<*r# 5&^ Ȧ  0q6VJΧDp>ҪpG}̏Z_t/@4"feZ23 lƀR}q:!&DyN=-a\⫾ΰD;vWŶQ5ai@V:zZ'v}XcWG ~ N8Wq.b^j:ÖB ~du7#v(TN ?/,аTyֆ_噍ܑJ92NεӕT>Xy6S\f70JW]Aʳ]D̡ۗZ|/c |4Md" !SN1:QQ'}ƝHhrJՌ| )V`֢bvKi{ zz-a Ho/Zoӂ\p`]aCn%!|k>pK BS+w} @(eSJblו:*ܹ[Ngma}pEynv+c^1S3LYFnvǚ(4by'fEK籘Pu' ZMqVInuaN6feq"z=}6HU[EΨ =(t0WBSQ"CQX?%_']vC?|ڊEyTYp54Geijiɂߞ{qE7[Y;c ZljҥY=б{Jf.HC^f4\Zh#6\t) x wj*elJ #FZܦp|_3NiKpӧGvrODW!*\m# o :0ugx憍|vP}%FI*$.ǡה,j l((ͰW&tx)`Cu:,D"Moo'*:fr(:@J#RgFԡJ&|OS_x!1)" G)jC9G@-_QVӂpmO3q~( T+ja鶔p!f&)Q]G5 EC ;[p3ǞG^CxG$lOgt0~]2Rc5tTI/4G>@9 w͢zo`iߔs-.OZ); $ ,fZGmzgZi]:}jkP.BAX=7Wj ɪGwYFbK:~06Pj ϧצst!/e-f0skb=?-ݙɐg;(p50W J⑽85NT8dzoaHxPxhf ohJIV&KxFj IH2fs@V7-YWn`lhE41X <(:;1 r2%MctQlnVnO/;e- Ŭ;?;GX9jYYmr:b,]]71WP׎5jBKn]kZ֭tj1C-|p}HS\ 4PGjΚIv]X[\0IZnzX!%6uEGڴ X}=~Td v폭[B$ )k@WlQ% (xc7i:uzWuʟg =L*"; .OM#(#.gdxz;5޽_a%QIl`;EҺK۪H;7Thfӹ($- P`LBfi%B>X1g-%ȟLP[ _ٓ\HOժSni5Dr¶v9 2p>WH3 FG0pY:<۲B_'zRY4pe7ʉ+IꟋulwx4u;,G6Yn8Z7\xg+\]!e(ȅ1lḶQ*KcٗevMC|̗+$6v7~KNRda=S}AbN/)+{$X?ΨF$ha7e~^Y2aDs2H)aPGw}L%fTI1j')T 93{@g S(pa4bR]u|q3 :R.:7JmEuq^cMtkBEX9x`ez ɻO|q>b *%c+2fߗ ~W#y4Th>ڴ oh6b(pI(\%<dO- nya;EDӫH@zqi "JL fAXYU3A6 --`:*a-l/Jljn48azxGr$$ |9)um h#+No(B`$Ek=JZ]( t$@=jlap r?/,L]b&!X-0J=Ⱥ/JKk g krE1k?PzCC"^B6n؅F EʴUx ً=A'\žPT-WL*#rϜ;%xŶcyj˻OMs'+q=[YnB5C ;&0)e ȎpJQ8ƚwme*@2k7cE!6O䂬a4ݙ@*9P_,RgN1s(EUwkcH(k:z#ς^Ur:j/3#.d-aSǑ+i`>3^%ndqX pT98k$륪 7pv!́)A~ ܲM7HODN&+o%dXMʷ׎Em>c؅ZQ[inX(ݱؘ`@Ͳ EP,h97^/r)H@PF?xLIqÖFPnK$J 8%Q^*Ÿ5Fy>ÄiQθUXwBѸ 5D9!z5Ȋ'mz寧+ErB~f'jHQw]wr{u,K<3Yx 76.ub؇z\D¿HčHa .< !TnFusT?w㿊qx4*Ł j,ͧӪqy%vJ𧃎V=`cdM?4Lz bu4 OHש+n6mkYSE_4$GC`44ȹɎk؝''0~1~ް`4xXG5;>wQ"ҵە,ƫ\Cy0(%\z>B7tG0n7 ]̮C:52VD1K{cN]\6׭fS'b6~œZxǎd*iM|a`bzTpTTABEbmh,ʈ퐥A9eEo(qKY?$9GG! `9v7 bm}{ݖ\Ei}.~ wطv-jdŐdUӮ5I SE*3N}:P^H`?`eJiP~cThbkt`>0rhhTht3̼o ~fI,|u"_],>lcɢS Ƿ%M5xJDI(:3elQ4;$n"B6Ք$O%|ꦽ9,UNuJN2} F:BڂaH leAռJ"L8>IGw.,饿.ơwlmji8:$`>*z85nqX~ر%I`?`&iA<tTІw T. ?a2Kd5\`࿌ 8d'Lϰ^^:TšGlf 0f޵J Bovڐa8|8#VM Ke = AtAx \.>)o^Bnm2c߼1E/q554y;7ϓ$a):AK d%\kvІhdM{]/vwq)YQs ^)t@T&>]-8g?RDaO]u4p3⬤x1K49t P Jy-f:-oq-yq_ߌx$ȒB4{s2?f+Qvi^Usȸ2Mzv+/}OrQVFc8wǟTl0$2W`D&?N@0}@l(([aJzX~Dϼ'!MJC1F\#^/*hų]w48TgG_Dֶ"f>N$_sHe3!8݃Cel޽D퍫pG~>,ܽ4T^Q;s(|7qa)(a2^,UXAnز$|_iի6[88906}-lS -dSQıs~o٬]m |%,V" xUJI6FX1a(pMAlaF̢B$\I82 ͕:8:\B-7&ߘqk9`>73&d61Z+x94P#!䐛Ճ(iGm+lwGfgM1 fmjznLl+/n9X{E61x^SbFnSaM{7Uv9vHZHnk]~y!tyzKL9cMZ9S跅؄V ܱ8\ Hdc.j%U{;U=G8%I,_dP^": UcJ\r&J1E] V$cJ}ՁZ2JLS|a$ab2|R:#Į5 @q7ÓkU:Z]@=o #>_R5p$Џ,aZsl3;Gŷ1 4]@@ 6.!- ;zr/f[HOdsl>{"]]i0C_[w \X ##g P<|d.ֵ!N$B%0z0jnlv/VI%5{jj"V+l7 ORxe{HH! @t>L|>'w?%u>ÚTt-4WGlC)Z$7z-d@EqkIC5 ,yU۵[hCʑZ$u7֊|"|P6mcêp\ VhA{!^,HȊ 4Xݱ0fӸL?Za J/Dcښҩ0r>4:IoP6Rv" ;2CeL@ΙL;okXÍ, - 1toh / gGuڋtUYwڋ5]I (jJb)""nB~J'y旤Ah{|-\4! ©*M/nV,܏$ X朂<`U5A7nj4"vn* 7 dM2WN Awy"1'V䲤m:??=u(-upȍ(JXԢT:VĂWϴ0ͪkJDA~˂0t=F'Ɖ=^tXuX'Z9>t+2n \2U ;ZL案!L&cTo| &DE|z@?F4xշs%\d|;hGi&K$_?!X b`C˭N )& SOfo_~ JBh,&庬fWrKSd󐤦\xQM|~]wHi8-0Rb jW]NŠxP}0`hwa?Po;\y 3j( NJy5-؜>8l^BײnAXׂ u$*ё؄9B\Qҧ*NA NQ5Q }+[_ZTuAD| . P~OqKkfpi9Q^?59%Q.j]& FViRkPO~Y\lPV;%6h(">f?U> 1<7,O-n#2qd-F8cOԷE"*T$^ $v-O7px  ,Ĩ u\֌>L)>ab ԂK}|8Aٺш3*Aܖʝ]8|/?,-ޟ$0MlY  :[[nO|<}[{hQ]Y`4MZeMδB `ַB>'y󂩔O0Kh9r#E |iYQש9ɈO˂b1;[r=iEW ,aiq<5Rlb^gʕ"m"hcf'3N.)#aG5d'mxմ^Ә9+C[qfT:uM2bg˞Oxڷ6 9X@0bQ}֯_]pDjా26l5e'%Lv6۫J+0N[X}f'2D&7?HUrY>D17ɥ/83X`"h%KCcÕlM\@uK0o{fdfr1%a\^!CLdA[в4m| ԣ|º k:6 A>;?#}N715:uJ-K0xLn9@\_5y=!x IԺHͱ( >9qG[nP>ᣀX7bYEnrЗL+]C,IYiB|TN GŇqĽl&uʈs&^Hy" "= }f_^hjY\')6;uhU=q<Qfq9, hFc 75'TxkZ|ZV*n B/dA(K05H%sGJO,0)K4Ԧ?Zs`#~7""gS+*D'XEK.ϞϾ- 7Uy%X.EG9|:{2ldd_]PS]FvY2Y"ݜh gG(0Y 7OOhRarP2i]Lo3g̗kfk@AӐ Rܱ,5"N$ uCY'5b֐Ge =bXlMYue'j)5J5f`?&2Q6| ;Wp4rQJ3Vg1I '5\;uX\;l$k>IQr0$i:|->z4qR_~CԠrGnFA^A9CREW# X4ƹ1iMGcLr+x3jJDS!;i&#1sy2UWRp3unqL@v^Ҥ}rT|Y-~8f;(vrꌊxs(D)AiXJ~<7#x9 ףU2 o .`;VgJd'eU&vMn'O`z*p0"Mn*BnNyHl/%}i+?vu@{Qa_{+ @R<"΀( T+UhGQ`R(=(lIJٰ,X?E-_0Vء`!0(.)9d%.5^awʸO* DO8TWcy>%E eDLGl|;9B~- 0p{]t;%?YϤGD7*#{毼f]j+p8j$[g:"X G"Ɏh@ .T;Z E4o3pubj#<:wAy(NrJ6aU3'֗%!|~o%{eA,vԫJc.c4Y0?- LO? 'xpQ|b#<+ X?Z˫)Y#b> QlrojUm*?hÌ@h;AT977gu&oDC?N?8+lkEG0∮Ym|L:@|klHLZ':]#:0GYU]WAUMNsrA )` Z| e˜#'A'?vH:>ꀯ,Ԯ =&PkRCƀEe(qaݭ\,'Mی}1'p<IfԊF\?[ NԞͰBɪ uQq]yoZePj] ֒K0Xh5[_BO9)Z< ]vi`_10؎$,ђ`6kK = Q:jY[7^2XS1m_l{ (cSAG\mºŕ~7E뤐RH'4 ;–`r=XvRأt_@a磠V*aP]hՔ Us1z*A>*i:ZU$r9x=5`(; z᭣x gXg˽ZuW؉~{j@1}ʢyRIoS@H 2V)*R[:"X&ɹ՝ߡ\E8'7h63GV% юȥ˯Z1Wph$=?칐+8TsH3rMB0]NNfH1Y[%$%ܹhRHDЪDN8 MdO=Ewyv q[)I9*lHF>iqJ!t*Ұ-M/HM0G1&|! >i{BeϦx֠לN ݕ>K6j8\CU^t&\j) z pVozHu뻠Ua\ө&;f-<&QS?^|ٹPw%po@ zi.Zs}p6Zg@F]0!ri;sS^0e?D)Y `]#d$WͨQC'LÍsQ0m%IwpyDaRFPSb)Z.`Zdzo| oW!+.$79a'⼺|:pHm4ߢ޻Fӿ6K \A1<:W v(n3pQ'ss+A{Jt:Dlsȷ K =ׁQ!<a&LGn<%5=xgăKWCUQ\_YuyG>B00>1R9s-dwyb L)w동ܑF10%AMS~yXnDzq74wnizcC/ "[3/ 9zoy28 ̾ԓjl*L{C>غ&PҢ2S$;,Hx_[9&^鷠(B6/( pGθm)5BS?=H"Movr`UE[؅>ϑCYtA j<,46;+7WO+}ӏڛ݇GŽX2oC) :Wڛ0 y[: #MUaZgAeHkh%dp}YTY 7YG5"܃ᨅ\V:wR6QMߔ2H׽(zMMfv2VOݍmjİRBFðG=x2C!3ꕔ[mU Z0TG5GJcmIUp4Do=e#Ĩ(+^̢5&y|^儣xNM#݇=@F*c rwMu@nU0Pw<\ pn!D#BS%b/sċmBqt!@ .ud@J!!$)tHcwK Rdlk~/k.,b< T_Y]ދ涛Ȯ<$ZPuǤ l[+GġԦv=k< [ïY)4;pue12%?-7i )T%*bPuGJq| OwH/@Rz3_W;Ǖ缪Or8`a Xι]l/yfIIԯ1W+; 9׼9n2=ZU?Ù$Di0I^D>NtTi'7M/Y绒ΘwNp1kn 9BvrU(d{A%u1=; s1*gY֕?W[C{F(*b_ ?Zt̖7 }wqڨ2 18aW?F8. %N]GL*%kQOqE4$njP] }+(X2Wk_?nnk=ZMPF4]EnO_60V_&aD7?,^5flKB9ϧ:8K}i늈! ]̧-%X>>͑4+A(-8'ONzXGmyɢV?̸ft@[@#䂿밻](_Xu*rwIbv/#:TXq>$6/LkL5]īU*$DHU? }&6{"*}gcSЩU b1ÞhxrfJ?5g%^JJˁX"ڄk)"tRO+ld 6ʾ_)?RZV8@f~n䩟g~@{$TVUq*oÍ#mH1RY?QG^?C:>w%o9Y]5)= 'j  %#{_RA@n:d~@t]3-snBo}HW'+A1EXq3nk#$ގgN!y%][ʟ %RmϱCá:_NߵSU2Ѽ{7ED}p["w+Ax }6kiyEvduxN**-C!)'x zHml[$v0j |ipD}F6,xyі[z0t[v'Ij vH3.Cxxfd;x$֞Q3S,C,g]tzÒ~ZMuG)]lڄj>%c|-K{1ŊƞH^{n3nTK.CґcջiR9I|ńZUu yFmVJ:&xy]*l]k}%LKXMr'raV3 zGvդ{&Cc=6`] ޺1 ڙM»^[SV墦'?%,6%keŶg:&LP"}{tRwJn\Z ["fP^FA{-~*- G%i7IsfOj8_)R" HF@e{Zj _tK1%c*0e{[Whn5,1z&-=7ZASGZ$`GIG !jiԹ8d%}yȊڨ%BfzfO=Ѱ{bhր}}O z!mvwQ^u>8# xsf 0=җespWd*10o'|ߓ*o&'(UYk_N'~%H>fA[ooîc);1膚䙿9GhQ`Ftȡae9LKSO(o!g _ Rf8FPe+ TfDOu2]'$[o9F|5H_1'\tIrPyH˓îة&LMk;`iw봒˴(T&"ј_UMd46I>~ "*4g oVxAa^8aSF,$:h3s R^WxWtkuLtK]z:̕%+|`X ܼ+eFz͋A\";#M:c,üo_I cC0X7OY B<(+xmװ٦BؗӲ SQHrMDF,N68(LZ,(h{1Sԩx~1ɰ/'v mal <, r2!0-}(z&lL3ёu!I` 1pgMY(cC7gd@]ϫB~hܼuн3j6ve _2򬥌n!)E F)n˧g](_~ zs'mtns ?6sG|QSQDvtK`L^S<;`8 !Y>KK|Y@w]n5~8 @|D}+Ee I%9޾ rLf$5d(\t0AVG SC㰎KW_-"j9٘d+](tȝ$Pg7Ϛ# w凿ߺpZ,ZOUGF Px˶>!DO!KAvo1N`.`rEL8j_-Æ&y8G7Ǟ&b[Cz0^@~<l@r2-qS}oZp.nC6RfOõpe(P6j?┐#l߳mRKl$W󠰗U%@\DÃZe!OɊt3zذ?dKwS1|6T֯[#qm1Aѽ6M =«(nNݘMe,B()b9T `ַtB&@4wグiElefv EZ[c\fswIB'W59+bh0:![z 648Ϣ%?jWxlC6q}@&Ȫd[pʢ^85eyg93kw1SLX,M )ԹFsF0C>q h᜸3v"؛I&sr86$x.#{.p2κ?gDh5ah&"0FC'{;ì4sNvb@dq eOcgiN=S$!IoLµHe_.T/'1+z  {OR˓}ÀoP*K,[-~0Pn n H(źy( V嚕47_ܼL+{iAŲzHd6-R{RHZF>W9bNڴ~)iPVbV(8` >c_c LV\WM=K[g"+?IһҲfk4"=Z']#Ə]]8]R1UDivX_ 畖=~P9]oe- oжhԼF } v!S}“/&2"#'Ug#KD~.gl"73 eӔ~YM}z~AF@bњ(.5 _c1]ꍳ5WgS`O%n~oW6L޳XB謫g9GY%&LMg.6B%{ PADFW0(IoETʠӳNຩffNNw6ǸoJ1I6/E0 ƉT; F bh4,!AItowiL,P =V0M0(B'^́3xF]E^c:%b<>V 5-櫘FIH# =ށRD"F!29먀d!#c q$WrSv:Eh쥛sdPf.ΌmQ' &uʈn53^ y\ي׊Eʒ OjY2.nvĿGc@l_+*Hw47t~L \^͕5K%Ɍ|X>agɶO p|c"[0]d#B@06͉7Ua(T\fהQe\(D($9 tB;qi+^uVu6؅"_BTҋ\Q( z' β}jjt֧Lw%Q輿ӏ8?;#YzW#v+,zq.tDtVKqMt7*M'zl -K`teU)S3==OtҽqDA,0]F);RE y]; F*ރ+Ǿ XQ A{chC5Hi 02PkhI 䘏% . bC-jO_RL\!ؿR voαAI⩟E=?X74G2T{ǥܨiD hܑőͣUż%΃75!EM r$uE 1p%6$r,k(cplS];R08|0A 85U.m8ɻ)E=;,m) bԆMU^.31x~KjrfEWtk?~)7ֈ QT*X BL\5k c%AdR^uTa8[BOVx :9xUn|sQY3`0-Ͳ3#:C6Da1S}_,>櫲hF.^׉7b|Hs Z1Rt:L"_d~`Q hHfdN|~6E6ىYຐ  ]15D𯂦nqyr.Qn깼Q|ӛI0_UPgAXP٪p,喵dzjg?Q1Mu5-J 3"u HCu+$;[V8=4PV `zZHwՒIU0V*V fa7>( .23 "b Ch)ˣGs^tJWp*~$%M;>j궿Y\_'ɵ+stّ  γeEBy1!MJtTYNht]@/U Zqxm}I? ˃+\ ^E =yAV;f PGYWUA02|H_98QȠͽ ͩi-(4*+'!se4hi~OL+HF'NW  '^fG.w-+14^b"jh6Bp|é`wfH_ Q|W|m`-)=;6ҁmCC|2ǩik 0[~i d!S d>{{zHcL{VPgVf@\XiKwhP"Ƚ E$ЩW n; Oil,@2k7\#6sqf+(dL.(RdWh-OL(Sy;!xlںںt-%4p.B#&) 6WTys6|,NZS+,k,(` (r5& 9+A4-HYluJK0]$<ߒVE\W4?&Y{[ 7R뱦H-06I39q)"6F" gAMhLЭ9gV=$EN|R]Gp8j~̕5.ewl9͞myW.k }>Ճx:gm gU׹g0]ڿPk;e(C 8/R UoyFğV㶑&ө* BGf`Sc$gf8\Fe6=s'?*h‡Tl]t|4 <\tùhmz^޻3h~}EURip6=8Fb'>&)WQtM?=Q0k++OW˝L⟙cT!qܱ~-!E0cx&>ASiircrqLU5D&i&Í7Nr< 'QoQ͚Fq{nTG_:mrz^{E^Qsb{+()ʢdEA&"}u"ſ>q(la]@1"f Fz6j̓muȪ#&ņ%0E,{ 0vDؑ! ])@we EģmIR˜$k%-dSެd}"!q_tb*)BS)(MԮRm|k0<|oW Q=Yg"'M)4:~d2'H{ʻxk\m97_DFp8a8=Df0V?i#q9mٻO9:;Zx|f N:~M@nO 蛐~û;,ԏFOz2hB7¯†k>dۼur (6VtbOx??mA>ݏ !t3*)Wb~~nVyajMܡ_+ZИ+Vi8ʘB5)r_m3ߟ*S5OW7QG(f)qH6̅A-f*edlGp/עUE[O}\)>Pd4'12r?0:uTdiN\uOa}: ܩe//xw,ʒLmt +1X@FbH6vuD=X`OE"b"6evFstyS?/,R֨JmSUo`/^pd$aHO1ne>AK^oWE,U HWVhXh3XkgH4Ն.c.k %v`8FAF@Kz;nPkt_hM#N[;?fY2FIԖ-x^~v4:p#,oBD蓦e}Fzu-nwQ-Dr*~7&PBffT3*ןI+<0]"7I8$EaRn3P^K2mToj{^#J" ,0zE^B[\Ag]մm6/u n` @_Zh2tIV*&gDEd[E77p zRlNɭsT%&pf]K3F}q$-Pؖmۍ8ۉF2_=O8=#ޅXg~OW(h!v ~o1yt+ ١dnI>x;"R `^l/n__ ^S/p-1YjzqkL"+ajUb l1`u6.#%vz B.Vw՗=WA0a7P*Sါ44eУy|{QTe`վ3xE|߇K&W_ #ai@ w};O5D u֐r*"G=aw}u *3}@[@8g73%a'@ANOzʆye@?pA{+F&fk~~~%4wܜ 8$8P٢V߷՚ K9,8- sηU#A),zjuJqPBf}.n^gmyM@P%*f^B|Fr6+&L{?e >փ!8GbaA^ftѱ{0O?%qP.6pd$QRjuCjak%-9/6]~~EA*J Jv#$戴&4)\AN<>6Q~2x t&f;dlqUĽf#ij\*_4bJiWX/]`=+UZ7A VSJ^UAIffAE]"D]A:n4n) S]_+g-r4a&ۇ9+~SȖBx&?S3)FsXtv*S'0* 9]{P-vhu(v@ me-v$Zǹ_2ao'ZI݄#^DY/}ҙ-ɘ"o+`48췛&QDŽk: 3DžYȀ/P$䂾?80 xOgK`$1H5R*^#YJ1{+pf=D*'(Uc3As:1 '3H_:oB? (}MSmC[K=KBȆp#(6*z]dǬT * w1$f:`A@̵$U.#޺nJ/(/L:"[0&dd{ezd2gɦ]ɽPAk|쌱uƋ[hq)"@F}Dg%XqN[1` l,4=k=^z'ՠnlio$R0}IeDBs /CJWQ4YڂWvȾl)ao$~\]$6DE\YܔN+2a3b"BbKcوVgh.'@o]SJb+T}fbлO7?3\ha)3rN0p,`d¥z$3/.UлbQ48*~X*+)CcsAO@xsCvb]K̅X^A2PڣV*r^|DYfb]I{OQO<ɄEpuDRbJ;]sCn7`0@R:}dAր=_5{ iمe-Y]P3PJ3DwiP US!+S 8?B^oQRV?GyMx ɧBrz5zlv?qVw&ygC".-σw9rz{1ό:GR48r_W k&ιg8 A\'+IՠGD YÌ|u/5ND)f\#猃tQ[-faZT&Q]ϛ3 A?Y̌_=^b6ӍJ--.*{ϺJ?M @祷PjSt6CMw+tGmy6v@W]Gjl—Ǐ~2!c=p@2Ʊ+ݤ;e|iq^,Ȼ@" wψ?HeM^uBW49 !y%n`Jr!#9vK!uv9LΥ$Os MWSC8`;`L((5Ei7;e .?pCNڪ$]a.$}'fhVR0$hV XH$ЮVw!'EP"[;䛙doZ&Pd1À7zu:ZGYcxX:ɉ2@5X)go8 &à3*գz| jSPAS-dQ ykp,D6yJ"}vf=9HP)bDŽH#>es=WV*Qq e=zn.wN :eZ@ph,(/pz"!X{N\;Ï?8 azᑽ5vS!rw;-0nU7ߗn2Y~R فձfIvzJnI_JUŋl>a+7q6(Ov:*{L; WLRqG$ Tt}U b(8hgiRPᲠ6q7[hցQ3ZmN['wúT.Q3,O P¡KYYfܝqo05 cKk[..zu@7<$oN&@R(s}?И `.ϑ٦;;ш3VGylGket8N 8R =lԟ[~li~p~ ֭G K2nޭ^ m1iuX!27|{xX PY&INYjP֞Xl|100VNe7ZFtW-ZוeI_2lKUr@ ~8rK'~d1DZJ8LctK4+.n`Kqk0^NpYImfb">L'VB)bBhNqS&X .&\ b-a$Gy|( 0Ҩ052Ėb\wZes)5թ>/Xexwh ^ 02 ~vT*?j;rWɈ@Cr:b 24 ^F/_$:L@ο T5(W Toc|hIx,ҳ(ăr qG^\}&s7QV&VpJ ,CC;jw_J7kor !.LۈQF4f_ 9R᤺0\/~T'u+;H#Ѻܾ_ֵFz=i NAKLVM v/G7f,E"z+ۮDk"L&LNpᩆ- lN[M=#oL6[|Is ɽ9M`5*7C2n_th X"w#/UYdPzjuSŀ;N耐8Յ"1ٛQ*>֌֦cFwS"#@`7TϾ=KA~6?SdcW(1|6Ѩɍ%Z<y[jF<^۠pXO( I[뛊,lÿWcxM|dm7!eUx =yUcm@TU՛UNDdŻ}֤1o(eS0''壥3^/)}I)'Ӟ ~MuYSl24,]k=lXm+P7z#ϩMU?S)$,'*.l=r 昹_axbDAP8~pj Qޭfpۛk?+~H :o pL 1t wJO9v0اZͩ.]YfeI;w!áŹ3Stu3sp e+q>\ڻH$vr+/*VϔqAǚPd~q2m6T}l}?>4~k bf [G`*/o3'AZ3~B+Bq$ mדTe's]yYa"í['lJ3 {w~g# t̆`X .[WտBn3ԥnb#[ZJ)%(  \T_ϷiJur`CIfP{ϕEZyG}H+#9n9sgij^w{ trH A:xy149_<";oI`8qXmɋfs$ _6JRe9 HsW,;2XaoąOt'GRs}Ijߑw\EM55j`#r8OaG+[j)*jIJ`WCE85~\4a+R6О(X/ BR%i@.ͰY y«?,m.6=~h/#9XW1|7xr:4'=G, K9p6T9_,!Jll0!gԬrl7Ab9W(E_y u󜻷h6;wv rK=foENh n&.C{6$s ++xѥ! zc-p;F:MrMiaU@ȋF֛ՃN' sKIѫtꛟvvEӼfx+(wյI5r!NKrhS5 UH 832{N>]Qa( t®qa5~q"GhOܥˢƺTUEZܢuwL)~K@\Iͺ*tt[مB&%0uZ($: j!xIQ7xYu`˰O9Kƥ \z_,.b=" dOKDr:é3_na!NƹNpouŗ\/(ӗ{ bkr:m {D/zN 2z_﫮PThuk!5ʠc_oG6v%3V@V6z:ɅaIӲ'C \vVىY \YBgz"Dy2*L FPoj NosI{y0f /U=tLP퐗=~L0 6nD-=, ;og7Ҥz,z={,@*^bsBl{4~fR.MY Ri_HhᚣVATCŕ_)V !A$:dJM@`-Þ~-WSjx{Mp 6'Ի:.?&c۰"K&`Ti᥃F '=?x!jʉ$BzԞ7ߧq4yU/_[pl @>X}GԆYam% t˸ ΅üq(NhfVo\52:nmfMK;1fb ( >H4(8%$,5uP(:ϦDdDS2~r5#0V,R]{@]06k`]u$m z$>YMP J0(wf뮛ɘ +!uVR R]%x{[xg2 G'W ^eQȺ&;@iWBYQ9 ㅆ~[ F`Fv>Hɩksr,}r-zo:lF-x}1?%. z}YHE^h&abܥ=D&?eW,ʀ."Set6MԀͤɍ64Q9ގK@Zu>]> iY,a[cggE˽K2"ܗ|LՏO \iJ{a XLk7f׍f~[Cs+ yJNil}]F$ZD5Q:*Ok/D4<ۃde䜾V_& LuT^l:3$H ЏNm_ 3}6R!IAWiEɗ"jT՝F)bY.)*#e,%ApPeφPܾqÌWgRf+갾&)h.hGl1sQGbKM:90wXag7Vpi'PK[O@U[DPZNжǐ] DC8 3t3i=~:i0LWe7,H+,o%/TNY` cj8'ڏ&'SIWu=u3kf\. $ @y|Fŀsb52R*҈9U-8 c*uDAHk á=(mƴ~th!կ.eP%Ä?rmTְx Vw^-u@^i5$$4istnO*ZlI[wXoC{E˽Ƕݚ{9l{ RIu=(bYD9fcɞcz%fQV~$! l}lJ"!7ɼebQE2éNO([5S2l7[Q]A+`爩Udh:.+0L VF!i>le;v9gmy<}!+[M< gO~;86{Q;J,տTVQ_{Ď꼺7VU?|=g3=O9J>]^.i뙊kRvۺ1[F<.u88"iG=J# 3=BQCՏ@$\wI5WLmE`|Ml}J{,ce"W 7ғbhl0r~xB )|{I!h"0 ]] NWU/*X^nJ3$uFאMBDSvw$%lp#Ba琼~?>[C#W_YJYt緉? @i1GFy?ERT <*quЁ2Զ` vMTkC9Pз*ճG51&=[ilYaϘp-$hZ2:&t?tp [v=yy ?eAH.jƁTEP`DZ5qp]a 9u-ps@'*FU^p?>7!-δF6j.lhźe`%ܠJ ̞GCez`U;o.LnAR{OyvKc@5ܴ\G;*nǮG܈JjCn%/ۤHSK?eQŻ1b^O9b ̳itF+M\ʗN2a J#j<䢸Đt Div$ 0VȘ]T+ɥ!%8}r_hrk~[ p'%J QK`O0XzПngdUgݭэ<\_Pg߭_o7ۊӿ$-b,_0Vt)"P*&{lhAtC4eb t'%-FҒƶ13ZP5 cig &\('Aᡏ`' Ua6%ef 4ܻ+Sd?PR$Kw+!6 zeMLXMN5)_b4vk[:䃨c=^Q|X$٠RTEHU 34%;8`A5jigש! P#5!W}Խ,Vɽp8֠UvA #pQ2.NQ.s6* ]Ȗ۴ ܒ(G~:?=bDXd!IU5W"c-X/Z9=~Nw @h AG /,~__LLE/OQse D$17pಐAp˙rǐ%i/&r y̐dy |"Bn"AtD l jEVr{=#˜%"Z ]eo wKI)kOK4g{u1f!xD3?}m\2Ypdw)o]:4D걌5=OzRt_t IqrEkL9/Xp8Fz|۶)6hfxW.+I3};ΏH[CfSciv$. ]#kEǒLU_S!K)[va]mc1=X=:L^80<0 W>Z,)JTVڜV ho:fu,6oC yp$%v%Djwh>tKʣ.eL@5+(,~N;<ܓ ڑ{ZD7/hGrxY7u;|= |o`.#8.Sk{DKvW(*wW!vqOY,]v GR' AmUIs\yoa'9Ug8b؇XTbr<磺>m/ d;H{bO_ ʹ'hTes8R [bF}hO :W{ke o'n-XێEbwWj)%VF(3> 6kWߨ$QF‚̰8UT.%8si.a8d@~0"b-*SR8C,rPTj +w`GYrÞd_83?YT)Ou0`ЄGe ZطS5c3þPH-ߙPA㞙r~Ֆg'2H4v8ĎcJICwXmq"R!k +Dk뢌4lˌkI`T_N"'a-X-}`i},u<%& =Yd_Ff35sdj|_p/}/%;.&tu%bT @ƥTX(FyTNPeU ?"("F8#"Z+1 @aԙ P6ì*kb іM2ݒݵSSy@rD=CaPYŪQ1(Ȯt[6_I)O(p!ArXL)¸Ac,}O]a5L~ߥ"O +ㆃ$̧Ҽ^⧯mߓ#ɫAҠ%.JKS*4Eڭri >,b7'!GD]lkJF@2\[ۊb7c0SjÂ^ˀc%,Of`[UI XLEOW/i0aPeTR(,8pYnsdL;0vH4h6Q }4 ^_5#yC2 ) %Y(Of PiWQ,D;j쯪ģ! ŔI6Ǖqn$3RWLM$MmXo_{)+^y Թ`B9|^9 ppyc<-^l")&WI[Z@I", :  AI{SҀ [p`. M UnA~ 9.LLO6E^:M0GmY~,X;\L<$Qa|Cmh$b0 ?Ϥ3w9Lj+Nѷ $fyA"~fՓŻU-ưF]}MaiP G_TM`u*F;i{SCVuY ᧒=FV⋏-dnzDyԉ gQH2]/+>m$w#lN[!+зNM>G\%9ʟ0t {[Lj_ؾ'kog]LgR,LxL ܊rY!H`/~Ӣ8X]}k6;(C;9;Lh#۬@5^1 U߾-oX"Y%=+6`8kiX>clA"…rT'N5Z#=@98A`v}="@3?hO;^_Q^7y+wvOxC@{žHxydjnCX̊?Iᑩ eU$NӘZvibL4r12ARF{hĂK0.$Nek hdoܓ}s\km %%%Ttl&Ѫ^Xtw^XR:u:\= Ln?V~`7L +y\LV 7T%h-^ҷ]{ Ymruj' gQVi`hTHA9'`V;h O ږY^ahҚ҅D {"xR,褔PC*"b;60kي'1f0=Gi,#c8[uzfhF/bW"@OP3Ɏ1?U; vf=W]?cǽeEig! +2ṷ2!+K6ڹ`ZUZ84NeZ1΃q2IsA.yC =Nˆٟ01^ ME `fe|1d/>ɿ S?'gDZ|Sbv1KBUY=Ӿ^z_ۚ'a+ݥ$A 'qvI;vCM1q 'ZHo$/..{CL;'a0M"ypBCL2]ʉ'b%+tuՉq~"0y ]4?} 1*AZJS&b+c~زzUESf'VL6@v!2*[W+y=Kh|ݠMA +MpcV|kM CQ c^zFv)΢sL0o^ԯ6>ђ"̀]0HCP%j0vfxس\ïI?e'BzWh(r7 !3{- oQz`~y" ./ ÝOmXg~)%Ժy53Ɲ-4pN=0x9|djE2:]dm?c̬r*IwI\xn2|MfsF,9`N>ldrm!v%oȣ M@hp'N#f@1I F;bfL'Q=0fTnKUz^Pe|m.Kd 1񙉏NmyoVFN#5r^{VSX,co kb! V{MTv@}횷7}b:I鰝ԊKHv}i'[Ǫ{)h/C=)Rbtn,F #u4XHkܴ(g D=dާi(zN8$XYfФ.p, ](éX O fp\&ړ6;:.zPR2p^ jEl!6&LmkFn.v;!zbڋ2kӂM/:;uacm [  %7t.dHx.5x*{16lȟj8qgm7͌ h CD1SQ*1Z|NGp6ˮ,I\L4DtKdEOdTjCq;Aߔ@{L+Ew+CRaY 2KSPb^0w spc546% f/F}^=oy!"Mm$P^_ ;m{JPMWPyM}2u |DƘKg@VP~a"bZmh7j"wSsiNjb/ƚ_>&o\}jy_ΡH$3q!J~g5ύ ˘޲dBa!cNu؉?G#gٜ5R+ISU!0AU%)p&Փe=S``.Nie,auqZ|ݡF@NhyPCJmbjzg 03ݫ[,\lf~E~bkF\Y^zT׻lߠ N|Mpט22˝}2@Um/&D;"m jHM> Es()IuuCUze ѯK8L_*1\IMN!p0ӫ4ӂXɪE:@h  D8 5R֣%XzM贊o2s]#GyIa1L`e.ݴ[\EbUL:Z9ۈN.`cy\zFII46垤 W]f =S(֫_3҄(\MG/#]wQg}|AG.o0|t›Ddm h@ р3Ih\Z*ިQ6CI/$ 'bt]CR{EYm0y'vYw8$F!j஫OϴQh L+>(UE,u& o\:PͩY[g6dt]alȘz' %(>Z] S6b +(AYaVAY}%ӋseU)1*lr8{p $ucZǹ=~Wc(e / uUɟU* eZKr}ϙdq3$FJ0#*Q 0dГQO;x\op 5K28?bM8mhOS# -&Z[&1ܢZ 6o[N1px/l[(Sa7z9JdX=ŀPcp]'D b,N*.?֛>>m+qX { e&!t,p4c7QI0-=xU ݚ2Twqt1sgl&V ;Z$׊߱ B.j3O6ߐd2g2^ܜ\9=LjܬG/[.W^ْ{0;+X$E2Muݢn~dZ3"MXI#UhZxIjH_"C? #MJ}ps\Vqy.,~SLeƥ2#zY+zRo=Ίk Ge5ىaή7Ul%n2m3Z1qbf4z. $TJ47V\k}𾗻}&/8/h%mZ!L 3>]~BY;5pCT̀>9VLh%w!I۲|IuY/ћqǗކu |#_o {A$˨D4+h4̂8ŏWD6*3?Ɔ˒]d/dC&D=sp1S@TFe<|UadJ;:rLM-!Ac"N&Ӛ?RЇf])=NjQSC-sm(9mzu1xf($k}_K6V@>jdlGĉ(٦Xa/^'%j7 K Ov/7~;=ʖw#"&\$Cvu 8YDayc۸c+e(7.jInpk2X j[X !H6W0ihc,?&%C  ʾI* SENl+Ui@§"ۉ3qv鑑(XAAI)끻.|U*9RwfbP'OLZt,〔5i׏ n?$N}XL¯̢ϷfF  愭}W Ԅ`vHVhmL!=w|C-:/']k ʏJs /Krz̝tC]@:yj@o[[?OFwt&SNҞZΖO2r],4+UY(R[;<= }7k =V5@G`6wG;9[!]L nQZJ A1!JJ6 4bfw}*Nm`bۈ Bԉ} C? 'vB$pP Oݒ,mmZ_= Š𿭚C:$ o=hQ(CS*COIj>Mٙt|9fU?N]6;;x"H$.Ȥ=C?-ƉnOҪN4~4pG޻nQf>^&K>T`䖲h$Z o _Mkҏm5`WXfbQ3^W]9nCQYp TX b&b$еȚ<*CGPuiZc Iqٶ{,%z.ϯr@S#8Lys[vdG8ϾI ͧv@<ݜt3x׀M}@/ո`f;5#)( "9_c N\GwqHJC uK Ī kue '8_ iouG[sL5}%Ζ&%_J ,\c7 eU 괖ڎKbEוfHQ\q% hMb]Zq DPn3*(]'ʿ0L_`]KW2+92ji3d9Ռ n[( 2UXsvu_d*{*WwPpn/[\ =0_#lR^?= ]֛+@*B* ;Aɚp+hΓqzQO'xjy':6@|jAWXsK"W.Q{Q{ *X_PcP5&i( F՟1,Eଧ&ZpF{R G@̴z 6 z@o{G9O~dUmң,E星G. y,6\hnzdN{:kG2ꘟ61@s46lڱ,~zIyDy׸p#E(_Y2;z߄=jB*$}NY)6#`Z 9ܞtќ]VQ_)_{ӎ: %B#sHҜ *ƛy>`W@s0|f~C'P-=;ӆsu ZezmGucv~,ůT3p7bhD 0pj{8O3IgaklwM; dE>NRNz5YbM2`-~3⇪r)uX1>*S-B޻Ao V|d*>dט`0ZE=^l6םɩaܐ`2=i|1v6C@N]AJeV (^ mӊ,^ F @5B }(}w9N5+"?V0HHZӷD9["f<"lq{ ZڢXm1O̪=rxYR?0GRS./ pEVr嚝I9.QKn`M 6݊yq&/chMk iE8FI#9\kaPTV]H?SüW&hrU!5Djc_wMH*R1.WAeB%a` ԸoU,! ~xTzmU~LO5x?x' ljgMƎA7hw,c^qøa:d!E!/eDug6bfƒ M0K+盧wU)gW%v˴ @]oBoȇ)%Yi; 05y7 鏥 ӮX"g,_1- $eq:!eU+ Йd<W|Jm沙zjіV+fzHߡIH _{Hb;2  O˨ & ˔Mui*eïLLlNh<.QBujH.fQZ\0sm2.6RwanV{F neD@?GA=3z;mB1Ŧ?&(λ/A&f R*+E1 })mv*Z辇dOU+ٔno1A^ r]I) JUt'[z4VtZ *o* t7U?ZgIyTi‹9NoP;* C#giU>MƏ5%ͩF'hx6\tlOCH9L+1ӌZшh(g8x՜<%dmVƕ K|<$zA(1$5־.G['~q1O5g53ᯨ; cow `U]'S>'"2Tr\$ա"i԰:f6>rNV֓)$P|16 tcypj:Sv|F}R9 Kͧ ݋9GL]Wf{,<*J*բfF#jCrQ -nS<Ngb6eωRMk685]a=Emi-+r7΅tT*y# G{zEL@IP!x#B1yx+9C˪>jl,JǧIxaK8p!x O 7\n?7U7Z #`X5xΞq!G;[*o N>zd,?ؙ˧lEDnf=PLa_T7gV@M`3;#Zua*T~V8 cV m Z.W˜ԃ]2?ʵ񆮨+Y(ϝx>45XXhh 3t \yUI2$ 3q<7<忿ڱ!wQ/knyi~n1BSAG.ݰI,~xk a> B;b.&-_ ¾><61ad[7a*?7_~qt'3?Rbe+fjl@A-Bޣ|c/w gİ⭽ば$)cV3j]NHu[WRY;F*쯐4 h -: sc%}#*v<Г͖ٛwߧotTJPG5"WI)=`*h~GMGߗJM Y stkjH=chFVe1OkzCq1sZ3_X5$r G*~EGfۂQ߆ rɟ݂"=ߢ AЦeشdkl٥{ʒ#SrXjxB2~٘[::CRl+ &E˥p@?Mc2U$jf g nt&t͝!5exO+ &Pҹ9bAhD[S/wўM\,30IW>>ykY.>|&B_M KXjo>S& svi=wth^ ԑTrbz0Gޗ{VH@êٙ8Te* #T=DtoU U@NͶdF63ʀ$LPK wK([$" p46ؚoz句Xf1'B4)*5o3]vSTS^F=;}9h!FBkV;AʅUnN*;Sށd_X.c  ~kmnh17%5#tn[B]]&䙦# ۪T]U$ZgSA!4ṕ˕qA.ׯprtΒzݓ 4'vx~oCp. ~K?f 8:d47 2"Sǁ=Aϲk*dXP!h( MP^$vev,A+UՆoRS@3ضQ&+܈$uJz0i"<ztc*r0o܅!Η 33ߢ,/j?I7P?{#^g.^Ԫ[SG6 3CRRv\4eHG3[Kf/c]I߈>k }5h|c:M0 >V$i`]b0Wx m֩>`C`*@p>" (wtB6kKEY=%$u#.{t79Zi)c`K!"sZ6ӽS?gH%Ә@N>Ͷ8zAhMLc`gH͒/EZsA6Yrm}zfu6[wv/9%3QJ _ݽr_yoADDw\QS0AHO5 VRD3(՗U9)hSuު{:I>!ı@hE~q*1#`3/̿BD`OAY9O,4PUU"͊vPp_|xЩwKHT kJq6Sr6(%|gcͰ[1`{  eiw-ȰNFrDi<:?,?@=zRWHLI4A^گ]n[X3{u7vߊTJG\ M=ql4Wˤ\O,nt܏РE|A$G*$8q &\ (#(þ]agTt-ʫ6&b_hF xM)~ 9(J,E҃ aEv2f"(imuM}˕p7wGzq.:?57"}3a!c> xW`yۀ1z!Kp)HdpsX^StNB'`뀜4V"h#Ѐ|5 QGfrUҦ̹X hA6ѼIꎼ&޴n񖈸=/ y?)Rw>oD^4Zݚ}@dJ  뱟]lbXz%ѕv {7aW|VmJ ~%^~Βn 0e -9@BQc!$ mf>so-@vB 8n1 Yo Ehg3\OȅLSH~-EØXb0`/Vbü՗Lz_j `4 ݷZ m$[M6Qe+W7$}ÅGԲ;Em`+"eT=3&Ҳţcfڪzlt(r@Cv2nGHK#cs!e!.}(oRb"WxZz#3؍aοBl!q?֥+e;[[_騅ePo~-a\r}0$QZi{nh$3&P+r6F,nŽ(93Ѱ5)N(m5wh yz+nc[Q_j c rR-߯3=&dpwz^ۍJpur*yԦזOd![ $QW1mrQ5y4Ir0VR95‚)S'[50j40F`. jkϪ :?V#ۺa:J"S^,ߢ'd1AgL)"oOO,'$A&$q(3SRY4]2*tT2/奿=m԰UKY(M J F!ԝF XIRGWuLȗnˈƽuڦN^[ +LY{nDĜ= cK١ٖYw&iTrPs hFP1|L+Qz ={eư̗ K#YZQU"x t0Qci]ڳc&7-(9{RZm}=ej>c yc4ϔI|'B̖]fX }=`Z~M\DjiaSk Ż5m=#qO㋾|լvU}8Aڳ T%V8w~T+ޗ1-WvԤt,_z1\QX[ȩZR7U^jT;+~R*Y'_Qsy— دŷH~L1y'F d9/hzeN }c :V)-ZCVl *{{9`Xq1DWr*|&FxoEZ&A~`kգ+ZNpӰ ^"Ul杊iJr9Ş(@wyl{10wU7V4e{?j"]ݣ3Q i i=dtcg6S"?_`pmPFи;ExƗ0oF$=}8G]hi$MDL!^Ss25;|e;Xwo>!6dwN=L>^ls`L ( zh[aw*TOw"=RH^-t k(K") J"P+˘T}[e-`tP*\ǘ{YP4<(w2iSa!g2?HhyZ2Z.ͭ դXG3霛/ҲW!^U/6hf:MJػ[*jzCЃz T q?T/05#f迱L2Qr/};G " #Pa= 9,+nKS۷yƏoC]*G*UDu!50Iw+7 ۻK|V(c36ʜkI ׿ka6=ꋭI(Tݟr)YQ(u0G1v2ڮv`rRmkޓ9e_)gbPddeXD {iaߡV9;qSϘŢ0~IZ1M 0Fz;*E-GZ{,a J)qFxis(,| 9 i +31&b߷F<cOJخ Jw ~9Iw剬nn=fޔGLI4s{sS(g!kgZn9RKR~7'#`?uѼA/vNle>e8UuEx–$1FQV,4!;_)'ie)łHqA/9+c+\F (>卟m̌hqmD^mSm]do<@V^`W}A$y ٝc%Ձ`d}*Xcc@"Ee1TIIQb׏{1WǗz ĥdp>wMC^T~p/".:|mATfJ ͽ)O@ػf*|8!mPg%1$u?Nf/ѝI2ɒhmX70tg~1Y'EQgCPZSE$ ۉ}X0+vQ;P`UTXKda\< ,ؑ%ZUQ蒢^?_S3C dHAT`R^I1OqB#s[ ~ғLaa`3aCDC gK}/E,*;y5U(Is#`O9Xfuh^;$iWy(Ü0W#>!e54Uy\GеZ!pn?N}x@rJ)6^Pq-/(E[j<#p'il2ҊkN Siޖ\v S2I˂D쨬O_S,\|g #&?A_z[,֗~υIg@ju.`-*k`|u*Dl FRH$l.?;rzGz Wuf z4ɻj.,+"X<[Ё Yk3~Ψs̷ٓT=!SѳWPeqZv6$~ x?K&Y+{=vF7wŕ\%\(oԃ.ҽpB4Kq\ w1S2ڜ}4GP!2nK0ͩZjt:oȥB2Pҍ OhZwK6 !nc+OnGSؿA+ˌw2þ9ɖ f @ҁ:k.p6x.dzF3 d}0s4fb#r*<3|*.Fz«B5.-vN\ . v^^+4B|BI ˂jۼxym7\Sʊ v-- (d *-KW<Ҕ;Qz_wQ)s 3^2{/qDcŴ~L5}:e̒2 Z@L#%ɘ*%Vcz`?;+B)yo/˾/}h0y5殲* CN]%L#Z{NN kZ(OGlFL n:3;hxc,sirs]~z?`=h: \(CS!IËLXY=:SxSd7xʍ}+I❫D'mҳ.{P~%{>/ vkJ<R>|BLs-МHKz 4.3ϴq?Q^y~&aEPFy$f'u t|VQpYu/@2%?rF5foγNUWɷ-U<v3W`M '4‘Wu=o?C&+s}^ ڡBl21(N0d,rU4k ݭ\}/1>: )Fy\gbXznjݰU?x6bw@X')'h< Q!%REPI-Ș ):GA@a]6T}Ŕ/cZ .P'ں1u*ˇd;zruZVz>e)E[1v|1 {o\[-l/cτ}ȟd)ϨۤZ^*_@`ps|HSx:eY}7=!0c&ԁ{oƏTE*6mrX!1T|<ȈDEܔ2C-yKCdnLql'=Y,Hm(@4R.W#LFh[8:!y8OHjޤBc8ְdž3ƚh}M!4 #Gx2>|#|T! Cd4jc[R ՘N'5h.b J 0g_.LIW d+o]s1aIp֯#0'm=oz<╉i߳,69-lY;LmX" it]xqzZѭ_^Kڌ\ݱTdocSjnV|\?Wo؎B9UnQiUϞf -\!#q!(SLՠ#&YZw>Hfymqo](' 75GlmPghHsteЗZ<#EGߦ__yz򕟄 aŊ$,NI0Mp,ACRg,1P |2w ORRx7RVb<6 u xQ8מXr5F0 %[ "0iҲ%َƏIwHSX,#lE&JLbq-$a"8: V);,Psͽ7|L:Nlhd1<0H3ڰmDBUnC_Yq)o2EܜG NJV1Y. `O'hk^8A-q yLg݈*M rGVrxNԝP% #!7T;ȦOlo9xe r=bd[yU+d'~]^; l*29lGL`!^o *@o@{4]nᑀȌLŀY˵$~b'd]uaLxħVV` }#`0KޕhsM#K'*Ս]jgLR: lT GdX.lvͺ]Lt꧎o&yaK-K#,ZR"sBsE cm{TG`$׎Jw:QU]TP4n/ MP3<ݎII߭ߌcT3 ޺yolӤ3?_tN$#Xe+wyDy[]_oT'j $WW܆uLJ, OX y_KYA v]Y_7%;=5W"6qXׯ,Q䗀[ŷ){` Gd4<6.>Tc;q}h2KKn}zeq1Ut&]g<\dwHeoێf[ߚQ4X[G `\`dk[ޥ+Wr&Jz@h+멺Is 5[Ra?Sxꣳ7lVt'<o=/TB{Uib33Hm9k2 utfi:ЯB@鿅}]Jr$n-vGDϖYe۱B9ÍQԸnNFn!Y b$)B֘-59Q]4`QcBealHDž%Ym6>/ vӒ/qbcڝ cƟE\]sG뙻4_,I7bӆk$(#L4hBCy5DQaIQ ,jU=XA֦qG} ț| E`'F(d߮Q1`D˿6T֣sP%?߁/ aL7Bg1AE9tVU-=ƦY 9o;1JdN4e* 4vPdǣG \xVA,-1C>MHGDĨf]aZ$Ӧ5Pvk[{)O|x0kA6v\]2PvR iDT2W28EP^"n|?-7x%rOyD[Y艼Q]FwxMPh XZ݈\> b,izEK=Nl^7RlՖ 9Ge;W76? .w)^PB)ڍd]*"S0IzJ:NtľD"_h H+}{O>HoC?eKl:pesImx];$t1uB)M AKgXpEH֢̐j edq^!;íU=s,S<4e@#w:Zm5 FWYz㪎-kHF3Buus"Ql惬vB/rcGA,M[Z It%K8k:{5~ھ<c" S5lC.XdncHifh.3P8+ 2.D-ƺ㩎{k]i=L= C@ !4։sitt 3  إ!nRlrO7PU6(|zڡ$qh%m!Q6|}Bl|ÝPK@[ Ze߾Z(|Ǐ5 Jf/̰}jÕ l{y$|]T,GyGz.4y. "hԵ\* fLy}TmVoXGEt+v>I_|rHkЁqLHp!$$0I8d0Vdd*zY"= gnx '5*\r/jV4`g:t#=bWR89y\ypS֋$!WZ۟[Hd{m l?:;呛 93`m9k& ,(rncXq{VUu_RM$ .66 q d7x!6PWUp#8_o}.2#w^*=&:fF%ө CVXp$x&LԛJtު,yq_3.Q<4z /m6Jck =qjJ>mBT@輣>~PIݍcNq)6C{}DfAQ|CGRע]a:ι3I=̄O,Jmu';olJ^H4:ۏ.!BcmU\ڤ8ꎊL&^gd#fcq.sg?+U{0%rH֎56Q(̾]TT:6;w̧f0)~Fc:ma.,z,f@i&R1e\h'5~bTվh{kC8RWLP'$xzgAC9 RISV$h `J֍sc[897Qkrd !GF"G ߅xkHM>+Mv11pd)ipQg K l]Tpi_:*_~.|T8$pmKF1CH"= Kt?-:K'jq3_ Tg;46`V !ڈ,vp㹲пf7.%[RvR;%nU.D36Ss=|"FGG0P\h PkY겞gH(]P\޾ͧpBg[<vgrx %:e1܍(`&TKd52O[dJа p7kc<r~'QgYaZsB?pO"Z6~l06B#kͷBIM'Ӻ}R2[her&?ڴT݅MS܅FP2eD5=0e Ln- ÖIjC&Y4nM SAc\~v]IVR ?0=.5y}!#u縚AzpN+5óF>a#ډcN#CnK-Ku*9v涜܍-i J`s!3#O04JQMl:0jN!n>* m;8$DZϝuR+soCh$rͪfؽʤ2HWMS ^K ПQB| ^}htaS&G 0qW vJkeb CidMi!s68Y Zf'|#(Ol0oyfHa?J, CyväOny l1В yp{!+x(5R:?fyWws KaSć҈5Qmb KgRL U:x(8͓)*0/ڸeDYgTA pi>T!\'znz~( `Q5v >[b#~wO`zS7I$  N{ۘO7:U @50:nUXڐX!aS-#_2ȄZA(Yh|})~;2v@ͪ}9t 2 $TF<ؗiѼ3"xtՀ[`OH>!yX=0.>O&QoĮ+v pP#)AhF\68XT>h3\xR;XnKL.Y2;Q˞,A>!Wt |\BL倷ٝDOMglHÉ =)蘣h̹1̥*۵,q(1  {-T#Եߜ88'>NBSd.) ͣ'wov (x28D6b90i k0!C^r1B1fI]ft}>1umb06O% }t޾ItUMZ6%oh/W)i)$煷pGBBi'A*=c{fK &ep,tDUő˜½V!T?"" Lj:f-Z8:ՐM9/t$Ngq/S6D?)H#~Hd}٬|0e qYAjƣ5\%R(Xk0z?@KbMG8KQaa`]'5>1:3UʩwWJ ;Y8Wtu7,&iNu+KE;!@ToRo}voD;*)a5E:m=LzWeHѐ#!*>+0\]NOU^aAʿI}wn[곱N&qY1ē6ų`5iعQ)ڝ&;PAgEBeP0^0: gۘ]]kmD1;R3OwAn0@o|G;{9aVn>WW.O _tH⒈\.diS?\{2sΕǂ]Ȗ8qJ ::(*w#4zGCBX P?&P=U=]1@ؙl f1+cv+~)Ѣ{ekW ,+ƓÖAЈYn(s\D[ROƒs9VzC.I(I؂?O@ Z6PTP\ml>olK08On,wA=1^ە@)OVPT49+|%b}wlE;ߏ$[m?5Wd@t0Ud 5~,'@4GpqJM#,' Lj) XE04j'"}3k%+emCsW q=!WjQAڹxDpԡt:NM#ΈpY6& o^$Gk[XI^$ovLP@IⓊ9\H៧r(ShfL8WvEC2h;j 飄k{ H1="zJD)} ]^ oY!;c蚟O鳤Xu ՑJ\}obwH uE 7"L\S5yqG1ReNMDH"{ Cb^-d/qhf҄&8$&k תf;ςiRcpJќMWdzf]eK,u y&ske$5Vd]Qkt/W񴼌9½G"kC,d>_Ԑsc#ߒTȈzheC^Q,uC:Gӄ׹I+hA߂ϔ+wIet])+~ grWx ןa 6۝ Fȹ?n+,H Om_+0tXxoS6O`E ceWz5gg~tژdF}ToL) Rҳ +OJ/ }XHBK<棠] []qFSL,.b РSwBS3#x1Ի ҡba37YkI[wܫX.YDCDi&!u'H_WXG;(:kWnPRvވ/6 jPnK'5B=ʖ"l3lOZM-R4==Ys;SJ:2r04F돑nYN-m: ,q.Ā$,9ѱKR o-.8Z)@\PRu;>=&&{jӚ gE5{A: :&a .BpհPh.@ @.:~ry =ۢ/kxm@#1 QAjeNkߢ`p˟>mUքU?(TYZ],y`+hB$pހ]z@쑭lɔ)òj2Fe\-!uxZkn1p<,HYY )H묛'c.<)V(4vI=Le "C4`9!H^}xbhPrl]X `!B1DGԘIQyŝTPQg=g~~@ճʏTkWp@/ߪfvG9xۑI-mh5oW`h#J5/:to& bdKBWϟvT`W%4nDԯ2.YJYyѐWE_@B%]b^VB\⤐bK &:-8zQŇnQ*Ų4\PP1c%E%\̷&8lb&B,M<EL z۾fm#'aM}Ɏ^vrcjCj$nPZRj+w@X wp4@du#uUx!?/ w!eS,J}s!='V(bL`rq|ԙF3`y{$bӘ,lѳlΐ_-i,W[lgrU,w|j&S#c5@]*r)(+pQC\;4+,s u'Fa?>d^_(.S6u̲g%|וݢ'=R7]R+< .yv=MM*R6Wel1Q遺`$mv@#Č9eb~DWan9 3A6hl%dik0:%-*6LpD-OPB R3QnNi=& )ǩɿE[z͚YR-Y ᶂxLX|vYnW b'>zx7csʚ"/aqو#ek9^jIC7[r|̠Ui_$߹}Z~B7 uu4Z ,NuO~,(Kdm$='Ѐ scUdr3^}cS 0_$zu K';0,)" 5~Iq?C)I`şDA֙_V,ZW,^DO=Y`n0meX䌹2? 1J6lsC<{J4ĐݺpJ$uG,bbø( SQʥ,7*I ƍ9ˋ~;-W_ ^[n _ aO q5voJenK~4 nľ!0^_'ƚKeF+CEg}zuRo!c;m.)oDK9ptt}ee9Sw9ښ`ш>w FU`2DC[cNQ"">K}n ?i˔M?7Oh;Ykw]aYXx {z#S,yu'1@Ik8!7ȑк}5$'A#NG5*Njq3 =,=\%CEtddZ姗YC yj28D|,=M(݂ޭdVɸp1 :nN`;Rͱ+E2ZԊap=o5Ya2KYxKNYF:TLXY>4ynjj +'abЅj{!B>屣Б.N+-?`ku`sǵ,+MZALz̮V`םfAO #Ђt Fw[: ,.FNFY ѥsb8^㻬",DϽH>T=j%݃L%٤M7PU˭ Za(GYHIJHw}^|_pAq9ik^n(b) \v'Nb~'뒟,t|6U1HoB*Wqtü/FA%/b+ۥ9ۭ-꼫g`F]QP>ҥ 2iXRILuTrl9r0o[}BI f k2Z7_۾H n ~,Yd[y&&YFv5C> YUy:2UmB\y蒴px 32)}S*/R"XP,҉f#-=e{u/'tG9F:vvvS/h;ȼ zE*Z#^ɀmD7z';5Ì|1_bPKeRl[3<Ɍ ?IH!WPhk)Η۲EJdSqZV/Gn;(V`ˍ>?(A(M xQͯ(jdQ{\(?9j@C3ٌ7ϙmr/`vCvvKɈm 5^F66A O dȠURT3 C=L,g'hlb" 1kB-PtJE"k^KLqJz1qcX҄h6rV%DJsA/aؼ8vn2g?AJv,u7 MSV\(jzک+TZ\:99LJeVdo/&!z*?%m#PRPj9=J"Mpڮ $%(ΗJazpV./I&\UvY?pi&"yc[*4EsV!mn6֫F}LbpF{2ZQQ [g͠Jq&) .qpg 9̅>wtޅ$;zO33st}z/^,N#"UqЃtNYpuFb]ջv Ξw0*tO\~b}%&M{']NW#o *PPX3@ݟ ÐN }waW=s,"6\ /8N@{8k`C׋`Y2{VIe 2XRoȍE}jLOjˤ*Eq fYX . b|_BZ: " g.!?5N^i+zF9 v.hʺ?Z"SE8S\IwZ:مvďb3ہQ؈XoHy﹂>s]K~jiuWeOnlЂ }+$!TVn3G,__ȹE)ZV+Ӫfg6/%@Yp~M(IS:'J,,T5-<8qke^@;#J4H{0` bg"Ga1]0m+瀞ha@׆]KyV#J\ϓ]$ܾO&<(3@:'ŝsը\oD/AޖOM3kKUp3IΘkBޤs"4N.WjʼNUuom8z땮?NBsv H!~#};ƣ[0qGo}.^5vǯGd.Vix+DŽ&(]9CS9}{,$V=[UG+V4OAc]M$ џYʷ__8ؿqQ0BEOӂ8I*_P ğKCj'ILlhO@FٿGv…fYK9Glx|!C GX篻ՒJAou%p z}~R{ C$4!'& T!Yc8ZF˂v̀%4=%_eBdűDzY{GmZ4~(z r_Yf,D}2^3sM*%),9BaztTLnLd(Zss˜8<2-KJ|D`H:7&>bn+oqF-ĕ苍.DSߛsKea_e &!bS.aү#?pϽ}!x2hhgn-RVy`Vŷ wNK9ZOׁ⥂r/(1ef:f֪_C>FT$aZVrMH=WuP߭M q#ԟ~L;[̾h1\ @s=o.0[D׸\ޏֆBHۧbp7ZT )4 83VdL˻+%~WШ'۷Ӵg2vSd\5`ݎη5ҹ1of>OafV@?Jw*D$r8f mPUڊlNXY1QBʳ xp۰λVE$adrX'L$ϝrdWXCu/rqâ`3'Ӓڸuok5 R2]~XZ:smpu[ ˫٥Zӎ)o32~:M]GCF YRXЅK(+$p(uj-<V2;<Su`[+c˧ QHh ⋅g@ _WY3TPu[o`'X;}V" d~p<犹d37ss{Y"z&Q8gUvͤ' ';a%{B_MTQj">D* N^׭Yb|%@lOCOτ'aF~9w9oE??*bnMt54`Ftjm~̕_MBg}9߉+ ]6>-AÈ.LʝKX!Wbަkk4Z c88Q\7FҡRj(!$h͌'OAU" vuO99u`rC}=Qaו2,ƾjpKk+/ޡW”۳B_\D1? l7 '/2ť0a-)TCL[2);TwL4ec5|ȋ$I@?oac/D|lp?RZo,yA:<m%Q43ģhXz8&I?xq 'oZ/E()%д ςcQo8A$ab1.xߠ sPcmɽ^z&% cn[[LgZUHN԰_v ;7L*/Զ 3W!bX@ٵ-1[ORB\9WPԘ|Jx<WXJVM?yw aouM=I!1y ¾GBޣJ&7ӝ1$h.UMw 0=i FaSINNK/߆0@l# =NM(/ vk1n9' %ޠEm]|"Uܻ`2(Y aRbr<}'eK[xm.ؿ"*u_1]O5&].VW;uS_عOIỲY\6XG~x匧;k+!IfƆ[}T/搔ZO-L(򑂏!wZ<_ՙ[|YeB7V)XwA ڲHF;Xom>ȯsժ~om^4 nA[E]叄0n|T#+e:./7xL=e=pZȘ@aPrgpryՁkd53|f;EhUb@/JYM~V^Y!b;p!S#9 v e٢!/ք%Y]\gRκ # "$uw SO^Q:.o ^? (iJ4K g>^OBCS@ b'5:xW? 3|S·an,hQTE"a!.ׯ _kv44D~ܳ ,t5"=@ͩhoA)ol5׸'#}Ům`7FX]V "AqN2D8AUA|NʝΆLd2 ƹ3t}Vf=|#[TOMu9:wmxOZ_$i\pn^:ჹĭ5ФՆ`/ +Ä[;oy,g5_4V(<p_lnoܞRWbo(3_ Go%o4+:^Qf,{fF_&;{Ȗ\VzQ&A6v5LR z:OmO;d M#MEBi`Gia#{(3D9;hL;ZA"0^Y =daOfHVh剔?8qW Y$@aU=xaUq<'4tvĢ&ڮUKIωt$!?ƙ ZlIwk|"+5^X4Ԗ6MܥCy*5$X8 cӚ,ŷ%>J>^`J@-0A9G8eONlF1 qj-[X6p N^#i e{%/yF0k|$%&{ϹdE*ڈ<|#up 2fU~kP,>L!n/NiB@Q1%u6 R5tfy\es~g$oC_ِe$Ӄ?ε`~"%Pp :$qd*?-.MTDPݵܦR $>Ucl"Yg(;asX{ԑݕbwP!Ła*gT&)}\ɣ8yqu \ yS\%Ԏn>Sy5QM$"7Ck==>F6je+> {Ph/ ʞ\i8e4t+uQ4Èܲˏ l#&1KMJS /$rݖ92;Za"hx>d} \v^K߀2%}!X߰O8V7X#ZZh1瑧52A@Q#,k, 2 Wܶc!eH14J^p^:ї  9(_yoa"oRM) ޽Z}X2Y%yCg#b\jg0ճKCq! ?u _mB}Uݻ'=iaf%1Wgל6F- B.L}^- 1ȀK}`?̚ )l%!RA:ʡZgknC&ONlO#%(_7 퇀3 =;i1iF{jEX =dV mȾG^϶7sR15Dc`V|m$ qw@'Cw P {۽4qى9j4b՜ELIeTev<?Fџۥ|[dR>KBRRRL\jFrF+-88ZGÄ Hq&4䣯NQ{[N֘r6:ylgm 8KCm͓RU ҽͅR3XȧBbAB}'pF')::O(5@ڷp$|M\r/Ѕl']aݵg KԾuX85I bR*(+"G棏U GQ峋Fp$6hO(,EXxwS?`t([jrtJIAb=Q}Sz]-bF%Kap3thѩJuUoέRQ)A[1wq?xJWj~mNU tm#h XF,ޭJ)vVmv ߧ}O{t,ѹu4Bz> t[SS(nKlIJlI^cpZT| sH+KRtWWܡ66M$I`ssΓ5s=꨻{|[Nr숹1;z_=~S*u/ljnJ vc[5|lB\O;ToHyWsrQ&"Z9L*_H]˿xρSx ^B~`9J'.a!vK Y/NkXZY&qY*r%=n/!2]~ĵϠYs<&iFX[* ?Vhs(ĤRgNF*=/z4rۻ2"ΈӀ{nC[cMqT^jK 0Ip]8|U;=Z Ɯ+L1c3uǗ-2K"D;`7Y[(7-Xۯ.Q)G^OXՎk4r!MR,U4$>bb-ZM9/2E[IܽdS_= * Jk+5:O\`,\RR<눡 ^ymhg׽΍vA]0-#$>lSet汨@ HTk- A)Fm̙_&5O=9pG<_΁;Յ\߮u{E鞌Bs6)q86)0O_/--+wS2.J˒w4\BzZІ'Q 7t/1rkZ4+D9QXQ_fQoZIC=쓸R)q~'΂ct'Y B&P.gܯMLQ")k8\z.Qo/i);x:S>Cz`CxFR3_m:}c/`mj4K#bdjҾolP4̓,Q $CworZQϩaɪeR$zjA7ܬ?UbT~W_1٣ ㆪn;)4͎ bK(DDQȽ]=gD.2.Qw\&ßPlp\A3d>o^yI}(uE40#L6 Ϛ/QoBJ;H/btu`̣G叿IywwYfQ3e͌|NTtcܸ)M,1e2tX^F&K'|h8`6z1FI6Y\I2o;d[UO@ uo r+FCsfF&|B( Y+,md%R"J/DM0o{-ŭ@FI3أz!րSniC,M36$WqVx~B*a65Mh4Խ!a f5U~͙SdYk`@\f10Rb &.V/S1օVwȿiӞFuۇ&o_ _Y5C417K Kd[6(8}X0}.-g Lm9@E8WkpB  P]}vG6|Ҕ]Tb3wS2ghޗI~trbt"iCg: o(2gbgT>pM u] [CaxF];bz@US4uw ;U 5!NV > +DbXS_vDDﷶ:ʵPu֟S2esu^)Nc3x7f3:`i 'OH`۫:p׼J vPk;-CTO`t)QVDoO<Uht,Pd#{ $<=^{i閾TlX Vt,CYY@YH&pM\.k^'mQY@FĚ82LgN>lj_J9w-ZN^!`()Q8i}PPDT)lX5R9  a "ؔu0Ď;Q [,,8OB"ͤ,Xca#]Gʨٚ$1<.Nc)KV9&˧/)9Ɲj?b,: Ϸx)OhO%IZ"M)씗k8bb[" ]ryE3H鎪.bսXSom9b0G)ʬ(4D/8)#e߰p0S͵<@#ve oVƮ6'[N*h 461e ݥ,a!D}<-ϳ1Ïe\;f08KV{zɊ6-¨NlViHDHRf5$^xf,/TBuaq7[]ܕIuE,ѭ=_4 餷 Pw#~8XOpsTzZٹһVzd?5SKdG=DEoClD$<ףx2 $"j2 Xݭ51~y01J!ƟL qO0Mx~PkR +ژcdžӏhrOIFwˈ8)]<,F6e5eOĜb  SH>288U/ύJEIYL3ݰ?Z7Yzpo$"U 6R2 ٥ 7**Z\o2u-@ {Kl2tQ̏ \L/]I6Ec謑d vA6r[0əf3)|C@hL"*lrjqKܸOA6E.oʺV{}*UU%EEr(kNа6m2w>y HY[k<8>\V\'TٛpP{bpGɲ4 YVmKA%!q ұiv=F,rM3w Ml HVx|.Ibr*RJ 0pYbIg7]cctH/^I~Phtٽvd-k'ϾQ7#!v{zu@-Czȇ~gpnj?MoKxebVNg[bfQnti4x.pv&$iK^$d-ᄭ m"7;B_RRE,$+g)j0X<]zR2ОacZޙmn=B|tL1%Lx.Uj?T5JX(CK3_]bY, _vK'3IUıEvVVHЊ1ށ(C>ʰ1לO& N㴆rŀJ`?QS 6ԗb8pj꙯q [@R;Q:Yj vtw/>s(vL,E7mB!1Dw* $Kj&l QF)+_FO3FwcZZCчWɋՆ^9V*|[85; tGwj0Eֆ+0zn$0CMǵoߘVO@c UuA2U"FyƹɀH'w~i͔^'ᐸ 7[+[K{"1Ԡ^#ކy gs?l 9|O;QJG1\$*v ~edV~ٞH"d~}F1t!pmq'@է೷hCwwq|"\EBijH\tEhv *YU:*+[#h0|I@k\b=dzm!FpA_IumVٯ!=W1Vk/fdHiҵǧJC;"_+x^6LTXꃒBߗyrrlmiUV}K¯e3f c$J.Y$OҘY$/8Xw!Sg : XxV`pW.F{ e˃غ(ց|^MŮa2b~JD5!mqktrcocC8g#u~s?d(J`09eW#8х{A DA+i~  h/pYlPKύ6cu&rS$z[[H5ɱ?HyĐ08nm?D£ k `נ 粭l~]/Ϝir-#xR+>Y/U=1eBuAfdCISU3o!eęo>Gfd~ g YCѮZlN~'魑sczʼHlLv0 u>Y72>[2㲈&ci+jlNz/M۝,+n-Rvt&J(i|18h_~-` UsyB0.'R_\fckw8/+\gmfcMOBcl|0Fk%m#GkIn}[{Vfu!CIlB,6d哹ʐ^&,ru#7Tuk,7 RɑlؑR7Qf3 (6^F3ǰpFsrnv,cb\+5u(>i"j:5XMLMи0`NӀjY;D,6kXlUC]_`TѴ_\ #zXq/"cXƁĶҶv7*):V^xUkl kQc&sf{VYt.ىt!D2 $b;5jvm+A>x1Tut&(Y74ɥOdYM#"-\ ib=KTqcq'W/e>Qf<G 3Rk$%o4r[{,}>fmY1\Tcf,4|IynoGrܞ_`I>[,4[PkپyWdtjȐs]d%G]_~kxrӛAM:E.G/Qx޿Zlz4 -1& gVQ̕^jjySߌctz+$Mi/$AN>'H>Sq.p &Fi> hsw[`!|ʝb>(FAOG3x@%_<@,+fV{ޞ0yMBL 06ՖP@?j ЗO::ְܷ:B*q~6OL_z7E= ߶6v­fj}2WX@շynW3 n pEi7!4tcyGʹ+6wT;@Z5ÂXS85)6&\AS 0@OTfũk>9+ ߌ} 6.Vc ]ʿt}oyXlC'$, 麗5kPpj$ٯn2kL ęVh0ݛ7gS۪FXUűrpdɌ.-We׫>to4WrŠP)gx>P,9(@jHr?Nt`cǀQ+K7>¸aڷg]o9J; r + uV4~Mv\7{q $8Q^"<,A$2Lo]PtӬ[_z 7YQvTPxs1[9|I,ZbH@'("CX鍋כydi7^A>ѐ9mH72Իe(luHXj GrUsLH]ǔ*@[ir̓m ]U;KYKg~u3;xí0y'AnK*oZJ8f!T j #"ɮ ?*5O;<_|g2l^{GC,JlV塬 قD>b ̽_苠5Ⓟ9_ҒF~gb梺 qQٔ*c ؐ~^i*7֌ \_xtX&Qioisȯo{wzNx!hJ9P$joux`"a+ T8tCAKv_Eσwg,ya\۷z|_v>X٣m`*W wvsLԉ1wK:!ߵ!'է-y1c.t+"Hu(>`ZgBbHQVm)%^gw JZzk.ww/x2i! >X>?a֙AASS ~>=5G$&5)swmU>U;؊.[\@;_z Y\U!4';ůXk\stpXQ_"5l8)[` 6θ_t:Ѣfnk /o7{ܗXJXP".x&uDw#ժtG >[#։؛̔P8VhfYa3[MC-WI;e/mʙ1-C8}|9f'a3kif"zgR#ʽ~*&V戆l+mI"2V`~ˠ`q/ sF< n/0M/*Vt~+H>VxԂdO`cOw-j:I;? |x;I6s@\`U ׁX5["9ؔ0K:4l fq3&OtdM3MS5ѽVxߪA68*i!c~w$1ܺ~f,.qsZne]옕2!MPE@<'?~fz OT%aka 086,DWҤ[Dp%/waU@4i9:b{ 6)Z'%{^Svx CAtگKAN1bUbW, 14Rf>?o +?ftDET`?Rvi֑M&V kٗ4P?^C- O1o@/ j= ļrpVJ@)Yxa.qsB/54k!]cj`)x]WUKuSUAew-*/͝4'Ae#Cu!Ei&%꥟ Ҥ2ݑ(D"B ȸa+huqm8FCIl+L=Go/Y&"TKpW3we~=BBGr#K-§ U@&UxƱ4F,d H޲[q6\"pܓ)U3$. I] \/Pѷu?@s`sK"ƼJpxѣQa6ҧojl?/x+sj],гY,l_SCI'@>^t'0>4; ! !Ƙ]9N:@rXWaG9ln8=.k0vtjJᝤwW\Wfu4';˦[~JPq Z_p1S&<yyy~RY~qpG{F2o j].^ݥgr/dͬN2P!]e ;6RCLB$ߖ(?~՘"El$ d{g|C!nkY`2<5 up2TOg~"?UQV E ׈Uw>P PǮh]QIwi]h5_E$K+*&dq蠇.7A;e'3N]hc-vPAZ7?rc̈ewRg5G)9u >TJoOm_5l<@松1ux *=HKR6Wi"o)$'F&KyĞC%m"J]!0\n9<%+ecS0X^B3#2CRSB`e)c@vd|/=g9T’/w.pw+YB; *1X6m'pd85!"C13w)㛟SzA*<{ b2܃ HBf}̛g jŷu){U|oCG$Dj91^iѓe;Ze 粃, R.`Drb` yR»+>L0M( vvQo@F@ A P-\9]?) ^O'&>o?78ly鍅x7JVpq<7^p_-6Fu@DP]:ڶ*IBǠIBT=*萴pé[u>q ܗd/mԒ{wdHԆ`yC=4l(G0AiE[ER_Yz'"LY6_9`}~"brC@C|B?{?Ьϖʚ&ў `d7An_J$\p`b Q5o1HFh:OiWZ#,( VaqUJ^3Z*%筻+8J;&` "@ `|'r *m> e4j"T\p}$-(bwcEaWK=OK(Ьl# |脣R $*zh=Q$Mu6{(7|\{CH~dy7V$G[R ^A_5|u1—(7Pwp*;qsH-lEBZ `oW1:-qNKާr+:Iu d~[ްrnq JJmu4Cp\!pOLjɿ%TV@b΃1_ODF7@Ϗydq bJ*1d JA..@ ]}@lMO4fALs0P1?䟺jΰ2Γ'=y)5nڗGbLmP\,1xʪc8rGui15,(RM))k1b(5A4vo`O{/[]~G(?b7h"qFlW|ix5baN$3^G<e-:4[ˌMt#>G}%{4Eƻ~"j5г s;y8U4iܨć%KT+[:o,uruuPs} /bpFpi0kr*2aIWqeY$mQyu(j^cT>cZq]7G {`ֹ́}f/rqQ}>ԙ=C ⯞MMI(tVleR5˵O)S BuJ@VȞ7PDpF/g,$Z?\d c1[F'9}߆v'~5+̩.[ 'Ly '=6' fߩ~p0+Ο@h]Vц-Vy?,/p@zQĬ2%oCnR!g{&s?O^ ,E:8p ٔ1 m|:H 4µњ/w~Ǵ5e AcTẂT;=*[~WnC+Ob9UTJ,#8w9sL.Zx^Қk;RYQa6 =1ܲx`}Bw-]%湧-TCݓTsѶ ̢"D7^㊙:}x{NZ]?mǚreふC@gAY9,sLwaEף.i()0DJ7}MHrZsnD%Ql &qq!49mpPvl]T|`j*i#$e+Nf( l 9:&|M/?مg.a&J2ٕ/cMe`|f9U‰t3^< | ,GߍN7M#4?(v&u(H2|v+:=%#_'|FNr{F?7`5r ΙouxM?؏տ>NFjBJ>;ΐ ;~l_-"H 5\R9_ iWQ89 cbH. "R '"CPd5C.6W7ىH.P4(űnp(, YANgԏR!An-H7G:9c`@fBJUXMג4}w;'هVMG1霺N1 M#o6>-oBV!D%%oNw.W5 r&n1RyzLR<9u]W |94\b#JX16*3FܵBجǙE=2备* 1-e ZihdeBd0X2dA/mWHIAˊK2Tsת|g}kvV4_wU%t=ɒJy$41Gi .ճa?kPmY~Q;x]!y?1~xo=*%cd/}ZSu= 6:'^3n 1 ]C69S Gw-]roCw  I`Mdxcp[w' 1!RU7A*B">(c{B$}x&kQxV]:dUK{D:mEF-xm`BB}RxmJX/bp!A~İ% s}foʀJ# ]vVtC54CQ^m%=*H{G9/L~gOƍCT_׵q h+[6gi t B9-/^;cwE* eボcnAer.<~M;=()n Z㒫,.Z@"%N&bh3ekǑKBH|),2d&>Z\/! 8@ [pi4pAKj!}]A¶sΚ8*zUF yEQmomfO{iG%;cߘh=-T2ɵBPS⸖>)$' m!t'*I[2}lvͽ 'HHhm˓4䐊W>vsf%>i.aEg^ӝl(ecm{w0Wꌠ~V.e~5ѧ l1VzOk#c6n DLi#n4NLD$ߤ?>jl)>-`X>c%Q-1.V&;GD͐`nlcYٲ @AE" ?ǦwkHi@Iޢr#q*M⛠s4I ֏sK㛛% ٺkvP~O*W.O$,/W'{=N^phvOR ڕS^ 7$}5"~i'%0 ;eZT'dGKއ7Ms+ SGֺI9wSs 3-5Xj"fvbEqA`VᄁyYҺ&j/:oT7 Z4ڮT zmF > p"؜۟,{ 'u!n5|Z9s`zbM6-$vJ`:~ՙ ȅͮ[Ĭ%oTPmABZe*ĩJA Q#vs4T " S̗pNT,0e;?_MfGTi}Z7};|rd&I _X[k&`y+ͱ+)JTwk}\diq;Sev3Kz{T`{0ڨ\I\MhyR5<[m96wr RPcѽkM7m7cȣcx1_Ǥ!+rnIT pL÷I3`?PMַǏ[)5( `{LQxal>wnI5 >5Y3ppGG.)Ŗ/9bD6EȲqL<VfYռ0 Dfl jUnC؈3K!d?vjT 锔MÒa}#X9ߵXw_isʿٍڝZ.T˅N@xՓ<pfIIW'j3qgu=u@h:Ku2 v Ӌ{ %PCG r E+v=13ln㧧'gRS5mM͍-,ӶX12;IUj"V[J* .ōEkXM3#6|!-{LA*!}CzMٔyDV` \STa"e MI}Yפ&"{/Z$sn@uc8r"wPM T? s."*j;,vt?+%#c{\iՓ沕>gv"xdyo7smuGl$y-tRGO˗%8}Ƕ$3ڕz3RFd8C*S.RrꂔϹ';C%/U V7dq'U #bӴ[5,XNU5X #L&>%jEݪFBUn^_iHS6!HE${ՠ*4lGD2cfet |Bc1 Pבj(y)fQz/[lb(Po{+6VRtQy>D&٧0_& PCГrWƽ>.c*? FyIy@| a*1HIŠM^R+Bq=K|=tLK.Rg؍6JQQ{a 8ofd :;w ] %AD`Ð+ɶPi3"F[M>T80N-,NjtN6Ma,ɎuH W(V=gOmn[!rʀv`EHV;]Ĕ@'ez m\b; PDq#ŧο/L6"~)alW B0\rrQ,L ccn1xN-^]['LHBBk]zs}dq\ I&G%@g)F">q ]uHjt~!`0GLL.j3V# dVh1[Ex4ܘ*5,l^MSAi"mM{ R1APokzL#(дl=y!8m4o# S+@=dD/J;(LJ-)ķ9_BR^e/Cvzf6ni~ *mk"!,L t0mD\*eN#=¿$q]{[dM7a_gqYB p\5;4\pm,!V7iXqVLiQa[GY Kjɡ`D\ehR֎?Ek#ӱ/ hU ^ɑkrߴdzzokk޷ʻ۶XC/߇$d2(˽+0\/sBZ2f0?`P8R6F`'~/֥YˢwQɍ7~G&y+Qƶ.Z&!f0# t;v7(zZMB+@?"NT/YG.<90xNkn.~] "Y8<Ӛ_XN09hY.@ Fn+pÒIHq| fAPu4K~&@n6nB3F-+X\oW1DDij"b2|ma2nP,{/m&S~lܜny#æMs\X-u%C*? >{/.#|d?)>(áE4v/|q6+a~xj6JnFNj2$F kTW;%l8)LG$ @'H@$AlɒBp"fG'A{ZCTLƒ s囲PLD|j[t&_/fO~I:Q\-%Z퍞w8NQ*t!& (%Az,0jȡ>z_TC 빊ET,rb l~Ŋ1Q4",%pY" הn&z%בO~H)`M3#|zIE *^Mg9ݛ{ulڧͥE ni>xO9 WD%2Y"&xn@:jeXuebmQ/v]3j89Kru",чR;.Ab9Yt;c;^ָu (k@`bgSoIwnDh-L7ּQ_$IA7AS,)7B\VxKn˱ci G V뀻l-o}{ 혛lW5Цޥ6w*"g3;!h3]1^w4H,(vV֍r%(#e ?@_κ ޢ@%L&b9 Lw6ؚ2l+%%Tx $<ŋc(/d'x*-}]L|u,!&9f{WJ"`t|R3Z tʀ\,9SmLAVA`¿vbeW,1;0 Vt?Haa16Au)idt v{S܂ -҉;upLFC,_Ey?3emnz9l'rKK ;E7 V#iUmvG#24˹CWz*;,Q[N NpJ{tfwKViL1w/=A2XLFBKW;AnxBy&=n.k.kK~vhMe~1kQi٪ ~bkVcaVM29O`jsf.brto}"9:JSOgI7ͬ*Zӑ;I;M[RQPԨ.4xހ8;: 4|[R<-65G>'!9C6L^Y FrL8JW␫N\Dډuv/_ȎPWvM=j91b)xH;wb OzR%g\bzȡdV$mYZ]\ꕈ4FWDa #-75p])[k͞V"y-8 ECzpeET=3ٰFLx77^a:?tZ_MG^q&l)&ϙ|Ve&To_1 560f$d'M.aav;#? ÿc4=(*G +Cz aMIżGX[? `2[=. m]rePnO WC=}fd O 1#D-Qm_Y!'~ j "jw:q< rDwV[Q|Ge|Szvt϶؇Hnˏ6shy@`2K"o=Y=:btHnsgM}㰆 w3IPR9:M yZm }ƒ>T|6Aڗ%F.RwPbڦ.׼=?EJ;RLCg}V<~C4EW?͂@;?w!sa;q;Mr0!=r?BLJoÈ% / #zķٗh#U)ivj*M/W.13^Iuqo7yP┞_{Et ᓘJ~Wn(&٠ lgql¢>FC޼(nƴ({YVT/ ^~rM^ϸ e>+TapRۨ"zV:!qMS#D}vgHnu2taI]l0kz߼'5kJrV5I9͞yGhm>wckP>&鋛Td9/@Kg0 %}ц.L2I3M34h,80PwP,ϙYQId=&"dd68QhGTܴo <^m >4Tjn6 iSNŚykGxK"*Xv:8LN>nH~x~VSV>p=ܥ/4}F9>¢z@6lFXD!)˜7ۛU7ځ][y6bϤPQq^s{S -I1/QԝCSOc@V^[GzQ C]b`ek5kHL 2~IKCq{f2,6&Z2IK`PU>#m_B>"-~5ѡOnD. Af 2U.NrNruyxMө?[r0g0ǾT*0yw`\lIތvu8?#z3~9XQM~t9y&Y$eK;g|kG[5*#\/Q$UUҫq{_(獿Z>#㞥nGG4´sRHJķòٺX$hkr#S9#T7EOP]]"X$n2Ca!qʥqLʫ~0hNsGQE>G ) ;E".*v.}K,Pqk4mj:O쌦G-pʪ8{y&u2/3H xyT^Awۛq'B'"$N۵__zlGnC?SDxlI|Uה+ĪŊ.5_m Eo+hei/ &^Hڷcd-q<٭O*=7؎ߔH` y+µbt!.E L;.ľƮkk#|km$_ E zh*X" !e՗7?'v/ebr ʜ~޴ ZoY\'ΐŭ[a Ӭ~@|SyEFdhSx`" s"0 FB<Oi`?S* Oor_bg1͋u)yӬZ )/-WX0!WygPz4!O3EX42Ø  9P_u q|RxEA#ع*'d& *)ܦU+kg._N]h#s_xɵ# N2Swl(zËVoOK'' (*$ k5tptJ]q- 9|H kնOZΫ!c 0yN8tI30]DPҜxAGM,]_CU{x=-TMh)r`4S*8GG4;P3~LdEL~\3@EPaWcXDv>j.Msr?$f/eH*C$ mJb;.Ail<-Όa}`Ŗ~鏝)TW4kh\gʛevOgY^ԝsRJV)+_ ˛[1wCq}CanV5X-|iRzZa0wU,n-;)?W ~v݈I )׌VkXvi_2<'@I( 8Wt퓺w1 \-qR it:"BhNOjI XM{Cg+&&j&Wc VK"߀ zYc"8Cx}b?0ғѳuJ=ݶJ>ꀚpչQۮ'JoI{L 19XieOt­QC8M}Skܼ'd>]틞C̣I=C_ V1JdhTٸ}y m"ʅǨrVpj#{&caZ Upg75M۞80Dcr!*X7Zֶ[nN'b?rs`1=Q_Eqݦ5&;?)7%+l8ꓷU JV}(Uyp5鳾!9L9hdDIKR<,Ȥ-aaoŐWj`Fbs#q}=!piZSBRU8uSq[56Ed]+ ;z/ےHXb=dZ8!cjO)~go.GEe+BBWИ'vjT c6q{( ut#V_Y[sm]iOKYG}ƆyxBEeƑʣ aA'DpP<@jK'^6^tD#vdkW =ͩLFn[d#%+lw,î mT0^-"jTH(Q4Qn]s .\G6]Y1 Ua+1s0_i?,zpml,>B'BE.;==6ۭ)U1UCnmߋ7T{j|>aYI.\Y"pKmA4M촱OoߜicG澥G{;z`ȡgQPB=z I̱hV̉)bly^QzkJqԯI8L@>[ө|i#x2ߑ\ 7$iNE/)06 @Xߪ Py\H˾,d꾶Gw@4e|S-;В8ww *:۵q1zX +iGh{wkfiB!r@}6EM]()].dΞQB^%zrt rn?CmB7ų6p)z9\:C%lF&=I)ω\ф6:pᖎvE_M/"iWB:qG u=ogz;g r[^yk9y24_Yؕ8 1ؠrWFGIФr{t+ՙ΃X~"vMl?њ{~}Ss?t1զl?9" [-P^P? ь~!r[3AgTBЗUA#~5~Pb9vUZv2֡185Nbh߆{}$[,Қ:!샘VQ.Lل=B)Aj2~#˂t9n01Ψ\to]wm 9nm07~)G\O &wH"i$9b n VBȄ9N˼\f)=>A1 ?SzB6E)p>j<k S޹kK_QM 5LP$6k'r>K;)꿳ټKTݖ,DHQ!!{81Vzū4B+Li~6b~p -0/'}'8'% k=#]4D6]o$UBdP|MNV5y񋭝:N`-SkSX(%0pFa}3}'&aHAەH;XAtR$É%tV*&3^7&NO};Ԋ5$~ctYi7pX{ M`֐6!TQdpMo?o@ibȋCx;uRb}K'Jqxu\͚>2HKg7$ȟ:*lFn`Y)d<@醾=cAfl^)!NLuK$M_&C7V-LDG6_ο2kCyunMd6V.ڜzY_UF`uqcH@%U0EI2bW0>摄ƀxl+P׺n ~VE͐ 8jە˻ъ{k)N[50ڛd eᔵ_憃͹ZOlZ`v\mܡ\y6(?>8/ju hPWOݺf5ק0p~ib |:ӶX[ݪ?qDcATSum4T-;pSj:P`-t]sD atZ% ޏܠnO z\v Vď}Y ˼ÐP6єVtvN uNҕY l|;O<ŀ:Yo_Joc;[*uQśשDP=6ݚRE$5tFT-!S ɶ0oROc\Oy Pge!#LAS㗸Vbk5hc'rJ0JI4ͺ4ΰ4ɳՀ+Mө ^W5oϣ}O-/HTͣCX,eY}h5NpstFúAхNr+{TZ_A~ntE ʇ*ZE6eLVK!2`MbξF2]/nst1\v_VeCrW([Jy402b{d؂s=h:ڊӔ*fdNp{p3z+uwewY~뎋Y㷋.뷼Z$XKWambb.e`",:lYufL~LJi;l%Z)!r`4?Nk'cu* PDm.w=eC*k;@+d435vZV,]#1:NcF٠FQ|ۏ4)Thuǝ:'!|W#\ԡ)%U2 ThCRw NAlޖ+E8c.jAM$ߺI(U6}sAHUJi|&X&AfwUH7|2|BCKgQV|BZ;鰂"pj>))Sm4ɦVc$$s.7S.ᑄ׳5񚩢VM014{'ahY1p_wNfN҇]X(*mu Ru:lP-`" syٍƊ(,\蔾FR:Hv4rsM$SUkVMejie3$r 'ǰ1G+E7J r MMy:4A6@`:F!aI{fs/,bŖ) ,i}&]ӂ:/'aSS*QQ؍[lϥ& RK]"a^H>3ēm3[uG<R ̫TRr 8B9\']tF0i^9yaEu@P2R '\~Zf)t :(Gư:B/ؼj}O֥M~8H"b%Lv.AWdNHBOGxܓwrmr>1*+B؋ ])Wl9h*HXMpG>M7,`7ds $tĀUcDʼ[ U~-\ӯ- lnE>Oۏza/|Ca_ ]Nj|l0 &9X tB"pQqP"0M'=>RV-Yrd9f떜ۊ j5rCI)cIfP,j9$:4@Yu^E>''7EH`E@17΢okqxu#}ؖ_hiqiZ}_8/LRT =@f }Eӟ4쟁_z|;bjBYd,ӬJZqV RmqkN,X [e)(z+VQ0f˫na}yq:VX5<YJ0jNEéXj90_*GĮs7ӝr!>1@+2,{bۋ~2>%9i=ʧm[%3_< ~F(vw\O%n5El?PaPfxFRS0\*!^eAi^^'xb{8Lohf5Y+D>%ԺEqkgu#*^ݘXaL<>{"F 9#ǖ _"T<ꟺXs I.(ՐYQ҃ N BQ-'@ n7SrqVvM< M9eɊ#eBb+:їOQ 0%RCjX{%,F7<ŚwHjdF-*'rJ\,& /ٱE?<ѹPJDt:$b?@sV$rIRO$!+:s~*> PNYg-O@\ Qɨa`Xͫ}H۷&9?2]&K+$aYŒWU- ,2"0I}Zy6cLZu'y-›fa 4[uEGGE'obFᨁ[F0-U1TZ<>/ǔ3duu~\Үk.j;&40_X{di#[.>2 Oٖer+b5ΉWޡ͋sn|{$+*Ȱ_^w ɚ;ː,MG4LXDB1X2Qp. G.0{Q^@̣t6*+a$ ^YR/CИQ'c;pk?;AICAr E*`3k A]CsS'X3S!hAHa_zYto0-zCIIiYYlShAGrwNZ-#pIs$Y3$^eHbtZG$3N 5*kOS!X~W` Ķ⽷b:%JN:mx\*yA%M/E%AM2`,0gJo2S5[Ѡ;ښ')B`KkH8 `כ3Y]QWܳ5~z伻}Tkx-6pg )Ps?wHG6*TZG?tTARt#lTDUYeo,?1u»WGJt+J$9.>Fo+D;Z!WFh,k/UY!w5>x 2ұP83>.B,Z2yB$Md\eIDi7t_pZ w(WL9"e6-r`]77Ir{0Hmf+@C#pSH_c>0:4l= "7qD\\(VddLPiA/HQJe}f&cܻ7L1^h/t^Qqoqncr|R[='Fp Y@i6j%"yH㧷} 'J4~tEڕ^NtLzx>\" xb$fe@b;A7mIAX&P(̯a2EqOxg]\tYfaV⛢Gꔏ!IGƺ^x/N2({î2'%[7WæE)˱rJr0ŇеTREdRuZF ކ&pBC#Wʓ{gݳ*)d w1,1,s7b( _#LA5 sB "Rh/<6Rzc!#b=@,˚< FZRy'P n{Be#U9gUSӲye,o@nQdzPADw-h5Y\۰6Weulu*ӳ*ğ"ܤſLpWyl_V. 1td#: 4dr7Gا4R_#M2pݓƖ^&vMcN$9wqf&8t[O.!C1y'@"*%ch _vW p\As)27<~ ?qsٷ`t}}n'}dΣ<؈ie-ngP!LTǛ@yV~֭(YA/~"MMMyvlxދSf$f聲 Ju_9=]_E =Vs| J%6I-O(zLR<sTƋ4r uSZ>˜|z|/--C 1Kj=OIQ© pQD`2Ku#lL;[aln =}@Yl\Ib^ؒ>0xt>a=0tPњ/U\rr%5 +}mgG_|q ^%l lU\sF I^х* DӋj׽,N g(hW"`;ׅybTxxb%r/?y9lIim!.DbPn^I hQ ѱ= D8`PRA)ǃ1k4Z\^óU;M}5Og (á1% k 28}M>;B'r,D>_싛ӦUD ~ `^F*7v -V.DC>:v p#`νBQ"K?m݆#trBlvCc(iO H'z Qࢭsծ܆qrxvK{őG\_Q?c "ig eGP %#&h?q,ɨV9ZXK-S)opNSFT]~G#ۡbd;B_>\0fie%ygVla'x]}- |s°H 60n=é݋7`^(DQ* DL&Mfi@&}އ7X MZ$+<ߞ={gXO'g _WŖ яb_MnaO )C{| _[+XyB 9Id0LK[jQ=DIVԛ7+T/[cL3 /#]}Gl3G]Op(PùˈkeuKǖbHӏ 'Ҕ UvJ{ Eh- h=ovz[-K[&*2st0qPR О'>"3[ іtրR 7Vk$Ih+'F1 |)!U-?bzl|_]HQńvo+jԶ3N0(ˍ;?l_2"[J;70C"9X\+"O޳3VXT g*Aj ܻI܌j%`0\zuXgk%ӷ:Tj[(VP= -fsbb2UDѻ4T#pGwAW\k cϪ|M(sOMrpGbOu?Yi\]%RŎn=.FsטGt+-h se o̙75g0x:~|dLg$2ֽo\ %uwP]L^;*#ogQTƮ+|̒#rA޶OtIGP\>5e,PFs_nu9BCJoV0C>^~C8}d<҆jw$x|VWRx^d_ ·sBU;:!Jo̞nΖ;YJaɼ5}o80-%?7Y6 s?34Uz݂͖jԧGZl޼ tKʚ'pOZ'_U,]೾}ZDzz[Ƚ ;PdǑ׀wMF!efJa, F[]j.ER`y}rYӁ~4iI.VI4(^.11׿mtUSUK'>J(  5L[9^V#na>AIdLjYZk7yq֓$xBB.'v eo[7&OwX$px12/e]@3n g:z5!ٽ~^eBAcLFUh@d:,^(F#Lb.r=8.5n2W^*ʒ5f|6g(t atIzL.8ېKf%FcJ~' ' >r@)aq@.a;ZF[ 0t}u0'/Kb{>1' >SdV=iXR Qڲ!āށQT6u`tZƄG> 2uB;|#V%wW?e*^GD>` Ï֝(FQ!a޽)9󘽳ҥǣ"9LeQ.iU _Q~%8&N-S>ApqC!Qp1[[x~}-ӟÐo1- fiuG9,}߯h/4k+gc$ԩ @~EU$;S91o;>Vc-]~N>[MmHKDU.41t PPB?Ry@2@Կ\ k<ᗉAGr nL95;-YUX@9Ō@stEZUE,jFV-9d݁|H6+#q "BE;7dD?^ApŕPl|9ޥ^Xoc"E þim)6>Ahd"hgz]9߃綾q=/Bf s`t>U=O9YȪ3P{ GS. {d]Q]GdibQM'AVRq>(DhN)S帾;W[۲Q1VZvRH*[Xrr$=Uج+4r{yh0)3j"Iume-IwB|qz uSH WF[JԺޜD4NC4jO5҂^AtLM+_DFu: hm'1-k}wЩAIy<+< [tH WJ0r C0uJg 4%u89/kpC3xĎlS)r]:u&Y|O;i44O_*Jwא !c"[Dm)ӧ?zL>G|삇ˊ~)F{/͟mUi=]pw"/Q`(ďuHo$&-]U29φ ˾ORx8#PI yZU 1>MKWƱ|M\.3D9kAfBoQu^ZF&@;x0x| Q5eYx@i=rE^ٶ:.-YMszš{`/zy\-!`P<,Lyfҁ;N(\M[yЗITiHD;f?Oݸ;*a@>d~a#x {P\NhXA)r֑͎a?1fUL*~I*>5\SAyBF}3$Vbƪ''yj؅.`Y }=z=[;*,Ӷ&zU!s%^2nN~´cxmWb(͏7_7hGC_%4AIP H#(3&لٻ 7͘^~ND#F矙"`M ^$? t%REab݅[em=ˡCGHymn_CA[qPLvB=+V(#In&~Oȴd=vJ2.6g뽺Xu掘j,Aٯ0Uk o˨rgRUT2X,Bx_f-6]3KYkhȉ:R9_uEfϵ䡶nJ '[0vVy \fLG"k( 0yW< ~cd3J%?. |6ZRy ];3Y Mǚ+O(KoRHYÎnL_pSBqDL;! B9Iϟ~^iXsWFۀf %| Zg 6͖YV]>T4@] r4.Y1ͻ`o;F#soy_Z|0E[{Sc";^?3"Ɵżs#]_V,z@eMM37 ҡZu$Muہ͑2^4m'X~ eha:s Va>_'ˆS((2ly]&0(Y\~a,I@SC>& B@aldpiR`74T{Tǜ" }S;"T5!(٦m1;hw"Mkb\(A?0eӮwZKP|7EM3;w:j'CuH 5k[DhRxM;;G/lKb{38}ke)V1ܐ ng2ğ?[zhz&#jaQ0P lMl/7Տ)WqipV7ԫ.F `u5ƷTE]l0y6GC5j3csh0#73 .^;sVH%ӱč^87بL7L"t!@Ɨa7I;+֓Sdi?xQV8?*EZ'#bVh LvQGۮf܏ah|[Pxqef2UYn9p躩aꢑz!?߯ld Ok"EN^78gYssZ52WCAWp^zF/Op ;S l_@W6m3 Cg}󆒑{˾Jd(&;W/)iZZm&w {kX[7t.bX/͇PN_ w`W0ycHovQjһ^#5v.~QMIQLpkԫI4,/l +yCY[dXqŨz/3u&xEIf S>=wjM-<# g9ʒv(ΤJ0NXS'vBF5.g;d sEteO<NZ@eh(M3@nPcI{sʩf`WcߊVan}>A^rav(tqmvf_˼IE^(Ru[aB)paцqdf+JX'XMYɩkXI Lϫ[$wdƶGXHCV.'^GHWe?3}+폟څ >_2$J0}/3n:Dž7;E=`j]6(,{=y=AJ2 85DgpݛPVlz@UYbTF 1v\;d^740L: +|5!dM82]9a# CWbs=uQ6D4nlI_onU0/ DjHmϵDebOXrzhy)ྜ(q׳:O>r[Y._.Slb, yhBL&7F/\p~ϑCfɲ ӌd;i Ǚ9.aUmj\i+k7% L*gd܊^1}ޒA}AwUd&͍ɆgekAN'yx*;=^I Ԭ_'ZdX4uYٚ`2gT|w'@Hm'(7Ȗ TA qdD=XN;&NaXvOgN =ȓ9VL [:x{~.ݛ~zxw|ǛḳE"#,![/^XܮĊ>A#Z8)x|N I܅3YOhu){?ex]5z򚱢J.ȱ!D"rKŢw|zty[RY%0h8Q!ӽ4u͵݁ds^ʬtbP֒ Rb9[ õ~t72Syy|uEzY.YY!֫!5iOoaљ^jن4"mzDp,Han?ݬp H|ڔVͲb e}C!3Kp]x[4'L|?V1r 0n6uG!=iqebBM"ll?iա`*~"jB@KКgBD" *5มׇ3u)rhm]ė<~j ОE4<6<M7  ^Z: v6^AqBd^AqcZ'ajH cwosi"A{ҷit}+Cb)OUB>g "(Rѕe;(13dدU2ƥpoD EU N2rQ4)UcfU`7 o ?0Q#V-|DFd T#c5xEBb84QSKC2m,/w#(7Z|\(E1,/|a in}8v!##}#Ј>߈JɝB'@LU/3bX[DP͆pALV*]@O _QGaLEZwݘR5#&ףu҂O >b~ci:K ^Rc+,y'fpV;z\7ES~$yq=+QMdW} +@B޳4?-il`IvIVgXo!lըū{`kyv})#$){ᖦ4Oo[N8fgBFy%)Vw4qM(0A2{Rj\I/#˾{2  w)3Haa|b΀AGSQ>@ |v/5 1{M$l!{!8%iYPO,G=Pl 6G,S8[s:\P"M9)7 j@J,ǔmXxG-Eϭ"<ĩqOG@tzuH9z3o1#Bda`[6P(q ۷}ڸjg%K:d &|@]FӨ #ȀOC/< So풢6| ?QP7Qcn.t)q1Pn/ߊ s+q¤|zsWBNO  e"~'RE [`ɶ+ gTjFVe1_h;yzHr @2@3 PAגda͠dЩ12ŋ!D|90S=qKnlʩȳ^FUG*HaR*orV BvPNz5_t?Y"mQeJHdCa#t - hc3y pF^~|&/c`p%Z<c$f~~O$f+ wMpoGN=}'.^uLgltπ{ci_w(-4 .t=R-XyG5]k6*? te-޾R“*ћ>_$vzrrF"v4+o* n𥎜gHw9E doWnK4 bI)ؘeXjd]ch(@[A;܊}z3f̞ŶKJA_jLri] b([om{r2՚ ;Maj <Ɓ:^Su3yGY)O UDc>ty%qmWJ0S؜0Q Rz?6m_ ҭ%Ä%<JD]'Fo= n(Pn963< >M-C^#7]T$ м6~2g?7!B'(%gs+tC81we2SP \h~ ,yp^6c3?qjujǚNغ*%QT{P>+`ڱz h{EN},TP(갯6p noH*-Ii*ܐ̖ы6u'-RS# ݩ'}c\*:o< ѹ5]5 h$ g^jze/$~&o9o6r9##&wHG>l?E\l\ӂGCr(0FdrtqNoGc۶f .qܺZ-m;eS倇Q"JZ,lDX<^U%;ej{$ؘ<-v` zQWmϘ~WyNq#*؊PK !f}bQ;fZ=ނM 7 yB`-dVNݦi&<(rMCN 6x G0#D}nAyF05/-q5z'szB'GT^EH@E+}VϺ=Z 2)4LM'i {nѨTH<.7Ѵmm<2$#5?.EYgh0х/Qzq+II>\,yؕnKTIߪ/BCācDaU T@MѧES=v JL(&լ)$p3 re31kؗjF1s\B |ʂ-rmQ rɥk G(<Ň 2P3CrD+,|C>@=cN]-n#e>MrY]u8RT箆WbSAs4:7;<)ò~저3R>,y47툱t94 OJ KZŸҡ1J%S=}Ơ`;x3B^iQl /ЛM ,/U8~Mu"Ir,_>T }]XlK)O5-FMRZu?s Xš'*g'L̕&$^kWr>;X OmEξFJG&s-/(jq.: Д{]0(F)g(/4@yҷ̳1DGjqrYjP< LL* #&Id%hl 9]u4Z'ytZ:}ex` y9v3s5`)YJkS2˛i`Ȉ] t"z5U2$6TqV< *hMil¿;-^)3xߛ\ 5DkS5v\@~ZoPqll[y l]cឝdcEkP[sJ3 U5ؓI~?SJ|g %`MZ-T>.̲<Pl Wf71RN3d?u,_LV63yJU(\g'h^$D{0cPߥPar5sY"YcIx <頉fM)4<_G ?!9PmaB{Kq7!"ChkjbRgAj,m+ ۽(XU&VaQ.. ~_>,@/Xv虝 WKYO$ 5d}} !eNٴ1L.1pإ(G@CS2f`P[fR VAC|4Vc_nN])r汸縢gC21#'7w~`-ҹ:0E{,%wGH,)o:E)ԇ)q'B- +Ś3=-}i@$ҘtIL8n|l̻^$[!k`3ok?U',fjB cVBG[q?tϓ- ŏ77U3cd^D ':Ne$v >GV(];vyH^rJZ5jHp%S6(/؛^qsa.lt"86pfeFI'-Dn" t ?ư \V= 4:I8Vwt9#M'&lzuѦN#[g£u-ziS|+0i-Fxk#g(ନ&VFe}Y -P@7 LE%`'ti3Yr`q>c&큀bYϿSfz"0-9Sєt"48p6 7Ӽ!)R.PaN)zrދ,{>ȅg.h ծQ&U!XL)OjW5H 5 \RJnuwd)h*z - ;O;I]Dja ТEi]|-_p$܎t10_^z|bL=| {ի%6/G &2`0[vq*jpV?뺷~7ۧȇ7Hj֢?C7:SJF̤=lhSNPKEO/}P2j_<9GH25G^G][TJuM#tji Y?ʛc?wF[$uYƎ~U?l wd"`Xɣo%\#Nx,w!ênI3t+)k Pie, v}t:蓛1GBӰ5R^ a 투lΫ}ԨU8d+E(zN#Gd( 74 U{S^c#)a؝r$HVq#s[;# Hʻ8tU-5Pql M``TC'Im3*qaR +>!G%> YυPPh~32lq/ms /`?+Yxoq?˛xB=KS§4M~"b9טV{7n Q2Pe%6@~m=R%@+l-q(5]5l }2C).֦ݩ:(&.5ge G>]t5 s./jS i:T]mcȖ=Bzƚ!h c68_Abn"?gg:7uoZ%vu/;e!*Q=QIfy!Yf.o!y*ԭ$S#8i?fmQaҷgT1M$agG[ #_0 fۀ(꭭->2zHj]7De 6|Kxn/rY@Wda._7}:?nDW_OGALV7ߖ"3q*ja!m]ݬ3Z{nB9='@oCR9$Q]Y#~mUzKt)j?T#@.bceB<*,>ܾ̅"+wVb|X 0d,# g\'k3`W͋0L M~FWt4w[Ts꒚ܖ9d:RRj %Ox=f6W+XK=a_ TNᜉzMkl 4 (0Vl[@Ax125@!?iQT&.DS)~9p{vKG󏫣z/yu%]Mjܿ!𿩑di=F(Ғz R+y^mK{>cb4*S*pmhE`^螤$^nG:#]N2#;0RH8_6gzpiv!nb6}M RcMg$ܗ ԇr+7P'MAƊQ@έ<$MT~EMHVA汞rԧgsny-)O ڞ_7胮R7-nes^)wՏgld g0YF0ޢO۲Vp'6m=?̯4Qu{p+6):q)r;5ÔĎAV"I0)PѱvJ(w:_\>AJ@/a: #._ȓbDYìoqAYvag- G1rT|fNJe׻FN 9VUzStRrYՑȏ 3*HW4bիHގ %VU G!ϭctOxJyߺw*Rá1MԮWqe͉i}-h\ n *:hy+T' RZ20oirM!EP W"Cm("x /TY{,A]r/VԾ!~tK08F׏N\Cdx{ʺ9Bf}ku>k^ICF< Y r֧*sj%_"g170Q]49씭CFbrR;z-R]^h[oML8Ŧ%SGD1OHDۿ^_k%M^W\[0X"rYZkMEHK.Rqtn=I mW#>aspfA^:<{JT|3OdA.mdhJ ʷХq K Fۊ5s-XǢkK5v=\fpC'6~1"o,͒D +?~ahz_5zNQR B79? ;1OslU^R僁ʻE=msD<#x.[}+_J/Zʪ3L7G c!9\m&} K#Eb3Jc2B0HG>RHHxiñ&HJ9Y{W_"u80ʄP0.9P,|ܛEeۦ24$љ L L1͕}G| q T i5d,4w5M ;лVoU 9O Dp0)v]}jK=ܧ`NjfP_}5nNSg)L%a_Pp+wyOVpA 6ڌb)rJ)K1k?V"_0; Ai~o˲b,%ɤ3}Kk]Ư/SfJ '!]]6iMoA|`rH-V:d6JU#޿˸J;-bWFUDbRD#ӚPf_ܔ䝔keax+)5&X [wm{ÞȰ3, ,6!|H9Gha*k BM*U^q'5 r<&LF(Fk࣪tɿ bĿxg~ðj9eja(T0WAٵMfND$#an}ˌ_g \[1PMócUAu->,;2à+( :i+}t pt\ %cqq1„e|r#~Nc#8)OB{Ź~]goəp*Ӗ|tyG . dP}Ew+}?G7wBMz~[j+BmaK\ 3nkB9]'2UaŲ,úk`Zn}6hiw2M} z%Uƻ(U_fZT$;lǀm&o'VSs7h _6v5rh}/)ŭ9Ͼb@U:Z6jcƮָZ6؊}k0҆F-@5n|N%6#:cr׶ p+xg{  6| ij1d<:n%34I2L2?!U'ڗJ556~q9i,J; if2n0lYaI ZWE%8O3F/RzMA;f#pl$Ci)0  ]e)l Z@GNoM/dygӟ:2e* wۃu}/}SQiIb޸jB^,;(gd!|fB)uIhc$V Ra:mZMTQ>`.(.:T[_+ǍCV/72:LWq[U봭'^=] :KjN h,>BXiueHB 7H.jP/}בB;bQ=kZ\h$wߑ.5m@2ZT?xm~5D2y F5sy`UΚ`կyq5#c?ܹ_*/15 }8UnO0y69LP`i9hw=meb;[䧴ǡ$ޞN;r"9qD/<ž'PwqAS 6J#H8B:b2Ґtt$sE~stJa yB /,~"ɲ9~Bfay@:ʯ,z8/C} y]S٨"%x.Ρ7zQɊr1^JhU])f n]elWz% 0"*WdΨjĐŃHrLã` f{i37D1Q-R]Ja/ZΪ4 XP%+ɲC_TM~n6ɽс79vD+'0fWUOT8Ա;ĀJ<.TϚך 6RNA kf$ 7fo_wZ%jr2I9mX ]L9F9Ib6xܳ/jv(y%Md/7pv7EȎ]h~-:ieg$lכyrsJqB.9f{nT*xL<\5yW 'vTNb9_K2۸L¤Sec|ĽLѦ#Rh 97XVxz'enҶ2h|UĹ@>9c-7RJ[~+.f^[/>#iVQ]n14vtzThP}nW dN .N͟ssHXdm8`3|T{8Mi̙N3h2mw*Ҙ]mbSY`adyk _Ve8B[E;^6}תc0.?(Kif@zHGZs?S47vEUyuL# }7i xru}-||,'u4Ē`J9]cgS} J|9O}wxH:QT غH9 <3(SQ׿zTF.ҸZl05~׋1Ŭ4-ؔTGLg􌋾f{5Y^JSxOURȽr&PΙJ#t-G;&:R! #Ă>%iV=k|l]dmPjȜ,5qW1 E#^2rww*T|"$|<θ?y X[,6yRחx %SqY`Yڝ·4aF @raVGJo1WjU*#F$1Om +@3. t程`'L݆mn_}C `şNrKz{1,z!h$ha=n"QtwbZRL Qڑk3unKWM (io.bUa2h3oxMmN[UG v첪YY#wGh\'hpx#HK!Hexb(dQ II$j1WU Lkj[\ެ0FJIVG *eU -t/s[je<œHZ1iRڬiTNJ\UKW;)vuyJk̈́NZќ~xt}k.V3H%Ġ̕'KcXד&׽3L}܈rޞWP^3x6fĺ/ZPFUIK8ڇ]yIՅUg !A3)4,~v1&f >9CzdgrE !/ |RtPB4E6Q1q갤 &gȀ6ҷ3ΟH~T넣?iOK+wuNQV Lwt^Z;Sӛ,D<$dfjP͝t6ҽ8l$ sjװ4e!!Z."Ȣ-Vl@XwͩN\ zڂW&GFzg& ؀"o͕`4ut'=/.k=y6e鋂_'*QpHm,eZWeub[x;#q8|LG6 ( k%fg>نlCW%wàN#[RQ`ျ 0Co6ƫFDی儆NReжC-MeQ*`p-Ŗ)FMݲIlWtr6}tB Q@B6x/'[7tCUqP9֗RN0uܙĝ%iu2(O93̮٥^QQ9a&|Z1䊆^ʌbWW_%aЦ2J[1m l63C-G\h%aNv&dI֍4VA.DqnWt) kb  $4 7- whQA<z75/H 6آ9 c~_. B^犋g@{h{>e%4 ˢIU` eMIoWEuO(Kvi-txp VO*u[/;ІǿAea^]h9j-Xe$RBUug?0UFa#%."Ă}ІP'QWBa=΃2ڱER_C `0]R* 5BX'݇ [Qp%fx|(`Vq&[ 'E0V͈)\pb5t̲y?@jct. ;Q2uȷĈQ4wT+aH釞fK v2 VB 4t.q{'=~ln1ݵ *[;(MIwx;DM\!3,Ts}<"K410"gd9LbdD3DJ΀v`C1GPK*dm*g@^y; ߝZt}96/_с!燔W| :&eL3ta,K˲J1Rьl{74pA\|P8vȀ_#$ F}o :qip!Uz@0n|cZ!+@u*R׾=,Ӭ;o ԉ-0"c{4ˏ`(%D*e_I9˅* vӖPi[%LK kDwtf)VAcxh@'}Ŭ-^Ѓ&]";!8;*cɛlj ?4t8U$~\H2N.; nz%ܕxAvY5WCARo;ԵJuKC#uזh|XAaC ܜ@] $Z4e[rp?$f2$(2}i$n9u tGh*p\Df)Cï D]Y'dž:E)M iQ0lFi%8RNYƺ GNM>l}Aϧң?2#=2S#ӊ\wnIpKMw8: P۲> qo`Zlu$j|`` W5Iaa' ygS7:6sf #H6IJ`gL.`;G)pRM|2A Y}DӺҡcu@p̃H*Y1S@nT,'cG醫[U^{ ,:Ó y-XM?hp!wWnKKde+[!\)G.uduܤOWy8Mq?yCpGLzl #<! \q>cU<z1&M‡.&叝߯pt]1N"S_ +)Cm_WUڋ5Ģ>.ö|B9ػQY+t0-Ehh,ni> c7!Jؙ$wjWΌgހH2֘1A1K.̈/kH=7gA*۷(ZkU*U`jo͆ciP]Unpeyp&Jᨛ+6<p~AT|e/q1竳 i"!S֫ m" ˫(e̩<ٷ/ -ֈq5.F/= IDU=-AѷHHw]' pf܌Ҡ"bb,w{{ßqQʟ<rS_'/wYIN;6s8k`svb ׌DMv? 넫aZ7dJUF" Bs\eSiPSZ Kp:/_r@sWCCg@ӗ xOzJiq =_r,bRyJ?ԤSóC!oo8Ixr;&=02+Xw7PW NL6@|C7@g=7CyH(X,Eu3"u}gwW}r-,l0(+˿kھ=82A~cII/LG>3y=q^߾yrbJh(Gn)LoƚQ=Uډ9|WW=b~93/'um0u1 |.#z- ZAR FA-9  gӡ6Nib} DDNS% Sx{N/Er@ݻ~_7O~Ҿ{89:LB]J=m֋c0h`4UdC=׶BhF$.;FMjTH<O*}ACe9:P& Dh`j-^}$QQ6z|&&|Fq*p%^cagע.UǥkhP*l}YvD;0_mRЋxG;lt.Fzrd0)c itDPmiO2֠hw$a:T|V*2*ZK&;|8 dE̐ҬY#zMulwrn8YTAFx ZCdNꅙliF#K+Av?ᩕ-&4; )F BQ7-(#ON"sWTV26ɠTKEn$"-NI @zCFg ʉSW.XU6Yz9@ف-$onsQ(9oo9Y2XTx1DV \4t"dvs9s6>t4]pm(hq0]%eh.G?NO8 (NqssNZwylo &edG+l JC09n]?7M>MAp&s/M4?0ߊBJCgH~.9])#: &RsXeFaw 6R`Af\?fhCwVB].׬0"3,q.XjbDE9!!yQ{n`I[esoߠ/f [$U뒃7T嬔ũc+4C{ 0:m#;B`.siz8qSU vba0`*`ƶ5O0\\mv?aBag·Haf#6:Sp(`f^sQv؎-pU)h̑X2e|21BжھM J5*jB'MycOE=d&nQlOec"r\jXਥ&x&KW3Ey0ӿ9vİ:AXzfX] )=ccS\-c(|y3Rba%6XL n~ ?>`j6'4GW; H䦲壉9aljWYEGa K0,9b_?J`2 $[b\!ZܲlϋrR:Qzv-1.RpdV%gm1ݵ PA~q~wx#[2roi7<׽ S.F9ې{_=V5HD&V D"<Vf*#&پv맿)WZj>D6#+ 3.0֚̀FfD}FUv{yyyvYbW+_{CHBx.9<=a(t-\9$=%qb40g$"/mbhQHY bl_*+*Lk*SȃH͚K1."tК_7?v__.&oo<$GP.BP~c#a s!d"=Hn gDž4=mԴ ^*Di箈9KL{{.nnHI? twa"6ߛaIYkbvv&)u  nA}E5fz|w¡ [L(6+m) HoC~?2#9gxywZ"wVMiĂ}=qq4T\(—b X}r!}úLd$гm6ȧ-j?rRXPUB 1EvR*S{8 $wA 6S Tk?A6ad9q˱ Ξw2,'SdD:2nnȦ:~kg-&kfV,bɿizucv(iX YO蠲MEPiV S<*L8uD Gjۮ02T(3T}1=䧼(bu%PpN @xV 犨uy9mV$fT&bJ' \b$%SMt?8ziK>1MV.K N .vѳddn#%b mƺnzY;WNGסr] Is嫐7 g4*27Dʹ$Oƥ!Uvo)x.5#Zz̕J<}@L-':3n aEQ) S4E=ЄSx.֖z> w`5T x0IAEȹP'#q5P-mgJuMV_ܳ_sZӪueZ69t" utYB3+FD}`ה CVB#Z|(Ѭ_T0C G=7ufT[䇧3Z)J :A .JܸFTCn4g@!*W!xj aC³,.$P><[ȰO]ùIΩ]"1@d}bj.J)'0" r. ڦ^e-`0~s!{IXC /?uߡwН'8m85Ml/ܐX#̢Tl9<\!}痥X|o|m/9?}z=ك^(ɁJ`uUr-TnPmގPn9*|"oOp\JMDIFGnb 1=w*ZO)[{2Rˋb%W27>Vpћ>|O֭^~PVSEq+OcH5jF~;ܨ6l~{ⱆCXB 62>jyL(Rh8}\lF|~N挲:,,KpZ)(=$0|pn~< y⤰i Ks$qؽ{?UI3HIZ]<9cn}V-`wX=~~Zӻ9?q^^ 4l/O~O3=1,_2[ "r8P M_Ǣ7ӂWѾtD!'-2ڗEXI5j%Lo֋EC BI8OuQǓ.f JfH]$CB^/ad`?ZsTya": ]4sKnflhZiΒ!9&- #Eώ+86yLNb<C%<Ƿb4;8nD#e- кnkH=I뺰Տӿ B7mѡ9t75ƤTk{Ndth]0C%(zQki7T}d#]1"b"¡xAw>5?>հ<|+Q(Anmx+A]mJrB/kF4Oޘ6ٴ2u Gzc힑 :+ƕquc6H:aCΈt=Y8'JqelƶOa*঄ RЀ.tԷW?dFniTn`}z$~iplrNETLPͰzFZU wO3aH0h%]4iF uoT:.f3BK1d<$ -q4Åa@r*A0P#>mVG*̌ihI#o Hh&=ߋ pKjeS,p^0f4@rƱ9pH*>qޠ;b|S"1XsP.vʨ ϔؤij4mflCEZRv~˕Vݶ""kw:5AV,7geA !{c`RB]SYf9p]: OZ ab5)OǠyNơe1uo)3t91uk'^Gqw=˵M4+$r$BC51TH2KȽӻ! uu:5 o4@$3RŚq%Pd/$,QުFVj.NwdCJ :EkK![qB7(m{*L؜.U _ iS/.b$niďtLd)RNky, ʰ#y1nJr[zw;u^B^xn%|a_-l?>x=EJ|}.kbh8w=a*%oË4 [_Cb7gٱ%ox"("U^Q/ Gbdm/+q.@Qh%0!47k"5)9hP. 7ݷE3zmnkX.Үjr_(rH,3=JLPML#/m@-CTLf՟0%ૐ<t[}*z %9˟*c$ u/te~"'< =X/NAU^{׈ z*ȌbA Bz847^:Nٶ!>yMXU;WiCQ00RyYG6ȵr 7k5HҚcS&cS׻8>!d<3سMv/VgΞ:O:`ʍИEb&z=xoۂ1hANG"6[V3|Y4k|O\_2wF ̇s)LƏ;ƾLx\- EVt^'r T908=Tk .C07\>U!N1bNj׉/8:,<^K 5+B  DLf%(n39Xǻ~js^'^y>S9ZaDl"L+GFjD9@"0f 䤠࠙3T.{ō CcH rmD"4A2zQ"=vZG`뱡fbcPP $m YqX.O3RA>J~Mdj^s "LX>!0!dA?&/hEFBh~;HVdS"&nMYOۗҷs{ xu o<6j+ fdaI@c)e8f| 2.`8C&} ӫ@U뵬ܻa!蛢]&9I ;pFyaQ!!'er,=) 1e[)hқ*tqgK$zsT9/!|h0dcC#N*1Ѻg#p1Hh;'v҅ E'to#*ÚtK.3C *gԍHp JeZhřSďIQ s U.H*3C}`/;<ǩ]MP56#mVO0Eg9ODcxl#j`DTIg@:XEXCGzBLC4-4)%U[u;?Snat$y3C5&k$ݙBL7Gqn_t4z܍xʖ?ĻVڎשJ$uAMM:~.OV κ "9{{>k,:ϕU >\9eJ8T8)!! @e]+@~EBvT7ǂ*&gsFio8DQE}骬,Ir򒀱3I*ROZ_08%00N>mA9f`{> GMcXSgɖu\|ˎBn>7 CJ%~4f'ޭ#٣ =N YG=>ȳFLwI01/Z3XEKvvTG/d@.jV Tt kARx6 ~l޼p<{PqUT*.)K@=^e6ϴz Cx#]]Gga$q |uFeVΗ1ѠdΗs2i<{JmTG`tqݡކ8疾79\Vs2] ީoV7z0SuavM\A-yux=mNxy`6)4 xM݇zGib!h"9$+ Ak юcIYߡ1K]Y>.(OpO;wC<;y2uu/-ٚXA; HD567Q^Ao]:6FfD7h*M1S C (iӑ0T&Qĸ3I>" {?׽?vɝ !>rjr'i&jt66kTip1ȳKo&l-5?~YƊR'`ez |-geMGפ5l[xl9zhvML-K˜5'MwRDUlQPSj~fhNnc:!1}:nz2FCT;ڕ%}ߖ~ x T( l&C^! R^1cQ&",0_qoI(n6jDOZCa t89y~{2km tP\JfcM̖%=Ӗi-tS^(:_y+Xyzt\x m$wfCfcVby|kfꉢ3tiP>cDsY>dĿZ!1%bVVS?SHTŗ˘5a3^(ra xpxyakDU~}lۏw&j3_ V꓌qPIw/hh= mohģ>joA_Uiڥiskv6Pr-@~2 )}+J0[⺱]|h}C_LyM{X"L% hq @ #\Ar!v] :JjnOFpaCz;L%\'=^6TE6#JR s7jѨWI n{9@q_e*@cgClFgyz\1Eio8TD'S?eԡ}%r:ȣc;yx,>m- lP)oA$ .Cg6#\񿜯3G 'udK@Lۇ/ -~zaRd\h]=o:`!?mޢĄTbŲ]6g}sYRM5n]cIIwՒZ>xhE.ljus3ޡ] lR3E [ϪbNL4?te8.-kc؅4̛ۏM`llx. 4y93F)pdNhFU /Ire}&܃9;^S.]Ct.Oӽ%m} Zmfbi0)h+ִrzONHa2Q/JyhwSX( JpLI(gms(2ml4~I*I;>,h?2Ԁ̍TN?GIJlu Ej@M'B޿]bg<.]5Tl'5같%|z(j8 IlӴsN/9!@ 1⇄?&Ca <\XH>dOok!qSAÓZxSzgvn' nv/#ts8dea\Q}ERpM0iVѭUӬ) c-t[<{c5M_SYwHܚY|ρ :?-StNۿI^g,e7D?'/ -zj qEy܄&mq|%2`d`\$ ]\tbr⩥D͛\5H^%#_xKF[K8ޠetoGbO6'v$'2UiVmg=3,ށԻ̃SINsGұwZ-:g%<.=+h9@lc "=I[>'%h5hUHeC༦Nl icy2!B Ϭ偁6hhXFeY_ye2Ɇȷ#~5U`Kl#E{/PD.pcLw7Ѫ_G"_Sz%Y' `uQIӠPMĵvĠA  Z}>͛]l뺋ۑn[G2έ[NlŭXVK|*Q g߾ ݝ b.(8VR]x%X~ASb{z+kxK]˿h0Fy Hz޼BxYOSNAPICG@d˿Un= +G:=`ϟ /+gIV]J%f #W<֏NPЋ8gч/vW*suQ 4 L]QnX+r\ d!֫(,Ռbͦ9ub'_&|sm 6!=; d(^Diky3Ց0AeHz o\0>\62~<˫PfQ={eMFz%NYPNc:d60v(\w6+&˕5`Q&hࠓ;Wǂv|B)|ɿ.ܔ(՘K!?3^) nHx7#Z-;k3Ѭ$)5rcwZ4od-R1$#YYJ qT~Y8MPY=;hܢЫB--jX]xdˬicVS2 YHj]>`)Ƥh5?ȶ3o=f23UXܣ^[ guzO-zċ5 %4$ jy~Nk*2JSE&w T/E%|uܲ_ 1+p"s5D<|-O@8d+ a5H3^̠$}GMp1ߖO{EWv;#pܢft_o{c/xK{f9kU{>)l~%̴qN ~V-,gѵxvQ'ztlj.p]N\A,)6mF3xJ@Sri$ U@%!+s5_`U AC 2̿h{dooJ'ƍjq00.?ކL` u|%hxx58vKI҄A!r|B'>NAFH:3B{dsaLᎴ$m)(לhO2brrgqg/+S+@/6? ˕nֲn$7~_&o\KIZrb/fWBy9аk ۝xky-i4 v"^WlC#$}⬌/'57nYcτKԱYql,pzVM헋Ki7/Io|2tTOQ%m0 !{Q[}jdz,-`<we7sjڷ _]]z d;pPy']} 7A&%yÜmra<2BV0mJ kӓגZqm\M^#MdmĖ!!'xҩ4_ndG ۨ+~s# Kwd74sԍ^藥SE4Rdl-fVYMxظc^g%a&鞈ׄbC?a~hf9͐;+gVI.N %YAaZG㺭!̋N'|C-[JZM-^gU%\YxKp*!P־L=Hu(M}\w5ҭ`R@ډcl)(uB2mvK gҎ˛Z⦔WH^$@cf5yrR'hOC@Su7\=h_c5?o)هؑӛeko-m״D@=~0k˕\ͤAp>b *4C#'> ޅ.`/"35Hek<ׅ~oX-pn"sLyڡ9bHa.hZ$>F0CUAlW7}$c톏7C^FUlUeFq У`ϝ9ZΚɭwMd:QH)6<it؅o>DF\4|7K)d5]4: <vc+T{VrӍ (d͋PոHoPN]oq$wd`oahٍ&RfuSd&1Uuda?J|gА>Ƥ6p$ 7-t8ڶ%& bxD•*}lM[$GxN-n~ratyT~=yqbcGh$5L݉WNEPb|]jF DXD#$ εQd/7^^UgV9Uy庒B‚[:HDZB%[y2w"u3Bl PczxCV3rg1A-XVT#~!4НO|So{$7CL6GzJJoq0xᖐ%FdCvᓻ5ڋߴBm+wo p]kѝa+ 8OxcBɰLXӨtmdeOYZi bh{ 1:~v\}1ɛce8(DGvN,>D{c.)|Ng)S8Wap-(, v#fv}sA3Dr"Ahw=x_&s 3 ⶈB 1J4yf_vW 4:!.\~ 7)Ր/ɝcp$e ѣ̣F[q Դ,##ž 9о;!2>7!ryQ6*S y1jBBMCUz͉[]Pj҄x6_u8Yo<'%$~ߎl^*wHlYMe2Zr j%2ZCȎ˿HL!ZK{(lWVϩlpL{M޶hǕ|b=!xտz_$QmD**Y+ Ƒ?DįS:/Op}9rԻLf @EHF΄) hV~8 isjRW,!M W|Sl#9QAykQkf1.f'3N҉."%zJZl>38&n^Vf""Œ ͺoªj| ΋u:`q`~<c0w;ph`bvw |wMWkR`E4 :&Go%a$xG/GЯ5`ZB~"[Gzl|Us̥5EBvIG{2Ovy5 B_UzZ E@PRM1j?Y("NJԗk[N )>gbj='@Y'A :ͨ~ey&)t/wjE fć @OFzyP)^A?6.IL[ŧSca*7.$Lclfx  ~wl?avպ+5F/M/#J3SfX5/\U r0eb|]f zq]\{w\;us,7AP9V"M{, k"YqLrSkY(ZzxCnNBHp Y?Ʈ'P=P-daM&)] <*);EIKbF u%`N[#siα%|AV)rԘ([+8R% 6j6$v461TzU*՛{#Gmn#ń] 3/%7ukcNG>匏轊e*9sJ,J%WDGg#?H,WDDww=8c?Qk?mDq_ULv Ć*\b^, ߘ 'fv?D2O2sK["DrĔn&j Ѩ!zvRl]FK%62)^Jd=ұvֆϞCcEљCi;/`wduuHӊ=ZFqF?OuUW$'in ߬[j0;Gc%6صN#B:KRí0sdǛ)-Xv/^c0iݰcA1F$Bb O%Xiu{<&;J;ʋ 9ェBv D]gh\6`k%PG`dk|+[\j@@$3pZdyJMp# iA\/7 ۠+Sm|w[W*c^%>/jlj+SAiJuCfk,>n<8 ͮdϬ`Uw(uӀd!' ؚ8O 0bsa9ݷ2fCktzE,CeLx(Ts[MPH{)x?}'IW$,.s$=-SRq#`uSwUEzk>{1全 5?|?l_jDղch wU;Φ& (]+%;hpbIT?n5VzFk\AɓN9,8xX8l FGʝ$]c΁HϕumPY<2(7I+fluGXi;7s^ POxz '8Ob$q|}Q!`x|kOdY2 ;)pGՁRQ N`.1Yb3L+;=];*W{rC!4Y%!tBm/Y-k)?9Ê681m_C6c=ѽ*lQĴ{U\{\[I-([C!`]ub.3jzF]Zt <( KptT4OQɁd~X^>zF1ZT{2m@mFd;=wh0˓X!c <.:Ga~Aaj7|c[=I8#H-5H%N|*Hj,9v/rޖR|Tj5- Ɓ0\f??_t6Z`bvMj8ٞqn,`zJ={Q$I1| ]̍ [֛P$Sڧ{^ꗛ /<[3}M2r喿BYhE\"3}̐r :Ž/d)d$|79`Hf0J&g ML\kF+c%@Ⱦ:p.0IY&e#.kν׼3^tU$ǚ1dUq{7k:j(G/׌p3,ćxhAwnRоVm${{PjCƘЀ&[({c@1 X!@]\gb璸.B)S%﬐L^~{olr-ZCG(G/JR\ ^XL-+T6UX~0{J'dTO0ڤXr ɥyR9UmMY&$!Ɍ@{Ԛp::Nq;BgCI!{zV+xL*1 cç]2%v9߆ 1CUJ'[ ZxjcwȒ%M[a36[>%zgvYlFkJҘ$l߶z.#@wFScE22rںo50;+GuFoŔb*}Gѵ]9# x TYYƌxW]aSDv fh%ö:}ЌAX6ӜU|^FFCQaygA^ 8l P$Zu6+ӇT# 3e,eTF Fcgi'O{sjpI,`yH`t<,3~I6T5(`DJ19?w##½LHMc\큪b=!!vާr_]5{#< ~56exΑ]wT[QE;wDY߉H(s 1fUgʟ屰|T1emzӜ8Y$ޫͯ(v4}(X gpR9Ew<՞cHH3* JץПeCi[u\q5WCMspN5.;Neq6ieu"}M8&.CLtu/G®v ɍ9JH Ju]O]`SڪdP =Fe0Ϫ*6j!ɟ#5ŏ!Də eBh7=kv%匽( *AbEwХ06hJ`LR4/=+6sY88:)4Y &9J>p^C އ!6vBNG -Rط>]I4HȝEHC~b 6S(jP C}~Dl׎l6ܿb]5J޼Uq{Auo$Ld,ڻN{W;UqcHHF/q[H7ϢfO=Bz^OթM) {TfSY5 &G Ikϱv;¿W^<Ά/2 yL{?joUFkq , .k^ hcjFPB>oؤҧkR7U6khDs#l2; 4[ -ɋJp˭0-2Qo8Չsk+ȩxsX\AA(t\$\kV3f9 Dp3"`%mbHP5e*e'? p-C? rԬ\ׯ梟8~o3Fs(TA FcB%exfb ,sodg}Ã`ZLUs}Qn&53xv+c +cI? He  ꒸"ڑNB_}?yrZCQ`&!NoW rU30F3 ["jB(NIכRH,^ E[ lTCB 8_pF޽T,Z~OM(jDlK*eptcSzkpG ( I\H`է#&G0^^vJ PBFJvO1h\@z(7~iAUU׃)jDŽ7@+L3n߈QQV6@"T(lZa:RK"̟J!vm%yBe* yt)fy!FqpkP>w2T*B40*D֓gU˶PB*X"?f* FxA%7oR} sMt1S?sxv[aPcNJL>)7WE9bR,[Ap!;mH-1#Vn'h2 &)0G!%mN㉱gOLg ֻ!z. ]Q2Ũ3)R NGo.RrJ}Hurl79V5Q㮾_y; wƨ 6y9 ɪ@O[sYjCGf=˨L wf睎J( Nb _a9/2B,vLF6pjȌߋ9$aZE{8F-sQ VL@ߙ1Gݣve_Ľ`nSVHQ@sP"~y`ջ@9zMu7`j)fbf5SnG,5Ex֢U|0ZtI_e>I,03NShLT nVjқ _w]ÔGlr6b5W].!ԇ-!@ S|g̍? F-3gQ 6I?e)OW4qVj[0Xn[:' mo9|s\i`e$;1z^s)0>k0wWnǸ42eYO}=AcT$׾[:N z=3UU+S%vܺH;*]&HY#X# gn M64}uAݵjaӎb5;fqⴇ-mAT=51(8FWP;C_M=ϏF\/Ae/& uoyԂJW~B a`ь`vFT hs=B1 5R'0Fu=;([緣9Bιʃm}6?W4b)qs;9.F"a"+̆M?cM\9X(,VF(I%+;-h AOk1 n=%j0ݿNQ7r~/ԟv\>h5soGxÐFҥM݋ YZ$o?' yI^rFZ-Z "bV#U]hp6 gQCi\D.z&Z 5f͊&Ӏq0hS:8߸4>f0d9 pcmEcw{fzuI1:sNSBU^WxOE(1gy-Ǒ^uދGKU$}g> =/%.^ҁ;Hʨ4~[qu*֥ZT=IFTjPYn/#++-XL7 TJzvY2pZ\W_ۂ-&]REvF^=g;A!dor Pc d%MԱZ4،;tN.{m ӺB:)!'WQ>nikt,bNTΒcUz-?Ksٮ鼅/ժ`ex-#QOb=eNtKjGJV;8A!d}Q1?C&bqe/`vf/BM)i "[vqGz2 G .t(q UؿMh`^S偊9lO+%~ ]Y{?`=צKl|[fP4 :1lGJkzC>zC\\ 6nW( Ak% țjRK3L_RP6md[|PH!Ǘ%gv#N>G_#fxb[7(^q!s EoVϤ.mODTs5çwh#z(i*@wyAqΔvtZ,ۤYv;iH5e-E֖v'=!{oA?;5nRE13u] J>[kLVbpz0]εa0;(tz<}(vZ6% PuKG=%xa>TKLt+ > tۦK I q=k`.|lC|mM^Ù5[z~^HNg8S;CppA 09dC[J$KpsN?~LpxHu0I< ڴX!t',FBwz4Q ;' gi4LA2ίx"ĔǪsP7OwBa?(3p%GMt\bt4d3ahO[z@bc(N Ռ~ڛAE$W_%>aG5){ Or[F |X{~R\t7>P9 9j;!rB6ŽxsY6MqMl<6"4ڇH7ErfPyWRO7ДobœoU%z^5Dr_թ# 8mVvFg€u?aQ3URh}4ySvN n/e޼:!?V-VxZ{G͏v^H'"Wh- 1a;y<:TT'⢐ٳ&|,; $c3M @TlSGwZBOTDiECm٪exGg>rgU-ʴʹOs"kd!r,8Wx-'A҂)k3`R.98j߄ߒfozHP,蟎͜'An /6  Di"*qZC fͬ>[^BU!o*NSKO4u>F~;ZSEE/DXvJ- \4w*[#34` C0[* S/12,X?U¸FW#}Nџp\kTY8hH;iX=v_&]uZyS c\ٵcd mK=/;jX]@[Ŵ|_oOi>|.ѕK;{9?GOVZ)‚[q.|z,OГ FwϿNfY׿HyICdᢦ1dB`4m #r}l&4b=1Ӷ]bޞk8Ne_NրL/Q-(?}Kt11VT.^`/[1w!H0M4_@B󑆸WKv& *g[<`d#٣R~wEG\2ІkYR6jIp$|E <` Tvi[TQw5𚖹) Tߨ5ӷ%3\9_mhK!܍d>Aozae,fsHL,Wcj?CZyGGt Wᾍ]VDp[Wi79ns 6Vǜ עEMkC鄹n3:Ģ=N?ݘPn}Ww4oD8vx.~d-$jhzr53^S֙Qjŕ tz>mr-58h>uaѻ:Ke+-Cת=2+ fWJetdߞ ?Ozyl|ͮ Gf@ݬx5iKt_NoNCEmE}d8Y/u8jlpe^w1ɱ Y۩@epmӴ=&A,&1n"x7 ~SыS;Zd!l?4B-Y"W|n&W%q1f/g/{ZHωB̌L>߼ .VEgf3Mjcv?بZ j"bwݔZ/SfsHO]BQ c Jc@dq8IڥL+/ GdR]*.5)] ym6[bK-sVtɕ?ƺ~kA_!v)1\%oty7>sfG<8>LӮ k&ufΫC٨c`j)T5oS{JS-'C=Q%růUaXdBSj) a05EwvW0%8YQE^A9iVŝfK> Zޏ:1݉톔tGNU~ rgO9{†4 ,<C؛C嵕(}'',|՝?#k!*K++dU} <ځ:~ xо9*f/R'ѣVC)!vul/hc_XDXyMp"J:Fm'* tlaSD,?1n^jhyLqMX%pizM|I 'UeIDi?rVиLEe-j []O[:¬ ~p6-J@X(s82r^l}np WݨsaTzKmI jw_FɤKsa\-mrZ~ЩrԱQ4^<9<)o5:s_y!f}O$5L59Tچ*C@`[)RZ o3Q|h]>9 }K;jӅ5<:2X(Mf[u4"lXz@uJ"˰ֺz/D[ <99gUZw{樴ԃ;Pvb{FN=P?`y##HүG$#(`Ğz _\xL Xq?N,]AE G#CR,5#eW/ܶOW]gćB;)´nd)&-RUJu)w0r{<2-)t(VdJmyH3j%"sChmppvSD[MH^D8=H&neZ@ q¤^ *4t̿%8d nv T |'ֿ i[P<,o''p?кĚm<&Yp SKyT=]Ɨ=?``wW' bxkPLHgGT'w&s8g㺵W{VazGW~ֆ*I0QA5 x-OQyAS &J[sH}TI.˙FlJ\ Ѫxgΐ2?Y- u5Jef@QUMF̷L!r ok[h`NIMt?:d=ߌU%U]eRox $Fx.NWhڽL7L5 06 :A(\^R5Խ,j^t}$Lx} i K7Pc7T0P-&SrFrx;DK=%&)PQզ~ zM'qB^uܑ (DWjR /gyZQkp;$6n:2Dt3$fZ2eX iNio7dq uo BQt3-#˩Ҿ2!_nOAK{#xn{ G=.=xʑz|@fbHBBP X.P|J]!-6 d̿Ἦ5&@3$Vgϱuq#ďʉ^͞Oe|JHv|g~&h;Yp:,%_ʣ ~)Os}J ɞ SN}dv' c, lsɝfG^cK:DSD@+NAdUKL, px_*} Wȕ-lQWG`0z>YMl"!tj|dh0$ * iJwn}o\Lz| Ҋ/o23-0-IEwΫᾚOߞqA14x"54fϯb;SòE[py`ѻ&al2_ns(LW K՛ -!QŨHoR,(6%G͛x<&8=aI\r!O/ [6K $tkl)CJ^*U9D>AViyj^<:s~V,UE:[;lJJJĀ>"XO)tg$P+6ۭCtDtqrzkZn`#Z|Q.ԹE^)i(~M }wy4TK,f y~+zg=֞; oa/g  )]cmKq%I _`azC&nq7/.g9,G2H!H+n8YcQT'IQw|^ficJtzMG9Ra~ cQkNwf}@8Gڭ:3MK{ j攍Ivcᧀt#JqF ܳ$Ɲ)F5Ayg6-c>&:]57l)SS٫(EΉ%?Sw#JÖ긳8yx|7Mvt[ u]BM=`3P;Q,UO[a7;$/}}Hċ!o7Ʈs4IjwWΘb IC] $S;&A׿V;ZhLYۀ_˦yziqtZ.tY1=pjJK):yÒ=a,6]dÁ}fahsS:R1|$0W:8{8pXRYhf&ZYifhe39J| <(4gq{,ka8.T$A/u'QM"^u~SsV]Y}|kH~~|uZ̪۔C\bG,|w-2f~j`YW}ArvKDn;hNlsNNjarLsaӭ@6[kJ90e0>Wߒ7 y`,}[3'Mw?'&ÿ3EBT-eBVF]AI|&$w?I .&Vr> 74ϏwjPƤ1&hf .yZhP/'ۋkqYV}z#9})%"q 9Ob@|C|w = |\̥!!@:u=X{.E <(.CUj(4A*N-w{S?B Po>ۓ={6޹8eZn.rxtobL L{.V! -ҋZd7Y2S~GUG092bnTUZɲD{M8qVD|Vp [c;3O@'ʸV?("7f1RpRvttqg*CXY <'$0dfmގziӌQQ 2G e5B*﻽>|'kd<\b#5_|m?G.TbʿpǗP$HO{{Äl1oqcAn=<*^<#р=g#w ~ vثBwC!,}sfux3|딣Ĝq6Qᄜ ŀgPHpDXD{wpĄ=/AC_Tfk^2d`p/{7]Jt$E Kv5RDnv3r~X$b54uc\ }aem&8h\REFmP(k\c`GEz"(ҚrSnl:u]l%Gj[l+EQ?FgwYST]$bRg4=< jGk3%ޑcYtzFAb|-hf`_%JZO8t$H-  (l`EkHms`s߭Ȥwc|.xv0\cآὉ26 =ǔ& VBHxHMPu$vk]'bb'=|0@_"SCE)n@x܇$m!K"IOH3:Kjr!aP5zM48vim r؎ud2#SIRgGɝh[~t h{yk :ƿ(ZS*vCQ|[4C $k rƓmV($Ԕ 3>"# fyEWdžc%fg䌁Պ\ݱ67l`z;L D-Cn@C \Z<>SbN@AS;§T)9-:3:R17׭|#`J>cyن6܈5۪IW1`f]cYY# \\\?U`YsL G>s1U4pz.3\rE7  n#IXosG8U^<QihZ ?C!\\A-'"XbMJdOvV~-KP֦P Ӵ`)$~FC4RqkBAA1ƞV'j&:|W^}] TFnc{AE0%~vSH->Fn ! 9n:tv-U0%k$^,H݌d@$A¦ r>,N1|# bc8>eCh#:U45;;BsS?', Ɛ@nIQM*۲# (_tQXgQB'S/? D)=d֪l"_HrQPdMG*ۻ+Gh }_\EK}`,9)ЩgHf7Qx cYGIxVrj)dCH8|Cϰ6,ثhUFЇi./1Zns(WK5(^; mw Bd)K\=)"s#eLtD""K"{^.`@x :RFO>knSi^c:Wվ.ӜQ#WUӂ;,'.#oa9S!>%\6806Ur!&Ccۦ .#_YH)B2(\s2% |D66p+5٢Dy=W$UI*-J lw ᚼ0bzeP{)AQ&jɚ)%x/Xs7sCn K~ޱ4XΰFOeW[k)"Me0 VHZ {1_H5'5'a2O"d;7%-2WPj^pVS$ⷊ<*t7IeKJT>p>dn+Fg]UBz<ȭ /lU350]v'IHKru ~~JgUςx6ӫr4h!4WkYح"{"qUip; 48pi[W4>Z 6i3GO(4ȕ\]7 ~p\_OnC{JYnt %x^)8 3i> [W|Y@gN 6E"bU@[yxo^d"UӼ$KQ҃`1o@m v S1Vp#Q<"Ntm_^)׃T; ^z[6S_^PCSbM 4˿yyeᖧvI(cAis3;bLX1 ԲvKRӒ%{ l(t~pTW?#lg%Řy 7HhU&Aߣ*#pS'FQ"1"wţUot2$YN2ѣ|saBH[ޢ^(/V,|9 zlfdl sks38QPpsH .ϫ~6̲4.ӡ zʈy.npqOɢnI#̌^_̷}ap^7'H]kr :鍟t^39ҕ˷?f$LA|"}$t F;y9@sEsZAjfsRZ/:]ݷU.?E%( Rqv~Ufe:(q [W$Q}M>4ٞ<噫y*vI)nx+Fryzn IN\]zjV 6 7ͥI\u=af <ح@R$R4cphnCl]WAof!+Kd/X''E %EΨn&d]]= xޤpDV~[_*D ÖY=Jߗj ޳ăuJR܀÷=p4"|c!m1bt"qȳ0p^77|vtu(6Bp3dRg]f͌0߈ &9#tH; T tf#uk) >C2H@ֵo}Կ $+7-+SCL9<ڗ)H/la+q|s̖hΠC牐IZڸ;lzDЈN1&n%̶a/E>B̖tSךMlяu4ɽvr4ihN97 CS 3Ɲ|u"^#Hka}]bl5t+$]A>3}tj!u!J6H8A7tەʸډI8j;[ŀ?uIhٚBԱN-4_L} H|oa&+eݷ;ؾ9n.2̏N4"s ?i P_UMP)iMr] "5P^H\O݄Kة+38 "=fpT_,Sa gF'<.:SMSoZ+B55X2{x 1p]Bdo ֌Mށ>Cȝ2*BL2 29\_ YZT|lsʾܖaS7%gpL E 9:,sRnYz [ɣ4ݭGNzcH1.dҳUQ¹_xB|_m_n{s?-% 8j)2nQ )1xCT&"C_82+0(Zw$ұ# Xxa_e^ڋE/ v_xpO˭@=L\A亼Nc7n0A">Ut1uq1!~36MAi&Ƅ+/Q% o^_EP,YjS"uw,\nBw u}~3"հ,~5(Go1kj-u[Jt)\p~"D@q>R!(*p ]OB= \@6kh_Deg'Wr!M˦ 'ό!c8ܢ Z1d +!t@m=1>$g"׀T{Kӹח?j"j2"ǾݶBSmNՂ3 Rg.KHQS 4 ,֠T FfVLQ(oFգa4ڬNMN&>1pY A8 q" %V~ 6"E~‰bm`֔o?d4JVq\n*!ae!5ȯ:n{NJ";,LQȼKΡ-+hOD6?(qBo3#a/Vr+oԘTIlaMQ2 V̘KDш]5Ld&Ydc.r6+͈'M#'uΊNQBi԰Q)dv_q=3{V*51FV'ML{sVf Z*ʏ)JLYQ{P\v10rߵ6gayOs։6+xM69{Bc _Ixn1˭phHܣGq87.TQ)+Qh5ްs(%McElYO af]wch3S6iit u&1X1$[rVeӼRdF7ji&:m7>y"}"ȮQ#nwHKcbpd6$Rpn# N.;"_0TP$#\ՙpBt)m8w҈l{ۼ~R9, ^LC„Ã_ Heb"Ŏ uaR˛.j`*P] mawDzIesN#M/,M uJzTY|z^M!,LЖO_jk TgtIe%3.qq`ܕR5%!ꪍ"Wpaיs|f 71fkŝrA@`Iͻy|8E:=א#+ʑ1u;¡FW9pPHl)hqn"Cf[gbOLn)ϊYGMB\Xݧ3< !POvrM"]ݚ IoBi*iԏ4)LmWv{Bn BVka"==4NqjySr}|EAK?ޱڕ_r ".+厺zzP XL| Pi-Q=e @;Jwg|<\J?DR9A eL`ɇ+KaA,=iGi˨F6cbIOP ˻ŹZ6}"kwXi]cMbcʙo4@irHV}̖8Ճ}>RMGޚܱ)<%m_<º6g{W*З":+x/x(9`*Y(k Eʲ!7sa!0#J@nPUrhXKZ+`>̴^XJޥ5a=N'z ei Ǵyhĕs뜑TfI}K<ȀME\U, B.S T>4Fv8_þtP<lu8=ʀ+0ɭz>:i|Jw aw[?z -:IY :_o j Jul8W Ǐ4fBEEUn7ш=R:ϳ2L]I=4SEwH,9=Cg;ӭ[8EMN<1I`? 8Iٌ Wc~@ǭg_a'd6Ջ.WзBv7 w4N%ϐG 8TAOvMƹA '4a#7gZWY4iiT`~ >sMC?-z5Pmb&U[?5v5A#~$aT{{po#WT@5u{xa|7igEsY!naW 8}B\Ok6e lVpjيB썖ӥޤ|}oY<oEVV۾%@-ړ^@Auз55UZ44k uRwh6=n]= ]j Y xCǪ:+?ClRǞ4%pk=3Zk ]?[[&675ZɓCBp8UBeUЎwx RQZiH%  E_K68\D.$Oئ  Eb[)4xE|k55pM:ݐ_) *#?T$G~clEs0 >}U:]z5AxE s? Ӷ Xw=2Y?EA^l"`[]t2JTڧk?vţG#H0xhrD3bi8Ir lGu1@~#Q&p I[#=wT QLa"*;`& FLi pUMڠs2V0xuVsT5g?5<ʭ5ZԪ&#ޖ#{ \y!U w R!s Vml0e I&uǓwM#' 5 9u!֞lkU&[\qY}gpv<̤ LK}NgyR|+f"QRb)!-yaJIg-ЕZʠlWX̠urmTv$?ar QBzʤ+AE߇sp#k v=SG-_-?x*poQFpV㱹Ȁr;(f Ec!h\0EKHvҷJ ȧenxђ,'vn{ܢ'y%nMD-(y|w~tTEn4KAH(80w0% SSRQfx6+֪401~V6>Ԝ٥w b4u&P-־{ t_ 9Dyi<c00@JUbᖖ.yob(Q죸8-kȡg)vv@Jgqd=@⿽g2w  ,ńZy?!*0=kZ&2 douU?  7/Ŗ,WfWڔ:Bi"=VT?o (xDž̊G%㐈\sZTZM$9&]Ni_>c3J9 +^`1?Ć[05-6Xzz B==ܛ{$_Xe` eFdw@E~^SR%",R~ wj1P:)̨yջ)^0B>*$LƉ>gt\1Dg k+j Ij#c/OyC"Hf6+(Se;r._4FEY HC/m0xD5ۉ `Լ7C= :(]kKPC\xPArOQj]?јJC F`񩫥*h\I2AhZ2%ziAgbD,ݵ "ztanHRإ̆&h<%t@Fˇ4l'$Z֋HX% Em..aS }"1K Xc~jb=f "*îopW>N&,P qʡbP.a!@ .}97"82^Lz8P D:_Ѧ+ xu$n "4EA@*]AiˣF]c?A Baò#\#y݈ FO:b cE+ݽ a2vMb lh4wqPe)V~)܁ 5bqЄ"C~0Y)Q=Bj5s_)pՆLy3Yߧd3_z-2$mInqké~VJ1Ofq?7{V^~>zutrNcܱg|ZYH6ZY%M=a|uoC/ mDJyf;xA˒0##W˃ꑢN`UL;|5 =4s;%E]1l[ /3 aU:sK_$Lg*LYB5}{Z-vdt8cV6)y ؤۚ;\X8k"}x0U(CN^@sN4.CS5ppbU#z͉ɭ/p44/hw^RD4>(6'M*, x ;S\kSa;biPb(V3Dw`Lto2؉۲ꖡk6t*pwN^ G":X'{c|Ӱfrܮjw[ 'w7W0Y(6 rȬC\'~%=rC<8ERBFg}G-vXC:K==+Ru ] t ny(? k;Q/ M#.3r8ią1FhMOFqLc>[)61S$OACx8Rl]A.`o(GZ~mO;?вo K]<#jS¹\&mnt% v~S.ܫ zrF꫿uk4f6rjK`:z׼ϱPw eJp̭P CQ_y'1P#@0NYl6S g Oڄ/86X@|D[=ʺq 1L(/pѴpEQbP=`"<X[:q"D&Q0Ch[tF;9U Vٝ[aR!"4~ᾬe;zhd kQ-& :OXbD}4KDQ7L{gNGŷ\P&|G))2dO0ٵa೴tK:<Q .k)a?!8@*\whj~KHAbW{gU-UI!;g-ѣyDqߝ1s;pȰFa[LoJGEle$e@3vl $%UTXk0M++a(Wx3#ڦ =gj  @ײ4xνi ~vXRIs gŕQy N ĞgBH-N}u_Arݹ7 ?ѼTtP&|;!f[תq,`^QViV[!֋zJ~l<àq Uba5 g\/TpDeD0 4L6ʪ].{弣5 rŹs+7)4V5((Qc ;s\|ş@>l8&Sڇ[NnCrWO};"lqIruBkA@H; |He ԶNr!*wG5i*Y÷.;+93,T\ԇۂ)k1WԵn.uyx mp(o+AoXoj\Je$\  k#Lץ6^k==*,a1BW $E`mx1ByZ43|TE!xI%'-djY(0™la@8R: 1Qf @ȩGrQ (,E)QRU8h O$ݽ$ˇxC'-LaM&3b9 ruV-Gw_c&5;-N2ۙ)W{ܑu]U\z3ЯO>Dxl8!~C^*kb[Hy$,\شE5Y>1+&˖aZ֬=YI8l|BvO/^4S{3YyRB_pb!{8k)pu;ׁc>i3ۧ PׄuӍ*UtOƞ>&@0wXFN*?p_׶z. E?GﴱkRY˛3[<.!Pnźcؠ(D8||7pK@~M t)svIqOmP,e>K rAW$S TMG4l٣Hv =DFe>³]QkDU/S.yK'hJQ~Jz.MEW&YKgpQ8W %)ezrFʼnd:GNJ)ٞ /W@a7ՕMZ(??ށ]"sU0TU4G*DNlC{!Jik ^P1m71kUQ]8g&٘"h7PRH !C, WGg͉iz+<5.OTf%tÖ>'`ݪ>~}$5bΦժjxt֭ 37.6""}ێ̢=LT ̶V|:`^&IB.eMUMg׎5G1f|PpҖ6p( A|3H೬]x>czVWްLH4!˹ATW ;`Y2)Bf!/E?ch{Ԯ#sfBM v_y:.H! G .|BqOOaC\)ήM<ۧLW iw4>"ɏhkkGZ‡gw`}[KFb)n_v-MYm_Gs zɰLʪ`::qv6޺v.H)EV5 %(_MɰXi<_+>0?zAm`Vakv ֮XWe?=KI"392X& .&r{'uǁ䍻<.`dž$W:*<[zļT7lr/NKa^T+7SGp]YAm;{T#$V`(/ƄWBʯKGS +Ya-;*qWoDNnN]1-&yd+]wӒm a5tEA}f3Dk`2Stw}@'(XGTSF_VZ[J<3pN0S#ni6 HdЬ P1,<ϨS?)ֱ)Ye#YƝ^R ӔjZŐxBF̀0dž=D.~v ^]N2߀Yzϻz%3=u]q?K.؁ޱ)Sp:@Θu"F؊kMp\ꓸ|wH'⇱VΎm6"@R@q `(v*mUAQ,rO8&WYu!G2djp![c(wF? U\$7g-PkJ. Jd)62rPHz5ɆښS鼸gIXK~Rs#(kQ޽hQk\kPM o쩉荧^m4\sū:9 0.t^son]@93tER69N#q™vi1:-0& hy @*~]"}F /2{`ݥ\:$ĨFM&*T/)\TqCRKn =תZމ{0_5yyW kK}[c fw >F)k-eNEқ9*gЩ7CpHƸw4M2PrdIʆ+ljtȚDY}gaha ͼo6\,$XAfƗiEԏ@u3̲$sE|,HkV G$GދDX \ qƺ'e8 )AyHL/*x"|hZ*rOs#e-8\v.'MK0^hHG5ݝe-@)^2T&YpZ"82m 4k)NZڏY/MIj=}d+8x)߀GEPá1Sޚ<}N"AptH{T>dm cX@>>.JԹk09&Hd4!aETHc x^zEu/q9SnW$ gGkđk=ɟ@@xsg[`4ҏ'<$HWVQyL, *P7ӇiЀfwe/ |ǒ{vs$>^L+d.֍4*ѤƆОjbt+ZuU G5Wk w* ^tZ̲s|T lZ-ښYy &OTK5Ns֎P[`f򞼭J^O45:n@>'8;fFfZIr|{h3Gb$҆'.6?'f}eKQn7*_V)|b^~N8Yi-L/e1lbx !\4SW 98w%.ѤtU9fQ_ޫ :̢3'V) % [mA_$T~RƼ1-f \n[F1 8$S,Jޱ v'Ko1ń呡 _'0ڲ"i|W ~#b+s Te$Mo'~a/wԸ\{l7],ӏ^`3406nn_ڿ^ PDG 5&XUR ZKŠdTt!˖mbbdwnJh,K.g }@z3Ďf_JF)e&ZKa])6̺l6SϔCeYEV=skM&P#EaE'(m$hmpՃCj<'JoL[4 ӂ \gcYj9ƈ7![[z_R_?*qOPF*6Ѧk$wNl` Θ Lqcl_(X̎>-b=ֽ3]3Ea_v} u C8B8YOjO4:3hK6peaO/)˰.''%pjU}v\w̴'F X-NԇJͮJRnvl$ UN%Zy E1hD^xr޳MfU@E>ܝ̀t?]\TTq{k'gXk,Ī:T4f$N 8ㄒ`2T~N̪EvjSk0}N}c2/;T,\yPr{"i?e ͕e A@_l"\:   P J9[ֈD쥎i5bg&a,f$GcqkQĺCEAmr3Kܓh6x٥ |*+nq%z a=oFé*C 8n"6ljrwM+ {}ѳ|5}[yTQۥȜf3k\ު{ Ą4վ c>kjN4 -)/zY12}C_Xp;$>$T/}X(؇1*3 Aq'd%.$rД IH5 kͯvl",g1DQ*. Zsٓ@Pto>H|j#$Vb[L|ƹ;\dnwe{-- l.a_N./-/[y[HL}U'2ݦf8r3 Exd=70ݽz1~Cy(ĦR['Y-wT2oި`qHdb,F쇿wN#M3Z#Z׆umOh~Huo@[vaJ;E!K}`ż.=e; {H:@0N[Y;{"7؇G@X%4CHYإ5\ʦSD65f âv[t0c/1IIG35{^ "~,~\pph4̎u1`4ئ@V鮗q&|p|uaqnR[2&ŻV 2߸c Z@h_4ҠQIfW5'fhcZz=v1nR?&d n6fg4k-\okTtIfu_ޏW5\v/7w2W=kys<{;V죫s8uYK*sr^P)! e Jϵ^I@@EHMVN9ByUdw;sZj6wo83{`Zΐưe;7k NGDVD7S\K.A@V6}4 0 i}kR)wm[vweٿ0 ܙRpiD `ow7(l$2e4.>( |͋^,(U*{:f7v/Ფs7P#)D .Tx$.tP@)Ce#EnNpKv {6EB阷ېpwQPb+Gfyz1]<%=06GVCaZNuFK2@Qɍޮ{xZu)m0VeC+RZBA#Tݓ絒m~e+7pҐUѹd"C]?'ߌR !aÊX|n$ycUm24xhVJWTup2%@{L zDg^G0K3oᡮZFq .,څ;ܐ8b=d Y.1ۡᡰ}jv6J[<,aTEk\ x &c9cxi@A_]B1F C4~zx׍)㏧NxpwҚwd[@ҩߤ3 q[ i~ΟB]ݱ0tĹ2EV+wtf6maK#0ei_E7ڴA= >';o̸Тy-w!yأAfXAg?sA?M># PL*AiP<>U.(Н{CwmOm,ʹ:p'u`M!X {FU'<|}=}y?$t'D\c'a(sz8HpwP]ƷHڂB$l*w\8 %/:Á~0&kD0||葻^â,Nie0GC:m(Uz YO%Y4_|j&K [6X vAxVBw)1-DmۘAcΧ6stXL}z x"kD? e,?P|(~ә,d'eKn\莿RW5up3dvH2ztqK%a1w9@Zo^-n8ٟА/ .O!bH4| ,+jG[фL|O ,9ՒWhS|O܉ƼIpPx)G|4F;VȌkOE)cjc:o7N33V7،#3{xo_dL6y0X,n Uxzö[j3/B?yAU4c.~ 8amɅE\LHE38rq.<+.zTF^ 7EO%Y;7^x ~d4pP0H E|K Ya"B x.oaX|H/mdkѐ_yٯs$n"h!aᕡ]5-ym+1?Ok~ed@+̛fNUJ!tTos95 fRjZ\nb.8]Gu .+'4l&Nѵ$3I?dWϟ޲~~\?[yGG'Ԝy⻸f_t lx^Ar`LK/÷Jis87̎\ 5_pw#{ӦV/^* u[M²=N\TIgP"6q/A5K}T{Fxl|Q#XXv`Q9F'@D$X$p1lVGĂYc0U(]ut9sLsfv Y4h%;Ttm;=ɇLѵ73|GyI$]ﳜp,1b:eDw5.-߆be:"D2 fӎGOԍk @P,Yt.I H@]IԻ}Siհcڰ+<ەlj݂p=J9 * Uɷ،jWp)bXK)M%vm0(ŗ ݤᯥ}04ct- cvF*": 0{ +w&DaZR^?|IVzM;v>Rn(6mJZ'C~BXMQk3ؠ{@{1<K%BS3Y 6k{nZy5Co ^tfp8m|]·~z%G󻆷Xt ;ZVm!TX)ehx&CBI3JC̀qDGTϥdjO}o/7F~@) &^гC',[tA!3$OlHvn'HkfkwXzJR&8M)74Z.-?E{DLM>wD,[^׮TiBBn˷sd^C;ԱMec{3oDi>䖇[,h_N[<ƛ9jn#VwĞD _RP)īȞaOSg/1<{eB[s &Pr! G[:yU^ꢂYzMX1~7Z;gv*M}ݲ=#׍^hULNtM Ǝ6IҖwP=-kZs+BRFpCBlӃO)^0$b$ %(v=&:V}ţnuF!W3bRC J6mL+ tw@ ܵ `mNqǍlQn|*L3,ѢHoIgż@(~=Kk4 L&t;* :˰xb$wEzA Vx'TMՉQ4u>f!(7=*<9;|x_\SCۅC=|[YWxi0 EaQ͉*g.tE#~0$2I22#8RNJX[U}Z_,Tnp-Αp~xu;*n~m`^PF.{c; | 3BZ!Zη[D?T%#lstf$~kYo `0|9wn ds흱bE9 j\Hdf2l$eJ `q8 u3=~cG)ިl _PXyQ $8]R> Z*<weO'U|A+qZTz`]E QMG)r԰A ?ZQB./`[ p9ZT|]fEl|H 04\1('ua^e.ߝ5ݯ1T{<>FQgd q%Ə,*,W`D)Uǿwy?秀K"ZR駺O[HO&?%gw>Rm85 /Q+3 uARnk*G=SщQz-Ձҝ+Eԩn+\6<6MAG. |dw؇rl,{d@a? /uX!wڠJ!*c~|wk~ayt: ]CĴ~ \'\4QvH|zLO6|H膼A^v>ְ 3ML&R>`pj"?޻eĮ D3^'oh͚Y{ c43ܵ),ٝ$ރQK)nSY"8Aխ:w66m@Yv2׵ /M6zf^:iz';T!6̤1=ehoDR8v:A(B$B Aؔ4L~nGF%8> ?JM&j 5xN3~%>Kp${Q’oTH>)K.d(?ve;rkU9yL G0.1t K{y}[5X7͊#K |ZGuk'4 jg:O gR G)feʐ]񉬒Mz`>Ll]P!LbQU󇰍r.6*y%n(=X+KHKH<GC&@/:I>-;ς )ng=J8D5|wq?[FGQ*>T`8k3FYW(jj }fTƲ@$y~% QSREn0J2QIlxDNQ@+΃2:9 1A& Ď 7˻CVg!9j^_hw]ZXQLQ}u0&m4+!! 8ϒ徠2(Jqҵ:*U{`&SyS*%o&';b D[lfy: u-<\i﯈=*7 '/oHAƨRNQe~x;ӆeCUK LmqĸwQxSv([r#A>Ee}X(Z lgXl|$R\!dyդ(n ut%7shwh؄0O{@n[q#iF_TkB y!0X:(X[L½兪;I?gZzN6eN*HJ{K!CM. r^ kιށMU*Ƴ! h@Ⓖ^S(íPo*.9OvN h3%'B(yix{$Rk=xTPt(+ 'g-b2*iF;=>^4<;&n)@zw¿ n̾ZυEN=V}k;5U͌9.3q>!(XxS6A9CDSX Ȣ&Њ_w-ʦR|B;{jjRK)̣oZD*^XѶv&u@>+v࿦\wV~pr*RC8f° v-ޝrSx k!g6~0Qi^Otfm!|]ᅴA@\P40S~/%8 (F[2Hwo=~׬wc-'.Ql.yl(OٍZcDܖy}r/eD ̖$N2qJ붲hOskZ~'RG__OkDž{~ 4qOz-..ʬ#nob\D% Yb֩>Cٴ6#:pn5Fob;;؜$th:&*fX`tz[$m<@<_k0 7'̈?4[˫c0ͫq&䠁磪++ł}Ɣ|u#xJ1k\w-|_4ևTDn6`\p:1P%|!T(T- \?ĭig?"vO嬀<>T@J8AuZۂS5]hs1iV"]Y yę+J)c%71Ns|L_n1$򅱡 (+ghN Io|cGO'HC5hvWt͚V&ƿbqmb0eO)av ( NƕNd0t-@Lz#quyʠx'uZr&DvPhP O̓o,+?h l{נۢD0X1tD jRS%)'2! ws8Mսzd<,Q*UvT6;z lep%s<+6϶ڭp#l)Qc4 ] Ϧ EsEdr^#Rn[ܜmϰBgڳIikl /%4_1F1y$6'wEd\v8cgߐDwbIZӕ+K}¥ G׷101OQ_*.@/G7QaO)=SZtP65h%`Iz-|l`c`vg:hn:dtgm3xZOHK*#H ,Ӎy_8v%GCc\6t&E X9LDmƠHr $"匈\ENm%w6JJ$;3%NJB(Y;s^]*\CzI* -)f>NJIӮɖ~"ݡ#kC,\e{̞<V.tiъ 2vl,R9$%<K/*:R &QC4@΀CD\C,x4H<_;t.uݫ7vNw%Dawܪ*$ɯ_>g@DopcR#.gj2)' :Wu@EO2b 5znrKS&Z4$e91e~aS'}ު?k bzRXT}wdvDXs\Ko/B{\0UVB3N_I֥&׸3'`6\?5Urp_v2uq~\z>Xo y2]ıMqSx37968Kw+Ge~SFu]:$h-zy^ ]2aω.b0%|@1ήsKXp͔Mk2lIvn Ť훟`g[ch]{O؇W9|VerSywtl뺈T7@(yvG|ڐ|HD 9,)|(QL=Prg p‹ TjROI3Yﹻ–)P=#{5 6B@x|s%~JEOc\=*,_ZKnOR?u5|.1Tܖ45^4wtB mTp$&5.I"6^L7%9x2=aSUgMxq@{.owv3 9Q<ڙw2l6S6)ol(O>XΑ:=j$MPXkq!N[GyD3"u Ø}(1@[Lԕ/^瞿)6~]xA IIL\#`FwL-;)dyabQiިE aYa RHKOp_uΕ67O*#g>eL`c†+PFa{#_Vn,b3Ԃ IgqK8ŏ$O_rwzaŝ:-)sЏo SMvĕ2Lo+x!j=4pkj+++VqBOg[^Q^D6-)= ^> 55-ٺ_;h<[ɜojDݭ^ψ&l3dKT}w8B 59%F 7lZ%b6%xR4z2!;ՍNdt /o +>6Ua(糋iETޫq$ang1SL(\!a@F+Ku D,+qK m`)ql!R|tb dDa(X:Dn~RE=TPAԒ# 7"4| ̕?› ,vkFoLyo}ҫXmRSɼ&K8jHGadmDЄ&+Xk_[\C.XP5 P^I}:d~hd wx6?)NX͊L"zn%$dm@O[٭ پb >P󁆨Ȃә0;L TA=RګĔV9L4^Pz%C+GWlE2~3J ?caz\jnDWST5G(⎫Kʻ6zqT2jG{m4$o!^ę3Qc#@CܾkE пO5VV˲!xqjy'-?a ;yXj$5cW_=@3j8"R/i `*;΋8MVC}j 7h';,=`FRRͻ6W( %E8491?Ӓ{ѕQiM,eRtT?or%[lui*{+P7NJ#||dS7-͑g,9C,K{e2 *2|Gz+##D^VQV*z/"TV#Sݸ Dr}.GIL{j#g]^׺&/ * Mt"E@a2L!i8{6 KNtXS-" Gab7t^"G<8wˢ/!A"zBGkh)*t' ./b쥓+?3\T?}t' T[~HJG& M\u!Ό 0+_ThsfOb};Jܩ꭫vq._v|褳's.[F2$<#d6{fErzV?RjdiSlx£C0+~qϹ ҒY_Kj3Ɣυ.vQ) ,о)n#p0rս yfT6ȼKp (VH]u*t+WQ>c="O $ۡ ;:-9ȵ(`8VERHݎp_*2AJ;Ɛ!p\dЩ8~&0'~܃Mi1.(6 _0e;cd{FhM 7@)!.Y޳3a"iN0Tq;w*`B ziHSu"V)>&x$uwWyDfBܹ>yzW\VUA[D XyPg)VAߎ ddppEȓwQ3az$MzciX0LwN1Q.G`&:*[=hќdyi§y--xgVkH7Oe.*,VGwGi؉2"e8&a2URW6u3.l'S2ѩ(#SViKDY'wJb5'(޻ɬ"˓J1쁼Y֬ujgH!̪ LrqhB;zZl?GK+mCLXRuarbz,9^U+H`!XɶoЂΈg8wK-}(M}Z2<ԏq) h]/;OyxgqyLŠhuChiGʰp| c&rQx p!_{Z~T)v{;Ѝ!6GՠiGKŋ(!M3̗9%^ƿA;dg}!=gv2F\{2+M5*zRGL0ԙ4eCrmORCٗhtGVJmG*^kf|a*LE}afC#=]X+.AGM9}=2/E1;%'?ՖnJmM +6@kjNI'ÜÍIؙvC?^︯JKC^ 7><.ڶ?n=#%]l$B[Tu+Tbփۖ >K4G1* E+I^..^Uص+Xűa~l/t#GW OˊNKm!Saޟ62/)_6@֘I9BMt h&aFWt=eb3"8S5"Qa"у L2һ4]+"Hg-Bpy*qhA=Q(iLxOnk7+?Ba2tc<%rY ٜ.K|jxtK%zn#\pi:L;4;jZSc keԎJRNY{cx8B =$ +~oNV@~x &+&(cB ρSxs_XzuMἜP[|En}b=C+:)oڮ7)V<0a47}CtĪPXZ+t9+C!kд!geM=j bdx9 ' ]u2=:a'740uvؒ}WG u= 6Zls <Ԓ2T&1{u[do[\ihLaV[NnW>顶D,F;\`K4w 86Jǔee4sBd@WfX48W>{DLbBS}_mYG`f;ݪ}[q'lr]CK8 5R 6āX }Q?*@Е˭,\0Ȓj/|V_5aBaSI'X2yZ0b܆]jBy@amRG YrF:,5ЛK*E}HJnoYz`wO͟qvH\ b*rfO ?U~ct\?nF@}W dlIWR5cZA{M.Jdҧ#v\rgtYD*ry _W_!Wvэk]ݖ~Md#yfoU)8'w%y(϶+pD*W?@-ےsR;ED٘_}ˇ#1>9*\nqKEg[uNTRP6ϵ7vQ5;6cƸҭ3Bmceۃ" #߸`bt|jwur٠,݌]ꝏMI. 6bһϊJ|x)M*/ @?҆<")0g'T[w:FCEpKq_D#n'|`AJ_W9!ԘU'c@# AJIKRT?d;E)cM3U(_KSY14}cMW^hYuH@csMC ;]Buӻţ%~sl5\<_E]-uVW? #{ZP㔑'غ _E\HRK -Sr-hes''q.]cA"Xu>k!).ڎvh`/C,RT2_vvtVas1v7Çm19Y_@|`6%7Z^.LWDG}k8GuS+ jJ* 4vlCdH'_Wr Ab~h_=Fb^d0<#'ɔwe!G7BG%^'(KgkF]o@jra QAHU)E)G`akD̥ϐ'G8(DQ+k/)e-G6ۃ&2b8XgO$^9&7\lgP/ ̴P1$z_F%Qt -y c}6u#e?ҫwwi@V5u1].k&ћJ zE€*խ&3կi#ղ؇"䭟b0zI)ϔѯ#vOm3`6BV4Wi$wI2iƮYHf"*/MQ7IY+i6m=}XN(nPAo(?-M+ѐ&A >fʕn@-b?/ hA[ %kQHba11K󁇵s >雙HZD]A:o HYH mP tc@H}]נ&B@nƴnl7"FCfa8T5A%@nLavE/]W\57/UDoN wJ{4X+bZ:z ;/.ss*WZ_IJq~hH9~ʈ/z`o9~r$o~uK4¶eޢzBnR_xݿ[Ӈ*p#e*@ŸP _9=q]wq{Z2|=\Ls}WP0R+n~o a䳸vBE֦2`G(tҪqi=2- g脲 }Qj ^p;ƕFSMj}V 2Tbt}$GL^ G[%!5{R""|^hR/#+` }jhb[~K.VT\mzQX  8'ۑ^A9[r[eڎ9~OKax*_)/#ەgDZiKoYZ9A(ƀ\dD|*oy|9srjhhYфB#մ4Y`pw~9@ ͷ Ԕ ˶aD|gPuXa%t u?ͷ@!0. =LY` &͌f]Yܳn7X`/wp _zO%`V,b07>z8oqV8?'s6|8;yßbDFL8)F[JrQ FcȀ@s +C=di-=nkAe)c0ГV5uY1[hl5V4k1L[W+xZ1WYK#_䄢vY^]yT(灰֠ BER$`!b탑>"9ǹ$xoaq&wi_*G7!B _)S j4 Ֆ 8.7 |ԑ9,?&/ W.Z.n\T.r@2-B8э?vc̟0Φ'A  XRjUlѡ-0{ԥTXFF9q»VhCgx|#gp*GR{T9La>d|ț~FME(-|]zyKqa&t<_q&ӇXE_eة֫,5έdXYk%{+t׆Pc}vZ"_YցWsºf_L&IQs4m'غ陾:*[mu&8*/Ôj/]ZyVԘ2"'vd7_QR+}=>p{m?N;TYDqmR~9NhNtg~.uӳHu"LYּq/wz %7lɯU˿J>g|/:c2BX -WDzY;u^AI' YW?0n2maNdݲi~t$+HI6bm3lS8q|&to"e~lTMb@>Cr[Vho&?j^'X=V޸p\jL;>ҥd>c(2,ē!{9*E[t{>pvGѾiDvj+T7#"1g%tm F6v ESdSxl - "G*l2Y(1_;g8ͧl4hsȭKGj29ǧ0~R)(cTdj,xl1L,O!$8GMMaéhUtBLm d:~DluS}H7O~j}ܶX0zSa2(%+ ӑiM&^4_) g,qtx I %K?v E= YnYN >R(Lp!jUI0"'/)yCC'Z9)n^8)=jX[}.EiM¡uQCpn3}n_WhNڷP{k'(P4,d2SZ斦Ӯ,\Oc &~mB.Fh>8L? |N눠#HJPD8``|u۷(WĢO={hw { {J i 薯˷#Re4οJX+b<-xJS=@$M nL0UP.Y2X^om W!E_R7OT`L(!g"o%fO3'O}+Z$<߉ՙQ QP_.YLiTq$ҰRPOΆn23\#BBqE !#vm<ݏK{™cЇDY[n6W\Ō,KyV X{4zylh1〬vD89( fjj 9mU>0,HWRzrG,m- L!zE-iԣQ!úpC2CLgKQL 0?C>\Jx6r~f&+.-|5G&jZYd;ğJٞ&ݶ\9ZgB}Q`_q4r1ABUpxz-DWR,̎G<#fwܮpvIETs=`!V[˿NEZcDI4gt5'x, nȊIL&˓c1h1͂ $PO H}JCGx)Rf{a~TZֈ?i yetFIIs m~8Sۻ qRKڔ8::Eñ/H_c{,v p.w:v/3ߐs^TxUS~LVo:&) 19ZSZ*8<;xgqpuZ )nXh26o(,i{V9֍"k‰J/Zq&Hw[>>3s/m9zke loFgS`zBҒ#ɶTw!@,,a g(Fa)t)/Gߝ W(mfalӫ?yg"@jYï2/tXm7n'n,z!hm;;gL0 I/bWIv?,&WR4nP[XN}Wq4\v(KdM$8⁞~-W${Oj)qkߵ$~8ZԿLa#U~$2)u),.LZ)B`iaW6!(ZQSHhJN/;Ҕq:h<( HcϪ fq"$rh":6^5%6  5lQPa9pCT!5|E:Unw:XIpn?{T\~$_ %KFHљQ΃WBQ莴_nDW_jxԕo,p#PyB+͵Ns-KQ݄V@v:{EwN(,uU$I$KuSΤ` ۋ.4Z(- 8mE^B{H؛-GDb3E(Ev AWfN Vu1dp {N"IJ6)-Y|$)ˆWw:T2-|H>%8N0z 9`DeM:~Gqg}eK$-'\߂\~!VPͧ?.@`w.Z@_a[0Iy߈Hse2KtvX "*ζnK\N b{&znhfyG] 5wkF2E47ſ HK#6FeyGi)0hX{zS"0ԓDXE8Ӏԉ%"*E 5Wu g-,T3B~@#8XpJ\뒖0ѭOV•N駗Dp_3 돁QT_CCeTOIF@7a߷# +&;zuC[0~|RG%3b,JJX"/ =ڜ=J8-OF 3Əɩȭ=upIo@OZW1ͪ+MafaFp*]@H[ksILԹA,6$]m>3R (yZ>USRďp0ګ[[3=?<}7[jYaD\(˲t|ȑbqr $%d!3SowZy}E?;|u:i!/SmTpFdxr"]y:5٣e+-`}FzQHL{o6d˂=,';T:m~GjYug] KLDQ10 z8Ed0)~mջ6ZvwKsE1#DIlИw-OħTNhx1eͦIKBW9@ij 8/ oMvU b?[, B j\γq\`IMuL `0=hv&\mEKg%/ya\K Pr%*^2DDIbOL%fP5OϬʮ%QcPi3b Q"DPBN~* B仩 4yZu TҞD*v5 dʕ.{;U,;2)1gEppV&1/O ňaIA Y=Dw(oGDmKQE6V@PӸ.]‰?eyh]4PTEonU9dBOL ʘ켖R( 1Ek=#cj(DTh}MsjLF,3j1Ƶ |o?Y:0' ܟWN#/ !7a b]B%AEҀ/5A[Svۑ9.`E'T[ mo=<Ą~s21v6 ,X ]v'u›tEU,s=j P/ꈘs9h"}G0t9s䇒vTک" O_srĩ]SC]8yk9>[*5m䶾T`A(ȁv5&uK-\poڔ!-%\ȱdLٕYW͐s;sSn5ePT(uHϾ B;JoI9"3F{‹6;Cͅ`,(=K7h~ǫF"㸄fƤU.j#?h OGEun_(30!@= n񻜝NSσsٱ[VWA~$R 6f[5!$v0̾]@ݥ|[R@'ơ?QLaJKFIWNn%YAضۂ*.;Rk:$}7DmHlvbp'l(`+?"yOG2/5Y~9[ @Ѫ^t: ~-5 |] raLOn}-g.5R6#5VҰ/SvM_X;1r[/ĐVx.i4U+Xg-2&Tc:%Mt40/(xNfSndY`JoA⥀z ɍ̒1(Lc32*J*W^M!ci]3-+3o'qy ?g0|_8iVGd_M']"27ZH}`U[8ŒOFmszb(k>vAk2ׁa2sbh5|Qx}p316I>`Tmː8`j'י&%m/W8*!(ZͩbvԖJKvb4MplCA(~˨*׹*wQs㇈L e3BIFFӊ8/&ܬ okW pW= &i" S%32Xr7CRBr>F &H-섂R qO-}OMxZG^tsHÌVyF({F tY㠏s's[kfE$l~˥K5Hq&'xxičۂb2SNǺ%M5sVV hfta[ʽ72 ʳ|”o~_l.Ka2<۞%z]1^1.4>elf*[鸲x8v@B Qd؋ƥ^hf7inK|~j& da؟Eٖd;0K%]ޛi~Fa.(n4PӠN vd 6w[l57#?:)*Lh8k|ph-au /[mKxnz}[[ֵWq񀍨ωZvmwa㞵T2v;ih` Q;OrB`i-Tb]񙀯bˆqaB?P }_w_K\(Ejmdi8HugbAq7;mF3~Q恽a0' Q_\l'$ ƁXL-wYW5DfY֬#pߞZp;BhYg[T$2zۙGa05:VɇZ3WƟ na<qʾo&)u@r:iUC8P_A9I~d B˥G8;8Yh,.4m07{rsJM; v^oTߨC^2\/Σv;41H8(Ǚ#Kr ,CaMmjh!e}{nq(&n# p[ѮRVBD&q1*eMHW !{Z]LPwD؏_YW}_{YQ*5Y ϟoמiFה$ ^{;4e+I" <[P ?ӏ6vC⟸WGFDM$e2$|(KP.QlۮBp0M!];chUw=`YHpWP$b-8ٰ)ysa ΜnDB, o7?p: =E0ۭC$g\T|-'gՄrpќfs?4GT&], cMX[ K=YZ<{&Mj|O*a?9 yXU+ՀVgւ.xAOzS$PC YK<~d&ոC\I*kVj4ph~#@k`r;O/f 6w(f8_)NbJ]aY U;wٸz4,It,.G %c>v;6NBȒfQՖ(\gZڹDg"\Sܟ ʶSBz*qJLotnb"R2}֍o_T >hY^* ˅NhWZYlG;!-ZQj H1 &tڶC[wDA-.v %ʈ}-8٨?˪wdEQ{o)waM`6ݬ>y\L=7sӛ|!8!VwkwuT%L4 gl&ׁSk.x<'[3}|bFr/;&든a4H*m!Iv1BNyfF7Dbϊ­;e10-@mu{@IkU=KD^MӪҗzɾV {2j>tCc ɉ !/e!yKšc6Dr7lj`8֥Oλrbil"6^oq9tr@p-;\dg:OKn0PW_%#n^>"/5$l76ak[ 5,A5r2á!y4ܺ&iF"5_ Y-g&1Tbj# bllU;_u9~(Rvy3'8V;ΘӲNߋbtg0G}管d1`;!8tUZ oEĉল3Iذ3.5~G"Ň_H s{*OUxH`n|&n%BAU 2DX'uh=!#7QboV\z,ybE { r^ֵȦj {s}"C .*z6əf*_L6l.kzr[۬Wz_S fC=T7z\+Q#afม:>'JsONNs3S<,TOԚgLL7Z 3K]{Nu,*XqaOZT>H'NCNu1`)I`̋-* 73lg"Q}ߢj1#Қl-8ut+t>ͱqpBBc(՛ffK8R=TK4Ck>7ueb- ~E3NkmWj4mDz7K~l:v:t.ЀR+Xӻ!>pؘJ>m $'{%Z#vWR-eHl) Đ  ,[Mb>RQ95wDKKXؾEF(+:իRLQaW?Y (d؞yY z 8ۘiOÑA ȂZo36JSQLocz *X<&W3|D1D-c vjީz=8v^-n{2.nKAa>\?BpYf]"&Q^)=Ӷ{"jKU:Ng*j7MuCp7VW}qH?(`O]ևBfRe`]@|s!æ몍*Ucd":!pVժ}ADC^toacbaS, 8ff_d]줯;P1DPCVYs&q >T^-ꂢ JuER[6$#ASE)G+;<, \p#m(58dGK+ vc˵}@?Z.+= d[03^fbghudmTЗwmCΕP"6|T }CĠKe@sی5b+cb{l{.W86`Dդ(R9[sQRJE6E452-0|]CBSW"+( kCP^rS"*z yxYQˋ/$)kۿߏݨnϑ Zؒg>D)qα)%Qp*İ%Q;0ۡNwC nWR|Ͱ_U?/hŋ' aV>#OOudrO%j}>ͮXkxB-vD9p'Bq|gJ[C2A1QGH/WٚK e;pA_i8׆o*\w+xml8 R-c0uͳ >19+ւ|iF E q! n|_!&H錉<:[ p٣cw ?wX/P3С>RwVʮa:= &-u;1t3uyFvyӥhԧ!~ݣLiqK-= G;Tj"-9$7-g-Ӯ2&1y$^^J#IF8tm2@,_ (WEq96P2wT 7ZZS.3M}{L(o}nǺi(ϣŠ{$0VB#I=>nyMI x5_Hޗ4/ uWGm9\àKPR5C1>pp +(軚9-YW+L̞3= rmbX*>:MN׭|:c(xk˸KrGFeq2.yO@,&=xq_&ǣ *Y@4֬L/|ijA}K4ţ-?laӅ}kԎ>E&}17}nwpʥ"щnq7?3FTPlLَ=DnXi{&A`oomX/i 8WA5=IpT6#jϱȈzƢ"Kw=]IMs~ݍ V xϞHlBvxQ϶âqB@|ኺ$ .lPs2|\&i(oE'RŬXRRU-Ei> s>(/az &k{QJ.%]Z4ۓ>Zple.U\tYdߩP%gq=l+Ӽ4S@#ђj_h=*et _.0|I1Ip1K9|}i8ܒjYN3|9N6?|n.Rvunj&XZO)5:-z ŏzޥ>t*]E^}|J2߄s+54ʪ@e{'ZhW7־xP\ӇzS:~eY6Fr_Uy4aYu)d2t;`aVC7AdJ]gEt| Ҥ$yWxԡ ԅqeU5*3dwwac gɁtEEU!2J01Gς {ޓ")H&ut:zWYA%fPJPr/{3ջ JP\(}@Hλ Ls\oע8bk빿V;VNCsA1|zBMh7=̈́4k7H= LdvUM} 3(mބ/z8 = fѲ$ ۀǗr>eǴ {B=#Yj)HwH Ќ5L&.A~y97Tycbdz,(JkQa<4a'>g1qpwpҼA[x0lAo2hPٕ'ғW?U&wBq/*~gY3m R5bXݽ8m99FUY-aLe{+v+ckT.(5zf*tSnRGH~Xy5ʫPY1/r2՚Z,V{tZ/v3PvQP2[W^˜{p2[&cByHZ}ϼƳIhiRIO *vW|@ a1n4M%wL|t8# 솁]V77`G~ik`:ػ8D*ۤ#s(°Đ@u5-jz23N4'վZei"+V )+XX5Єc7@-UXoP 읪+j z|p?rAتMa.dz.%ā9#5K֯)TH~-rVSv[iwn`8P5jGFSc:跩zKtkSb+ ygKq007#^8mHB\N~k$d_\;=l+V@"r ˓B@y eBH'C%*JuW!w\4:>`cKj9Lo"vzpw< VoXZd-<b|ğ #&8t&PZ# >MLdE_q܋E^4@ 0}'gg{ԉGFpFKFŔw7;v|'ˤG "b k,se,[y;Nviq[[+uv;yCXy׉YѲF1l꒽Slպ܋!ST)}j!!'y/)TF96@ep5?4n(!< Cqn-C=TD8I5(Q 8cs}Xq69d&S2YoU&Y@Z7;k:@uoC㷸ߨp4ZYX&:4OaYT^ri h D I`i-"G}cŚ1 +tbMĘ![$kuF^q"%K3{h&C]|B9<AYb/:-}B0$ϫX-rHWGEJ*QB>r# ,/fء7,Ze)pmg1ȕi|^șqYw)^%xQgCЫw qPSC "GK&bc\¹ac^-~#6ʹuU[p mMs)#\!{CcvC`AKдa:zSZ4'D_b кP|>84?CֺD4!#5&.5Ff_MgLl2!S<'9Jഃ0Z cilT ) Q28.Sܪ)z ^8k7Qz4cԔVn71^z="HZ}>=ZwZkT)܋'b.xv0˾s,p>"&݅i:T4>^[Alg6,Hd a>fz%.t|ƒimGFr|)LzD,)XzDK>vLS ǴK=>>,54V_0%Bm%o]LJ-s i|K  n$1ೲep?!˚кl>k/J@Sňar EB@vElm|9-jU7>MX\cenKn斦F3?1]eqLQ6S"lKwչIP jO\X(dn:Eb!OM$P/]Y0>6LK⛪؎ 0H@\e-B ٬Orǂ{lB0Ƒn>hv#lk՜tdZ? "x[4J7ћT1NC?tS =sWT jGEߨ y_H`Eվ8 cwOj̈TW*FR[D1 }jl$8%1{6^Z,ua (&BqDh趄{>md劚-<;`b1/ڢ~C3@Yssq7$Dh.V8u%F5R<:`i ^>ײHȜMDk]iZ$)&gRT#9#Iց8>MrIzz26iO>I#bCYaگ>$-!WfudC3%b=Gck*໔sL ٨ZfMܐiؑnzHy]3ݷ)/(9zca&L$5;e*SVC]0}tW8e޿f/Z t+t́W*x3,メ8OrS7bY`*_TG޼-{_^sR>aXФ*q5:dj~ȭ}SC$T+ &B@Ĵ -l<4Ͼ9N'/v,M؃o7SWfV&k^­[O&%?SLlsP%8{1링}OQQ?ZIo0h!('l uK9j ǟay6B̏I#dJzt V@AoѥO`sWwz2 9b:YT*T7ϊ(V&3R#9FvxժEq]E&ێLn~B^Zǻ)|e'tag4Pc}w??*NC[gXWT.؞AT9'@B\ӧ {,:&m#&f |-^ࢀ[b# @ԍ z{c]V AB_Q1$J GsϝaԉEhsǔV i B^сNQs1/\E|͠'0\҇ݜcʇHӷ6GtewHNobZ'$lR%T x`T48*>LI{ YRwϫLfb_)uhd-˘EL$Oޓn+xs8$at C( T+cc/7= %\kdE=Kºg {وYȞSxX@J.ţqHbpUd+Ji 8.Pռ::<Agd"MZO1 "9lvC] _WnH^:~FT8ye ! L]䭞 D1G= 8:xxv]ǟ' 6_S=XvB0IXCb5tIz!WQB@cVꊪ#D i?H-a)$l@ *d=':ly;x'۫|\|iTY6)7罁/ n4x5b߅]#&ZhuDt-E[qo[ķU?9tӉ<™K T +)6Whp(rb¦?Il{wOԴ.ӷv8dktj[˖X̎EҬ2Åfh5.ιs++*<6Ի3:ҦO(&HLaO!0mUw\,e [(Yէ:7RNcaxNJT-r\,3(\ԈX[4yx6jqXt S4޼&Ut,k|\,x9"lr)~-[+BvGO!\w6-Z#C K rӠt8m2My{_T0i>Ikx?~P1t.@ wvՂb(f1> ?zVf9ujIUI- ob̈)27 -rQp^1}/A˹"T5vɼD^qo o:Ի.+C,e!}jCih),pkj+Ů_lm*ÌL0!'^빺jW&[!Jk c>ELLaXb _G t S;tFWV Vl3C9:)Ps7SIT{; 0s>8sr{mVA | 6C> KK˾˛uyQf~$NP,.vM[uE%$.HHzT Mu[[!yDl"16zЛEKeG|Z% y /̔?[m:u JW ԜOe2M>] p - a=0s=)nb\^ '}XU3 :c$!@ިH;UTx5FR$! BNc6ƊdF +˧4DUFu?ތG I_?A6ǮN{'s鐟FjzH#nh=^i<}鉎[ M()=p^h&"esO9t>g$d=-nj$t n3?3לjzSFXڻNTuXy6W&J1m{R?—@-w_~>JjP|s¿f?GsΗ>SYaën_&LNP6$e|h ՙY*>[8ٳ$`?lvm&/x[eEGa+5U.ŔQ;3ƉjӔ@`ڂ͹9Z[[pTv6pUQ~Xoy `$/֣b9A_1~Q[\AGv1Y OnS'}#{!dο>Ň{E4uS7o<+G ƙ&5j5[@'UPwĹPNjJ"Min$GջIF2D7FI0 l<뵔)) %7QdAⵐhGm8i:򘚑$j$e*G+__;XRhuTVssgĜq)#ULȢ BT"<!fpWu+t_Ak=u_#Ogo4mYY\j*әv5vl:l65K_mhsN ĺ9K_ HEO=ħ4Lަq} gg.7J ]W՛߸G{;ޫ+L 9% IU)D2 $\|N0N`{գXwU0(u~ʡSoW^Jg*gON,łG%tYL]K g%bgXX `-ۑhBXC29^z$֥Q;2^9uו&*5Y>wTZDpֿ*qo1\4?#AS/aݟD B x̭ߙV)oy&W5(%M |fc 꿠U@e檁{txցJσ>mB9}q9V̡Nl+<REuD(nu$ 58φq| i, I./#Б9'mfǿ7w' ݪ& j̯?:"DExŭBm7l| LT/bIf@Z#PDNVv$!1MjBF9^" E (," d٘gS5N B.||O GNUjn*Vl.>l_'x}*6rgw_w?ۼ;J[K̏k8ޖӹ-d[8IA6p[: AÃÌXTЏLڐ5ǁyޖSud}k'b2J XMV[ T8}V%֐?c  vHXz' F`Upq@ֺe0!x<J4nfcݴm=n\- % io EfQV{FCHX+Ti>*7[D0>͖\.Ĺ {nmGB;ގ]]$P@&H+VF$@U@b̧d|^heb =κkn$w85Q*uQ÷,FSC\(d5VǥU`dI6q~niu<|Մ!_$of̕w;c.X%; vRwU+K/caʴ0K) %J{nq->*J8b[jJ. $ -s)Fi $M6q%?&D%RY'}(q !6Q`:&Y״)Yx̄U-O/f!ˈlX-/|4G41ϐv[f1 ԑ;k'ʎ={t ˡUM% $)(CLBv'; KovzQce(J> s.Lt>xgA-ʈ3K=i bC7@cbU^I0m܋EsG.@n]v[x]_ѬG_) p8%Fee\f0%E%:y ]H >he`pNSح1:wn1:f'W\-Kڹ;!b[*MD*p<,~ܬd+ܶěk{3\dcD;w6K^rCR%_N+ *5g5gVS`O4?Zv@wOe|.bC@F',m/jzfrEi'4Ă %>e],K$>>ÚG$~wSߢb2R#A吣k{Plr?U8N>\=gժj"A'6Qgfow&QmDW%tm+#?>{tG v˰UW6 _}ͰA> #P:EWj3Zi7Xs 81A=*5͸$$G7Qu}cu8Yyifi/h I+d c/;D&J"^P]3QϖG G*~[u le; Wݤl}Vp'fE,2IM\S& јfaA>NX3M&lr6yJq8U*qN۟yr})RnθO+Y;b9!u kYӥV\/M}pD< }dzSIf ?1V2qY2TOg+cH[wށ:Ru=#L揳+k$,fR~ j/$urbtzVDQc:w2N>T߂Wcc ɷ`VNJ ƒM!%tb|]pPi# gv>^C0 l CKJs8<~+@Bޏ()XGs]K"~Z5aSh0ن{\pB,F>d_ Ұ5fCbOIrD7_n戠jc%r+Q; A U^ߦ =/?G tm~muO뙅+@n98#`&RIi%\.“FM!}2ҤH0WȨ*.Sb!ϛNK<j0<ߍ4iuWA٨xel/˯mx@X0E2։P9ی/- J({׳Pk/\$.V]IRI5mQuD֎81AJ]abQy Mv*RTvUxYχ=uBd8*HY@\Z!p$2]ԌFe"t¶Pc7DazyY:ti,ah"%]$naj ד ɕX\w@ZfiH\f[̏t]U z;>h\X7W!''+">0ςaT0ZJoݭDZ c٧A ڧV9%-Y5K$x^`m03lTRm=x1'_R.|NQMM܍]WNl}I EFh:"FyX~_9wxw"r,ɬu.Fާ,=O ĻHܹ88MR \f+s2^u].z< #WwzW6yLY6ʚNMݳ裍P=sus|Qog(6Tfp`P₍!$@}^StRQ?mT?\coI%t{#cUL(ƿhp2kHL=}vf|~fvr_a{#r]Ʒ($#SdWUE5W{_ crC7)esW2Drfߚ,eiVw'1v5Asñ=/,>95DX o~j:;HyͭMo9˞dP((K$}[y)3Fd(/SI6f*1vaX<P 8oLsž)}o658#eKVl,I<8Yln9 s'bdeKg+ހtb HzFtY:&AR&pUwFhW#ֳjצ3\Dfty\4Uh%jl޹gnT/;\f7 ދUjgR8^GK%Fl۞|6qW1 fM <@ 'd$Ts<=%"n4rVh Px#H̕hoPvӯ;B?p@v!G }S(0>5&;a_ڒBgiIsۣ/"DKmEX_+L`ӹGCpˏҺ7 pB D0$#P(j w2z>i=73/48FIs'f-_gySU@Y#"Q2)ZV_4@l(9OJ{bⲃ`w뇀ɂeI)W!iRXw*yfIJ8X#ж:MY$ 5+`h~K0񱾃1mz+}H#dŊե+/9ym 1PcPfKJCzR *FMWkl2 TE8~Ρd%_Ѓ_= 2W" X O7-7W iS[*?\a"qUzr~ 9u9Nٺ E~|_xͣ[m^dFn,2*Yorx7Ya [Ov (Md Z`]dW@øyk&tk$Ppa[n99L40$g|PD5B˘ZՕ t9Q äz xqQeihjhk*C4Y+ \>-[xM[}77-@&} i)ΔI :_w/I=tYp=89k(~|MjJ/ H}YrI2*m{,KlI>֏B6ohGSnh_}qY@Ȟ%?&E*B4^0ۦbZ ,{k+5o&>kf{,J>fg4k* nk(iC(~Ddi527, CMI$9?W&k8&h4SfڠQTfFMdv0YaGuZQD4=Ϊ-c N=D+֒řik1+XA.[,#:^s& ళ8Hu k[W|NjяH zBhq4B63)kX&`"GFx=B v(% 艂2 $DYz# eu^4|ƽR9b rԢ7^mx'd:&Sϣ2H7E yuP[0x™G%WZ#RwQnF} R.]Ū~}0&7dqQ($&Y :9p4gyfgGF%%FtbY0j_JʐF l} a3mEpw{E>v8kAhL VYϦcVR91e,MQ( 3ץxi}L4YI1;N87s>ZÑfN:0{p,:*K@3f-u }Y/wcSX]omvҍ@ܩȱAEb .R P )_^im@tcp tR:ɭa;_Up{'[Uǰ몫@C?%kp`Zaw'2g+ȍ fߌUj`3Th`ٗjvR¨%p2” -`~)薡?s3VPV[ Z8 (5V) Uap<7 5@~(2*0Ž3]X` 8_u_iA|_{F[QTV I'xIڑU9AIbp~ Ol̇' txuzA^~(b]e4ec2槹# 08 l aqׅF+/oCW<.x?7QiΘ*ס"h1&88+G [0LX&%ҹ 4Sxs##Nu ZW@ϥky~,BJ-mBe%bBn8D Z7+7_@hĵoq1fU+rяzyk$qKQ] t2+yOj%uPt-XLO1eᯂ&B)*À*/lPyHh@>f F76|fʟ= ıYmwz~~%FxUЯNm_lIafTAIz?߲EB ޸> _pBURT4 `?egEK)kռ%v(]箣.Ъ/ F+0 1ȡe[z)-iܴ%~1f QkȷX|~vDklbvbDȂf3Dvw)4Xr'Ft 0+L>' z4K]q۱@1öʱ>X?+B5~d{9nظ 3A<(+ka!HxSG3}Swbȯ.^ =''Fib0^ 4x9rhL.s”`}2X62eF,W:>v-, \uJH?X~x>z@)=goRuꃳSVD+lZ{D}Tr*1YK1N}wB&~w%Dl=p6gCtXrvP<0* S\sT*%:a9rxp ?]?0\oI$ '_xF˧EOȷ)ƅ4qޒ4"& v_MOd|F V ̧y'-!rdڣ zŒzj>޻sn[k5PgJ7^˔SPVBio9llY!/ E){k.)Պe24i@,xXmc9% b|O[e/꫿ms9#l6Z+:<L՗ ]MߍCn\).I'pȒ]C}DM?hgJ _bhlyt eJN&H-P/]S)9Y}(i"E#g1 CqIc">˻s&.Dw[iP 7QHWJreM,y *Ia7 Q;Xkc`Iu0ЅBpE7ñ{:Urifa!_w9DQ+TLz*?vm^qcC^vXX]zEq.*MΪq+xvb>m'0lҳ6odW@+bx䱦o7ͩV!Xc2G$aφ9Lfo}Lz(.Tyv6vۉB)`8tK_l_7ҎJFر ;۬OtJVvޕ4=tbilN>,7#DMv9nvhh88|H0D9xLRxah̛C* |AzcjXNs"۔xx{˕GR¿$R+2u(הD>3Cc]ˈ5d4+ *zp9@cn̕H`$q祖')a֮{,tV"N8˧>\bdtbp]smZQ;_5u/d[k5Nbâd^F'C3, k)@I\)gKcVVڞ5=']hgC& âL^ۆߤA%wUUWG^!|9#yrR~2;/֣ϨaFBv d{f&{K>r$`;c]oNujwGZɁw;Ka7/;lyP 磻 (V@Bl?םxc ^?]A7s=Ntlrފ }%* CP>/i:HL|nU¿"5y!t#FLdAnpR?KUA(V2.0T^;]B)99@@9Ndc|# htߝaC|?h~*D N<("3H+[)8bapxG`1@Sc:# .$^K2dqQ_d3p Ϣb-򆶞`RЂ4D!Fk6$F*7gL`aUo-5-O|DSlGJn'>\pIX/Hd~`!bx(f4Ҏcܺ￰aMֳ (e̵q T햸̷X̀W)ٜ_6=WȬdg£R[ ֐9vrD*a{b˓U1`Kc_nnG1,#%ؘm1};]:&1Z3p PhSum_pLgi%E6]os& (YȜ>TuSضQ@f-hBN:Ջ9+b)RGe@a1Q>&+$|[ĺ!P:CaΜeEŊ7%BV? / 9)zh|8K#[kIs|{-2xy74lPx~5L:,R;Y#:G4nRoO̼=jOm, 4yL05zQH +5[+X5k:݁=d!3 Y4]/xM#؊(u" Hǎ'/zXG3>Z) |P1$:Xv$p^+YϟʅD+n5EIYT9-(HUͯ .ԥ`.rKt b!sª lSQEH*(hac'JZ 룷LF $$l-xo޺^p"`/8ݙɡAnvGIGYKM+:&Q `@f|͂ξk4$O^;Φ3PHZ@_ӭwFb)܅"㖍`_\]s'8 0;^ھw`"Pڂ{S%Ӏa&-4_:E=|K[M4"CI+-,4]z{8rÛ)ƚ18 ~?tͦ vh O4/ 1sg}E#FKהTl{@g.M Zy߮޸Qr_IգfQ.u9¶Kk]Ѷa/v_cRZ)ss\38qHtl!PE 3nQ֣kv Sľg5{Z)vDA\Z1Lg5BHaRQż.#t`(UW+;ϩ\<-VvӪU˜fEgHP)XqR|"~}Γc]gplON3)֏~?0=񿅑J:,?`UY? E 1#Ps?H f;X1,Sc\"v  ziWk#euAQ ZPYʝZOZ:Dc?Rq2҂hm&<||+*q/MS/ag$IbK)w aoٳ\{\jIuYZU3߇LƔYwT<Uu( O5 p$w4xa'lDB}䎗ged+ԭGs>¸/[8}) ˡEht"v2ަa%:Tc &wM`r8S4 ^ ^Ε;֘pU'ϋ8t5AD؟]ޚOE;2hPܟh![ec4Fh4~ {<\Iͨ1ޖӅ܎X҇3傜d c{334jUrw9I>ű Ճ<:C_c:G6$ B 6 ?KJү`eE,ʴc 59%W}iJ }j@Hk"i|-:Yg*t=3G_ZTדF>g ab`?H$$fJxmȬܕP[uO9fGQٚ/k$LVO&(e~ͧ" L1Mv9 jf:(tUdBٽ(2jz-WD0%;owװf7>e:yWv,Q@ӝ7AosIu&:2CVgŭԲMXAXPSPQv =d$^("6T Hed`"^/ƨৗJ0" };KU-57"a݀!} u@~. 1W]䧐)7*i꫓9 I5%МQJ%Yg:(;UH'mM7ʙ%\5!.[H1K+b&[+f0%1?e58`#I,Jtru,5=à}~ Ցd &<;?GMINVvU* 3QZ5:2fk.Vf0 ǂ&Pλ;v[#Si[rɗg:gѹ+]y"=K(#cAjOm^`|[xrY t7h >M/)8rh`/~Ց cdѕ}r Rycz<.sb~) Yq3$~Fi=t1  $kރcKw\tstX8fG#VYT"5`<@A3?XY~}?LzCڮMSjOஉ`Oʍ sYw{ *3">3LO=23Puԉ+`e1&׊䏶Cž!H L! dœ`X9$ fra֥H v1T nQH+DoemP V]Ai $}),L\\5cA ~72dm=A `D&'`Jq3h\z1Jo`;pfMOfݠ떲*A+HGhm~CT wط$2PQ$@nBdeMNY|xxj D(vAw;G ÿ417yr߽V@|{jOQMHueԯQȼf/|1b0PZfKjal XW N] *@%Cf{gɍ OD8lWq R 9 4!wAm3r-&.zoxlGф,3ŽU]<^ඏHsnY+ 8>_ ZK }SA)f\=JS:.,ІwcUCR%@?3p{vdIK[wgO؎5t[h`λB#j fS7-DUs0Ur0ΗLb+"r8{ hRKxEAsJ!1R'080Ӛ9(~Jwo?]}ңqUTiu)fM~s$Bp)r;%Qtߋ}pRӞ++i7WԞTAϺU-Y4K*Rݥ`y$聂lI~@!n(26;#'YKZZ c. B@Qn_wG] g)WLhGDgR:YqKI1qnٖ*G6 lmfp8ڃ tԴVA=h9M1m,jd22 VR V5d5Լ`G﮲$V"M/L?—_Koeٞw1:[@d5_ۭLAưgx𩽮>RFu[DCn@a5.P@8Zx7FWMT+c -EB9?L0t _gV޺G̩idi 5HCǪ!jכ!|38Þ: Vo BrZC7+BKGtEѲT|}ђ)j0.Zx:$rwY]$ D$|kbXc7C%q*>P?Qsnm+Վ #pJ8wT٢+)iw0%D{dopUZ[uD^/旓3/x;H 4)G-8Ty>]寶o: bӹPaFs٦34x4 dQiA2;aSc[zyul{<ɂ|mPQ}@:q̮& S٦Lq|`iO: }tf"{Dp l'˄" L%M` nt*\Z_Qko Ba 8{:=B 2VWˢN{ ?bg[okE0"&&fM9+,yYid9/!+1 pzn»@pԱ-rhZ],83"Jc'pքbLf߷yZNHu8ޒ݉e+mgv1WVBʌq.I[ @ ӳRJ?@n["k!{Y/Bm#9cE/xqy^{dbo#v!AZ]t{igh֡&(oS:2(a􏦲V|ǭKy_2 >"h\FZ UtcsV`. 0;xXs͎dR0l3 c<{)e:$ WK \FTy3 S&8>/@ci+>1KMKÔO$튙ԮWcd㼘U{^j-R4$*دȜnX9hQШgDфX)Atc%CsqZ~k][pno"# 9 [٘HT"+4KB*A<6zoczjӑ*yGpa^c0*obf8vxCÄFc2&o)V<:{E4 XM=*Jk ' n됡A-({dq uҚ#dM]pCi9$b}# o͈N 3P lgH],u $0%ʧ;!$DP,uz"A9R}0C֜2RvR߇ >kHCxt`R"0>|tq]рY7NgylXRz{O9VDC]A-7㋼?DeIl q6cG.=y4 ^-:?Y <  ;-D[[!Ɏ[T=xhX݃t^>Guzq*+^YPb <|*goYւ})<)8 t:K8 cRk!{+Fʉ;\L֜A[3ۣRE/#Տx/&ӣ)K',֫.NVrvd`:ڑQk H :2)?tz *t#cɤ|D]Ǻ%6ӣU$G7ڤ녰/qFbFat墴\6@l]h`JʖMs^ծTwm!5 Ws Nij8TWlfec: [,yh^*FVw ]is&W5ah)-iw[0ZCwiDF.eȈPe, sBYPQTVAR-y<=hbՒ*.;,S")&5×ZBph4(8 R5*ʓ$rz#j& &1 r¾Wlk5TF Ar!Xc1_*~6B$AD^{j%2_dG8OΙfO0fb>G 5q/+~j#3p=x fx1š̶y]8f%[Dj$]|9WKIԇi* ow(Tb`e?mtx__nfo9\ϯ: u ]/zdF:zO$v[QjY}@|BR]}"!dV_ @yf 3&$&ݬa,;)U.x@%8>0UK?i5 . - zak)\`pz{?l-*.7tjTZhwy&f3i {=-Q 0TJ;+0$d,3>AGejGFD>PWtK^Z bѼ?ʥFvgq) 4?AXTKfBP9:/RG?(\WY wy󸇐C4-;^賦V;#D@n=Ol06:լ[kW]י!TX4m/G7135ySJ49'Xſ,R'&ks Ruzyri MXja8M|}﹵h^9BbGwC dfR=$%f^e?#]Ru0heYDlClt+8LW3!e=l8tUQmR/ޅ*otI+UG2 etY ЧHVIdJzПh4oú@IIu }7гl7`"L$/FuptW4 nLgf3]،?T 52C dgMۄp:3!x*We BH\^VvF~hsʀ&r7sg<$`T>O̦ ".2HO 'Ҍ]*p4 zg&4[K}3V=tQǓ"U'Yȸ%@*L[xQ?4g2!JБwxOQLmeME009O.c؁&-7-x̟+@&W4rJO&K_qEJ֕RWiJ] HfLaVvE e*R^>{J6d:dϱѶjomȮ=|o>d *eCx,'2z hJ|&rg.Z oOGg c`EaQ@{q*Pe=8kc,"dB"@H$ii,G^M=FğUweƓZ4 |8T]`QO2RyC!Jx4;D+iYAFl k[{"?mILBb$ea9k2>E^H(3@nh ZhҘ?.6̰($/OwQjc2ņcfTf疗uؓ9D棘d! U7KY7Eʫ2_F՟yMuBO\*#3b5r~iy;mڤ+ 7΋&Q/:2nlNjf>w /pV@ Dao^0V4ـd'WKB8of&s2 Ag}vX&ӂ\|юxuB|D\VOԴ%#EbDP|ܧv~6I ?B_q:/.膑\,cw/1CYՑ~?o+ 08Y1fR;P{< veʞ3G?X/ ;ItsE]c!Ol﫠;[ pCt`G1=f Eia㋘:B=Ӈx%`X^ƾA3+Ss y@ZV=\/4 9{XڬzC˩}cUka<$V6CWW%@ɛ8WH1#1TiQ|l$̇YԺNo@Q˝\!L5`!+]"KF N`&jR%D-(fʑ"N\ӳIy< #vȻ t}|i?HS+SwZt +$\4kI ^jN9fw#*vyˎZ80إMH/\̎Yg4cOB ~5>!}!u37k <+hgHaq$5ct^R ~ّ劺GE7}WԥAR0+"h4;~·_!k>qmqN#P?zL,T,Z5 MQq∂җe`m}=1U&0(Kr^5w<ɫFp$$P8Mm0Jb; lUmpIn 19ǀ,w _^wS+ЇJFZ8/vʓ֨Xu ^PPo'<$ 8nokWoCr6 *N*p$li{އ N ]juT:;}P#X$%fOL)[i?D$@fIQō) Xՠ1m%UGK%Z$ɸq?ܒȠ;LME3jObU{\a 㽎@bUʌA(N;q mT"4Yj˔`.æ'ko:Ȭݔ '$NQ@~dLNMךkqzΉǣ%_klO|BwMCހ\._ 9Qcjl)Ojlr>؁J^Za1 2j9 nQc3"f"}00G{W Xq'#?s= Y6x~ZG`Kׁ9>Og)8~Kf*g`;=,CWj9c]qHBt> ;ۋHถŻUɗEՑykoMc$>' {򮢻Z1_㼪-6 O)4Mv֦]k-DfSW<|=Z` ~/egS|l.b3Ţiq^%|Ytq_kok=k`hWo9uuߨ&إ.N1 OT$_ZG[RJK  @$zb/Kd*H}C4NڊW?q:+ZJTj`w;u|#/VGa@AuV;(koN(BH lNO3֡l}bYГ 3R|N*Pe@w/6֍vT\R$S%p&jfY`j)Zr6 R*o-oKZ2X<ׂ5xe Nz\ne?\vJM");`ʍsҥ|K)`4~eDF*40 fÓoKV}zg@[Ī cDW̠[5+L3ɥa>Zpvq#c Mq0kb4:^ېy&X qD{5˦走Q5)UԜP RW8ca$uMz/<@'[!dFXW~& D31R1`ľL;Xpe+uL/=~{Om} `ŰO$a " 1[^7a[#[ %&wt&EotHnJ`S ZS6]C8IKW@I rHӨ<%D {>5⃮4 ON&C8}bFjc `rIV\zȮ)$e+tpxY[Оn,ʍ**5oL8$!.51>ϐy3>vY61ngzZjѕ? *y< ÅIҮMy}޺| &=L o 7k3Zp[zRl@aWC\.Ӵ9"[5[DjjkpM=jv6~ވG5A%߀-]:N}MѸsd? _( Lf>-)&&c`մ΍p GSACKBB{9aɝcG\&(usq``ca=7R?`B?;12:=0>dC$eak{#~p,c|Ktlt4Uzh2<"p#Mhֶ4=)1o*#T{ЇK4ۗа)'O,kPn}P̠u.Jߵ_џ?RvWK;X@ZB]4#h/l(Æ^Jǻli2ګ$ \j8zj"׸1 {uξW9oHY;Vae9V) @6)Ek07Ww15-t1mM6uWnۀMD\x91~/!#jV 3Jy'%"q<y#%f-~XDuN+rxՋnŴdԾ-FH7n1%Ț{:{@~]-֝m s`lG[Pݻ@J\^TqKdM"?ֽm[ZCr/gyϭf`x"aFNRۍj\,?E$_{ҦN+˷@bTZ!X/4AJ;nX>R'R, ;X}<\> a{Ma=` <: >-#e*B*#e\2 #L{r|&(T[ ٿ[Ңu Xf-QO Y𗆻HY- wIAA;'Efı=¿geQT e%`4x{ԒuD_E.g,T[Vٕ㿱(_FwuwR/z4=hrJ8Xr Et/w^5rB9KYHxG~p=،n o]AL߶E%9j4iE~o&7W~ZG&YN|{y{@H9_J>:z!3 2Q$mqL8"ngM^eIXm bc׼nY3cNn{G䏞dx%"vM/+x8:`@_!^V(h9Fr TA]EBkU 0]RmS&-$+Wj~YG#: YbģlbM';JL޻<>[?6UZTj{IN FA2%rVpbִ=4ANW::ŇlUOؗ}dP**Aֵ{s{Αqz%z+†~޳ȡ&jVO N^q_"^0 Ja8d0C ʗVJNj|cY ^.]|{:$Pnucw)=?cYwgwqm?Cwux(WW;aOz`xRk PZBDR<1:o:$RTm; ḎyY"]sRuGt o0FK9ԁtނȌԕv{J\HRk K X!/_wV@C?M0 מJɍɆ|bR0oh$ĉ||4F!G;[r#:ץ a(X*>!P^H_0 ֫bwm\z%A.$qr2uEv#:>XI-pGMɣXҪ9?77\?>y9mqJΠR\"!N|U~_@5ol9B)\sw\JfhDZV:nPxbAioA'>IALo&DJ6~K$i [C3Kي.룊 HBH0ow^E 5Sun/2491ZYiMhq:iL m(!Dx!nN؉"RWzl.$3=%ā0yNHo8js1o䗮lGrf7 IƯ #|[xIT;OSH,hesRߋpgc捀=2G!D+N2̣ڣ n*6% ɿiGo|M O8C'"2X.|&H dۥZ A\ Ή+8:}ԓC>o&/X5CM'.%tTfe[tR=ZC +4n$ۮVݟ~R ՂfZPKث Q0Y.:B'H%N%Tv\?K.eÖpIrX/ԝjc-)I./]x7Hۓ;;Bv\6 rXk>̆)çEܸ⣴I&G1ߟ sI?;)dĠ򗁞o7G%hғ|xnpv a;5!MWi')UdzHz:Cgu~uQ;aTokl{,jhb!GpAhg_EKEMdHD^Dd'9wb֋, گNZC[I=U/*uyk~`3y0݆p#e%1jsj%Nhw*DiBeB,?ɬL_3QNDHTб65}qiJ[y?P5}kzS8MG5Eٌ"j;>>.vHYE;2n2kGLl+09vE3C:753Fe.35ITVW1}QJoM#2"|% rR`.nޭR*3,:$پ,@= ؒqbsd|_? ),},EE_ӐlZiAf9y7I+{jB?R>ՙ)BK"#GV_Sf`fI7 Iͅr<<{3F{zxyYq"e^?voι'ea0$[T6+O)6_~lGҒgsX:zyv{JZ֯A0Z`6h I U#C f` k)տ[($鎥ca&Ƕi^PPb%3NעY`7o^``9!X5y}m={_aK{/_S ЅE 0z6LOVk7A(gd]yHfVB\d]a,4Akyt孓"aqNW!ywE/^:y~ }ja649Ŵaڏfn%UOQRtwWVSg;|\aޠW&JȥnՃPϕ35X~E+}bg*EԲBN͒`zJ̪NO[AdCw[DHN{ 2tǖqB5UI_&WF=S-rCЄO3eU,wyOe*`Hjsr>].f$/ GZ|AuTE~X 6@Bc OY;*8s]vM7R5z g)fo!dE*rA &8l}dBK|f(]=z l )OC/[*\#dKYF6n:xV\csH9 ,9Re,.ktT\5T}qIJ ZeH!xz'ݕz x|{|,-lNFOoS ێ2KC0A9\Zt{XvOd|3+ r:S,-ovm:0DP_+'WWЍ4h!nLA1>>RŁ|tZ@+S`c-/nUHfzkFjdv0{6E92+B|uɽ BSF7$OϤs'rfŀgVMMcb _3UDAW&qw&> }Ԧq>C}69O_r ^* 0D}KȊ}aOi.M%eHYWF2:Gad [b}n33'PnR&0klA(q,7FEl,Ã[bUJwVY[3dut,ǃxGUF7Ţh--`)$evIiIhTI %YxCݽnzӴ*E=5 si#J) 1l/j4wK8&D\7!'ؔ (l 3sДW7zB: [> ǶJ}Y`eh%w!mT+h0:q"/cdؓXUX1xԣo)63R1X`N@ng~p`g,vz{0YG4B$S/3SV,0-}̡rT0 JS^ r+w+MER88´JMw~kSPV#x<1}Wukfw(aD@Y,e7LƌK/o+m8Ny4{ۧG0:V7ß봮^֩MB;Ђ aIܝQdr G :5J,c,HnڮN ΃&D< `1a.D`Giu@۞q&k]ש.)j%>n^gB-KI$f|k ]| :lķ jDۅ~8$g?my2߷N,-bU% 2LƉZ (4f]ptEP=F6rm!xFly nNJ:ݮ's&Bn)b` r_P:E@-)ZmbRRBOp%gnؘtjtV%6Q1vyl } ^).c c =?h ,FT{j &U;n%"bnR5tW W xkLrOWn>H'Fk)8K\-0ݦHd& Rt;b,CpE:Qԯ-,%_ >. }OI u׀* fS5m pI=Rtt \sj=Ȇ|E%R%cv8 s;Hc;[~OHK8-o+T;M'~o^w!mcqpU z?UR4+B$y, KH&ߏV~v3z0LĺneRP:nW*M&ư2J/h"ңwU> + 4hѣ}J6*'DX-Pi{̼@)S0`!czmRЭAmܛA1\S*UiG銕a ʰz`yMrIl%v8yx&@Kј3re%YA;O0.{ U{9DOǽ/ ш/vњ?c̒V3Ue(s{YdTq00OX맒< qN)^jC=F0[PŏX@-BO==RS6{-7r4VIO:.J-ՀM8j>ւU$D(rF:>,:Q&0wV=1ߋ@TV~07J?OF{pƓ]a:'R󒯉z$ ,%>`i; 5xMB+?o/ZNiL-z]6gEޙJd>HUs(b,;k/z <&RM'+.G~<'C9%Dx 'q$|9Z斤$F"NY0r{yo.bJ-5Bg"]uIh9Zrg%@i 7ww03*S̲rL]2j4"C|"5RuX {)_3n(zѶŃUP( 'ZcȲg ;O(qҰgBCo~` WN}W7ofhR6b69%L ]!cٶ_t/nX|/m:6>Z<.]wͳr5{= xMA]CR!X/pbf?ӻg!TspJix;J(8 q$^Ee7f$ ]7s:2uvaK-Q$L!޼߅~#3B_x ]n̵$m "Џ%9EK<}}bĔY8YjMi 55#NqQ"Fs"賔xz&Vs}oG'҄%y O{TY*^ 9]op|/A NIޡR"kӘ Ş棾T'kb1=1A/RD"8 X =okN?j]؇r3H}]NvNJ{E״%9᭲ubLEpuo s!C)`D_;"m1Bs%:Կ";Aه3~)l=A'C%kׄ H,~^a E 4.1w itt^ OGڏ(#녔J $qHb!n [_wdE 7:,]JUP?OXx2[m[d`QbD"BYpg _ttxԘ<ÎdFľrGB1tG׼  cr{Hd+K`̷@*kJo=rNJcy (FmnBP}iKm+W=u'*ND!ْНGx?@TR1 3{6١BGFq̦#Bty@vwbn#+M+ s0V0ыU8Kw%ɜn*U} B`y b[RȾApB:ty^2:"3i6 [$iownydC(ɺs$ZY-_fEY,dÛ!CK2s*}g/m&tXSk@ce,dBp%4\휚q4Eթn}B?:H$#s@Q: a "+`oEQKywce3B3[kdua ̻~R +YT}V:I<~ Pԫ.kza-9P]j_3P|DHE0LͰ.dwDw×~H: P=1S>~Pd+SFDFs nЈj8PX3SEY\rfǏYĔ"3t#_"1/=O?S{Bs-[j7%XյgIE:-u kgOpu,36b$nt4nڦ(86;oALL+Wb ouoc bAGmpiebc^1yh̸}j뾺;gKw4h}:9Fd2RKo4R; eNjm}Ti_βF+JA$(=LEw*3x;'yhH*>pË!h[cʵ]tEM_S&.]f_ҜnuK'vFDZna8tc9i=e8G'=;k.liכRLpK.eHGeLea*^O@ Ԟ\~?|ttlC./oӇqb"jmob;DYj=g4?m9W9V&%=WKI0 qDP-GUp[jLYu|&fƠOvfe9ME I FYc. +Нz mYf?iCV<~,3u Cʻܾg[ co?e^ef@}9Y5^IQNg#㰟?8Td/xP}5`r?OVPFX>-MA3 ± ûZ1W]6Sgg^uRD.:I9m@&=09D,61瓖V[q\Z~ ?R Vݤ7<Ko!2?^NJ%ojt=h?7WX1R hety*}Qp݈: .a[ C6!R\5ZFݙqUT|-3aH`;Vknn3X$)B΍FweJO3%,PV B5KRSh]%p:U_{ҺI9e܎J-[|FUnQ}UʑO.Td/U! :YcO3$ƹ6 aD Wsk/'oBj/I@łB'Dj%WZ rw*s[S&? T=!L OSaOy!e'}ɺ!:gJq!i#,Uʺt[h] JYETR g5JV$xHLΧ4C *<^y D&{(S<#K&8vTab:]}Dzx[knZIpcII+G#0|Ȏ4,C|=.*R?h%u)>([ɯ|1Ho&"}l5c*NHDv0j<Ҹ^>F2H?TI7E< CJΓX[X.-- F}F AKO3wgYC3Էax\$|1{Z\HWa[VkTkb|cu ľwoAd\!=G[CeԪz'zG$|GޞNMbjgs潦8 qES; BzgfRhӯ+:pe[9˨[A;P LucW0.1T795 =qZ3UFq@~,w:5Z^{H 8 6UZNFD.\6{spkMRab.[h[PvJ'Kj͆"Hnɓb3q %Ю&^|fp&9̍)xQKAɠZY˘ӱG Guг\fpRFM3am @vj),>9Md#0qKN5mSZ$$cymY;&ź y(HOJZJK-3!YFoKF\%8O?mX;exv&LX".Ǡ5},xuMrRK^"_="tĠ`~YoDh2 ]!PGǛSͬ̊ wHMom 3[w@2z[=` E!OHjY,i TÉƇ"aaa"%z=a4I8vX%t[XzJd6s{!GeQwUl?i(ϊ> l~W%[oz $,׍ӣs󊜼9G4ֿh>ZOudUiJ37$Inq4>|#Ml܆i;PY *+BThB ! sȀeݦ,KgB,Gz9ӳ*N\LJ`) ,wbu=ܞ?+ԗ'p_۶W ϊN̖eZU$"-;Y`cIGB&m4*&G -.qS=7 | 2-39N^Dɦ+j ;H˟y|%{׶Iqk(`]2N8 \0ht,㒊.N7lS晠wE$~KY x3W()q֕pM'‚J1iSMLIV #Ա%"o [`~QIK!J4ްȣ Pdܗpɞ rMI]oW\[zӽRnՃΎm.J&t} !z̿LzxH(ק두ʋ#rcؙiɑKk_sZpPmoiu ˆn:‚qTag4u"PT95timXRy"@E,޶dՏ`2+D1mό蔠ߠ? SE06D21X(?+ ÿY@p{@R1;zrE[ ߑg= =+)ώǢ@ʰ.ة(m$Be7MI ॺM2B:O?f*0kӘl{nmTg3DOcEnpLBHn'\Sя)ш, %b&qqRKl1l LNV&;e<{)qUkLigH/J1U; 1]֕`&&Cשm9[|,N?d$"V>bQ:~y0Ci 7d-J!,m<&%$; sZְoK%Tck Q/ }}i4WpKH䣈W" =)Ց&ǍzTr) j67%Jӈ{;t{[4*ƙcE)c+i7yRzzeب;]fM{g{ - ,y]+sP8T×@xvo H6֍DBhLmb,8űH^w(57We@^q̺4n\S{QJ3o{NH TUyzAb}f5n!a17(v>W#.GLBAKtHtRNX֪$Kܪq]bsaҷ,g_4yÌoJ*jJV=, -wZ]d*Se[ـgk(e|2ko@IA $Npq"~yͧq:B? Հ(l 8!P-/'ѹ %h,۩(D̮k\bO4 (F[IǼN"c~\ ]YE,7d(4Ӕ )1"rLNϦQ~'Uؒm[д`΋X讳A#G"mڳ4HW*+Wt- ʴnN{AH=c&؛p>[Yvw$o0bItzrD?K%->Bw,WfIRz0'ЖUm~˓do _ <NjRS-b|ĥFpU[wh ?#j;2p^zuk :\/ }ǸvS8uظJU, g[QD40]:&4Ķ5UgnDpMNvz-W8(km'a 0Ԕ|*"'U_Fλ8,%4?g4ֽqcR,'v߉c)^$qgLk샶ÖS15yKRO5]"Pv@ѯ.A>(x>Ny'2OfKSmM' 滦x/_[:"8QfJE]co:4Qj-!cb\Ⱦ]WVg4NeԽ";C?M:*0M \!ܤmXkX\ۤ %'tvBƅk^< MXsGfuqb(\ 30Q7A &bFk' J 0YxOaRE*4~ /,}tޙM;7U"ޠ,G`ߤ4gI^RD'HnjQBߡHF4ALa!/y!^66⊖l(;ʭ{N7-w_lqamV(N4goik; Q7X0DY/$0*-ƸUUMAw1[" Mt_6U.'T:Uu'}50  l>{ul!X۬`vj#|9] A1֗qQ5D.} Pxr+R sc:GcuI=oȠ<)DTMX,Naj-nVu7&W#/%}g\, YoGu5Xz#DpPݡ'ቍy.| ].ndޣ+04mvfԔgxeIJD7Fr]L"h O98T*XX'n[RM^i-{3CaST0ؗ{`")@J~ycu]ݬ#P^H9_8CN%+Q;L4-1Mm_kc'E:O8Zc-BV#)+H.偺;~phaF<|GqDS࿪1UO{`s?isg%e+ Ȳ4,n2>=ɩLChTi/Jwav{sX8s"YlblVwQ^"2oh+ 4SG8߫"cWjywP K캇\+T27ñ d`BV1jo)HT", E*m.#[1<5Y2 AvcK"-? b` FvIsw'3'-{6mܓ6 =\J g9ACc1?FMK{P7>zہؼɥmlY{/(+pT'r{K@㚙 ;C$uXE'ZLEJW>%66)x*% x$ѝ3J69{{tyᘤat443:ϠW$ëlfм,=CfTb|,l=wTŎPlzA" !_@R@|'N5^SVPTJ  ļgo_TBKG#FpI$f B|U6St =&Ln+3ZC {@.|)|7$-٫Fm1u F6>Tۛ]3u廃/(ޯ̽ގCrd707˿.!gz%5T&sF0^й~ezLMN;![Pفϥs!q,Q.m2TSxNCnkޫG_i?AEYpM z! `/^uG d9競Ɯ~CӮ5j@2.saUa$ֱ޼^&<WL]RY|@g@l*6% @OQKmYNfsU@Nbu8/lz"-B7DPW1jnͪjQ~;YP!s#U_:dGKX<F޶h˄m 5NnlγTMy0bWЦV dB?7 cL) slpdwvh=)samZ!;Kg1%z" ;E-\+:}ksHpx4sӺr~K؞ܪgh|޾/d?)2'lWQ.LŻ`c# 8'1KmBHƉ)" GK-K,j.i\?'o6 }7udzJ0!.ӖVX )H@Boֆ~ًZO/P}PE#{ M[Sl}sWH A˟Ai'!0Ղe~|=OD[nr[kkAy|F3:`NC{US%(R,fAijΥCY`nPG㵱Cbh!Z|ή9[Ywk({niEB0*SY JtRnLg,9aW)gBf d"&v}D4ME~dg@<նĉ?azC=\Ù ueNFWy ` yn5ylkdbLS&) =h &rlX=˃3KDbineqK썒,n>TR 痜Ĕ=w^#ZA z% AaO_,H5Bu3ՔO! %j_rF JqSy్%׍j"lͱrt!xKHL| Al{}ǤĩEz[4vGOCeQp9;)Qpʧl74ίBakIK[i5xL&E l;͸#Q ܼ4C8J#JMr﫯˛ÃwѬD)Q$RH:b5ĠwmJ Fn) ýͩ4lg%~Sg~kjqE8= ̇a`$c ':XĠ]!jaÓ/ FúbVM,xp0b?Z*s9$\T͹e,\E(|dgftUHWnG A6R{`RMZ?*=ѕZf[κ Lxsl=[W'c*p|l@?8-;>;J9N{L 0ƓTO jjvd8(MyR\.M:?8mn{i$/TX vrAg9DJҹɾSe"<=Ù5>ի RnZIS"lmJS3>$Gb{ F.];oQmd$JNI >g=zۻ`CJ$ao; HҞYAh:պ~$5p̶mG\ MC[28Ĉ&5*;1Tb4#b˰2*`xْjj{[2x$~1IO>tgԗ[-z _:┙)˭A)!zr%!(aD8g+\M(aEYl7fɒ8 h'l 㥧oF. e$ޙ4ފ&j=f{) nZsSH#<&Ц3fa|{#!Sxi-f@qF`JnyrDŽT]N}"FN.A]r0LT#8d` X:וS%h4H{2 y5oy}dንh#fDx4wNml_Uzz+d˙o;!iCrN?AGGնh$&3̝t$JH a棖oȊ R}BX<*w:$tn[R#`#Fx@0ڳ*p'#hdg1?w˩ؒaKQ2jMEqe>LL'YRI30BmjtH$Oɸok4i`A iTr#^$RՁo}qIRLW*/dեؑ T8ouʩG Per*46$^eCCa$#b)3HbWoXaGar垖d-|c>;46Db&I 8T6 i 5U%!@"̨ƐU!n R,%)¢d+ UxS f\9*P`?sW:] HTU jIّIJJW')j?ȜG/nr+OM,Aդ T6(1 J1ZrK\vTɕg3|Kf:M̫iHMPtY#]cq,q% ]oR?@5s)>4M`@na@ 電ܛֲlB{DNǦp8#Kedpׅɀ}>:廔^L (3dR:&T_jz{tH+_ef_"^1 qh_(J<~\0 A 33qi!ӪzլB4Mz4@ 5t$>F&K0PW?ՙM85iUɝ&|綄!sxbYKF*']>:cԜî@CR,9K) Pw۾k8% PN?j7 3ual'wI`NR$y5,eɢUc";he6GUN<=E}W{Ιɸd%Hf;qO))B} kCL;Yg6G{[tr KWV𲿅^&t?eU==y|6,pJ|@6QuJ#?,+uc@FQ+pL3r2(A7_<ФnNF^p-P*73FG%)G KE8>'"*ծR[X}ajb24o[z/' SAKY;dYUc̎e/{Z@58i4|/ۜt#IT` +@,7q1eu5+Kz4ʘ`>O[g7^*ܚa\G `o-}&lOGuu]׳Gt ؈n%Rp JAJeYP~ )Bn.h9>$颒HxPtS:[Nwά>/@9Wwiifpa QmVk<q͇C=0CÝU-c?FK羦_U&TczK2n B-PQzIaF6Qy QR?[˄] i~+zS+ x/ 7xWD19pj|$di"M?EK5D hkO/ . dg(Y%Bo A%ꡙ"IcK$,Z`ɠ򨏌Aw%]`o{͛-Jwae97F6 YmG mC3 >sG)fƒ#O=&ȥfݔKjs%B\і? Nqq*ɮFR9iBIvN!n(SZ],|evldS!Z^. 6v("KGYşUVUEH #Ҿg)_ d]ӄUu s0ed4E1KUH:5_emRȏ/+I7!ivK9۲=VqD".y~`T~˖ M=2 ֕r%;Ok\mysR?Q.ʣU0܇ &ҧ̃xX+LJaW>ՐiQ$G)={=O?Jtթ>p~" fl^SYWL @:Ź#qe!j/{*zɖ1ڔ Y1:z<%tN\jڛz27ͳGG1mE;A"Awdӹ~xFr$EQ5R:3dKSfoU >j *KوQƲ؇EB &`-)hЈ]OLO7K#l\%Ҽ4>9p5كJ?7> 9np>B,H2ܓ -w o1^^1#CxB*_muj$ݗutSTlbSE-S@kOZ!,y*L-Uuf6 S-)`mGdmuĊWEW=H\I+Io'Cf-7Ҧ u8i0s%N_4*wx>ԖyԒO2/T:qr#)Bꞃy)FvH67`H?E:1~)Gi$iaK}xru/Ntdrs9q~Zk]%h`I/aR(>⃀ejLRhdP_'8Q9Hrzx`ۼQgt%]z}Sbt2NXa1a)If}@?q.A_E(w6?JB:A&+Ⱥ IƤ {(&*\h(qQr|k#AfWsDE+0W^벮%2OfI`n%|`&cuP^$.`.c&FU]*[]L|O={n @%'`SJ+)G+_̼NU [V ?sr]7GxPFȠFg7T8~|^t,q*BGwTyS%/ڳ " ?-Xl/Kj9tNh t\QWk75?ۑ둀*=U"Z3`۸&j%POPc8G%7KjhX$vU\ܐzi#K%^Iޑ[Q50ۦSaJ! h`Hۛލ`G͚Br H2vGLnG2?ioΔSu4uA,Ybb\5 [ y}"-ӷLaXVP3PIhO,Y-۬}/-ZX'-<$k9Ic2ja }yqIqL]Nx'!L=j&SXu| ΄ʽST%Jm6z.ItSwnA:hP+Ty/ie%sĊ$E?z>@xsX).w:FnplGCFt (.ykԕRjfѥ6^Y3D9/&k V/ B[xG6 {V.η{]V:sT|T]}p=2`(좌s XX\̢t^"x/oq÷Pk? ^Vu ua¸N,T}4v,O%泺ޢ e\p p.:,^#Rrk^H\^/2Q))Fv@* b-% vʆŴԑ7PG"-ͺn}=ڄ|FP=>-l,pi "jÃu9ͻPނ ORS/>ߓ0ڪDm?>˕ʗJ;}~.^”1쮕?=޹Ä`aVᶺ``[iƊp*Т{Btjg݃GDkK%_&䐮oSAmPrγWώ~ض AFp[O@06 y S;b`l'^弗E`J>+=ǝj|D*| O|?99'Q*h081y}qR.X}d0Tœ2Sa51}u\w唪Xc2{խT۠ Հn!U?نQ7čKXRBiQ:߻ l73Pk&uu^ת7d';a[8[W:$csu,h4':>7I%~X@EN>e@\|N>=ӷ2 n:➱l.!ɑj/0tW!o ,v*7AS :*@a~qF٨G%2 hGFs ]l ƒ%>2(-@*GQI'չ`-I( <9rP ԅr't400 (|k%g+Z%u9J/ y H9웝 !eb: rHZ[FqKP-n!x o X( vg4ūB}/j -Z%tq瘽DCvhEٗwW5f^C,ʢJ*s͠!w!_d)9[ҩ&btUxRsDYeto`ta#JUM5Lt g}ܦT:bE?TrE,7$vgM kT<&J0lZџ[)eȊ#cS[r WX^ͼ'{- E`^(ZQF&5Pe;Q>TSrn궘j@բ`::]B78#5+bald5!Ʊ) R͔PH ۠5!j}"޿FF|\!ϭyqV2~P7.S~$ՠ#'YEc:3L{SrG8 :$QO${}k!GT (2fl0 7afp) «FgT(G0$5QOދL{bbSig:PAp9j>dH ,@/vr/)bMbHו: Z$ə;UN\첦W:gGbT? bT@CtBct 'v'6V=Hi޲7/.w{0tv}JhCGx y"utJ-Dj;W4GmkcvXbA=ѝ˛h1Sv?*LHST)"C4spnAߍ:>5j{l߀SYkW̔iO3T Ccif6#uű P|i׵C*okJ]GMіPɴpW"콽,RKzر͜ȯKm0;'q:Cj}e/6rJ$&]#vo]0Kbx]u77y3F{ U=vcyHpd>]YP 1&uUn4ٰÙqa𲮩9кh?ڝMQwK?Z*8JoX U/ϻ,EȻw EұYM=F YW]( m7O[:M]QoI8O_DM{Г^P=u0ms:wF'1qLqb8> E^0&SrE[4bA )AXd jRt f^$}λ"<_q p_1yˎY:;#Ոf`Wjו\|08$.$u :YsҲNe >$Ҙu.['|\Q뾆bmob3{u@Wn>П4 u*аHfPo0")e(9ܼ3>$H? 9 Ftٍ@95y,SB0 .ҴZ&@KO䝗8N@JTtR))!vԢ! ݊3sF`t7CȽD<͎.]r>"xMP8YB\5)w Vey)n"t~mH4%|<";QmAJRdlSoFP͋œDn0*jyA;̚Bm>oо2k,ߨtcb%@ S:tJ9wRQw0[tUB%zdӾT1T[NkUEɢSg7A_[O^<=&V#U 6'0skԱw]"ZtF:pfO1=Q[L?l̎}kqx=2~un`͊[Y}<80QZ{ӆ0ܬpҶmmI(y}u^58[|TB%;1d19#yGn<uRD1zeqHX ru֭*?C ^OE୨A$mddCiГ@ԛJ#4ԕ1C;N2V1erE*|"l,Uמ<]GySd %g|wf=`ҝíIk5@HuDBԸRQ0PK^IP9=]9>M19gǤDϤ&j=1EBNVSE Ou9b[fr4y_0, uNE3CvA^0}M+q@HӼ'8Vװl}\ݧq^Gjo!Ӈ3qVGDDw=L"} 5+P +]c>8ʨ(Eڬ}s`",BH͂BEL|)2ʹbVQZdT}´<>c0b{QaAHy72Kca $\N#{sG~\2ʞ)hf10y,V5S% OIeA%z  W*3__jdKSwOD}H: Q~X\>`CLh8H-sH~P1NXs_ve1Q =1/f๭*ɓi/)46 3Si3BQUg|y)ƙ֣DMkCڿ#`Nm7L|!l`H(I 54 #)pihKHlc%E JyH~OPE>,P^uS4(Ftʌ5 3sǬ0G *9 oE$}|hlv0e1'ᥩ@N/*1*L8\W;e2qnOHj.'9CPWi7&VS?]0K5m8*Aь]dO$Pd`zRm`7z꿖Y<2[OL0MX&-yN.,08)322skW!n@qaVU(j'!PZe8s:9?`_(.NЀO.Ge,[ݭ L|uCKE\ӫd۠|sqrMt&i0d1邑tq:jח vc׷DB&4)Td*9-6Bȟ>leg%]k6MPEhG̝RN'"e{]AȦ.ꪆ&NŊe垧PWJ@gjhżO|oWhnI"샊Xt ̣'wP k{ POHƊPωxBcDށo bqW Xwfϱ;`Q+u.۰dqG4mh`e q-ň=ɷN sUVɘI/Y3e2g*L-%xАs[ZPtBTFB8Pט\p8\ŅQ{l`~a ./eso/l̘O* AR]/vw59JjkfJ]?cV=k~ ӛ9X<*@[Y'h`l6N6x)y({J,fN j%9nJm<}58̾f&u] á"L'm-Vo]`\p,UU]iiusmRg ՜#RB*пCsMx+PVXž HeX L0KdC-ŕ[Jy%`=VY;Gr@uQ4# (Di!1\injH8UMb .O+18r 7{-̢O{$U8w1>g'P -j$ \"F9u'A#K .>u@LVtGm9m*0EujɴG&Hbp84eN}Cx \1 h#;,.E^Vq蓄XrʍƧQJ8p0\H=ͿԇW;KƱg~,ˎQÍ DMoAf0渴jH>}Lem@B?Iv.N8^.Krpd^v5vM+i'W檈4Hfӭ:STRGSq\p^ ]f8m Љ7'4V @m*2 SU6t z Kȝ5?4a2aĿ)_%]вNX}]A_ԚU-UJjx6ׄڧuhloք8Q5+@oPuB."f:aS2XNc㖀T'dSYK_w$In#É#l =ʬH:Q*g|2A#o!X,ӔrqL'{7teA%\K hJ*rc#芳G`"/=X.X/Dy#bAWVpŝ>k5[5o#Mc@3_" \lY6.#ŝv2z3ءY75{ǩn0$tP`:<D yjT<з%0P?o$iaM VlaIYjiAmJ2F NG`Mj&Ե6fWM'ִfБ luvay[DZH:s|/I𙶒ZD9B.jJd ŁD 49J2Uwpg&SrpkI:V #vkzp"X0mR `}B7|^6rf܏zbO&n.#ۛ@sA =h}Ev{! w .rk+7>?7Zwme`v n2B[^τM: *~mp۸Nn8~{Kq~QJ\+ Zu XW G9>g M&GT9nrPBĀi *10h@'>;x"ڕ=aJ2^^kk.tY Ѡ,زP(kʷ$Np $]!bHdXщ}+*"}[ω[؊R˧fuj"U@^E\ou7|~c2ޝ`W^^X2<Wq>k|~D gTaI_ǒbĄ! 2Nv}_Yi/eH3JhBFG]>EoTKdÏrɃL%Jp˘F u)X`Eė 7rdp0@pDBm8_ 6t,1 S4UJN+ItLi_CJ,l_oyAw!s\hHkL1{'4w_M,\lj <@0tAO[wkKԈd80$lLE瓭_f j {_CB./~ C7LW x$+)%Q1`o%!{,%{9*g۝!2m[Ϩrsd vK m8Ŗ Ԉ\ԟX0M?ʁ,`:3;%T{Ns]vCW.$9EUo*Kg k$j5YV8!l[p0UzxGS+[ $`hܷ! J!q1"5KF@5D,Y׀#dɲ~^߻KKeD)T褁3Vϊh+itXl$[!漋 {wuN\-(O W*?$숅OwgLFiF] ۗJ@˰cXCOXsC[mӃtV☠LX t9` ԟw$71ԌisGŃSg8R2ER= 9F>$BgUM~KR~:[j~Sq n#X)f73APMe]sJ.BR*/lr6s}<m3 3QP?ʹ e=忾~$Jx({[fH&Dzz9/m*5hk"u[t@DsZ9ۭ#9λs6^l\N؍ ;4 697l{zԾ.U0Fv8.GVaXIǐ_մb2,˅@zZŭ"d< ֶ*3$gN";M@ FZm*L]%IA}waS(34+] S:?" Hup&>0fupJ9 ft]4ehkjE:&sn 詖@벪R 0 ~mgU#4u U%ү2JflTx9Fvsݍa ڜ|SoVAy P`f] h5Lj2+tLqoSV\HEL Jfde$o|6Y?˘ŕPyy.t vkrtMq|*N{Tv"b5ߟU"҃੭%5Ce42Bʈ(?m b r8n% |ViO܃6{6,u\%;&["nEruw7"~JFuGuhLh퇝B:[,6B= >5_6(FCLƽM__=%=990SZ&I1Yr$00ŒM3VT%'O4Pz.#<8?&1+J<+yk魿O#!v6wZQ u9&^csA~  v]:'&pn( DPѧi;O6;vlBcx!bn*6٢3߰m]#kaֹޗ:#&i S `9={)M)$k~ >lTZ Ү4qmTguQc /+Uor$3t|M ^ 0)/5הO}BY#XO#8N_UO A=*ưm:W / 9`ݢYm'cTωc>K]V']> .7 eл.? iflyfrυq9 b |^&|8le.nl!5X40m8M"y"yf!i690V~n ~Dc x..mvg~`e 224 zǔ/k1#Cٽuވx83EL,{)2X!WrPC*upl~xJR Fͳ 朣n|KesĊ>*z=Ku7+.eT5q%u.5N@ב=r)fEas4)_9goOoB^1 rcEyΦ-#+Τ Kյ"}Rh`C+j첎댩IOzXF|ff?YRC$3TF\'aiGU#]<|sN#WdJG+Dfk*;Wd"T_(K4{h肋8jP Zl}.dk>z:*ݿN1֔XOY'"ErћsUʊ9KC:q}ZlK1oW?eͪ[U Cw&d a_/gY!zZ|lK=m:8] C{ӻ{ PJ  Bt27>ajās=Ȁ}JmEO,7DrZ*dxxzaY T42#bild(ak#}W `Sou7rIj#͞? Uě#G! o;S;@s$t(Ͳ1!rt/݇)a_!)c@ռohr\* 0>ѠbŹ{f_n j 0ml5m_8b{[01“Ê@gx'ˬ[foT̉ij)onol4aK5'QYЦ%:YZSc+h^.~n [4N =,Ev~/π;-9XۢFݪD-|*%^3?/:ع\.b L" ,C߶~QLNh9Xm=wrHP@PiY#J҄ɣb72rL{lr+O.|}Z K۠6OGFWɝ J^zڠGD1Ck[P-!tRs3F)l٦V3nۑ7"a!6:smu6EWv e5Va;/^{e M"M؉AXдm/2Z*uRUd bÌl!70yB BcWPv:౷PrZlYSḬ{$OCH 7ϓΐb)Y| YeX'w$|\.Lń¸TJ"WYQ|r:FiB)j+9F#L bm8٨uyL).SfzRo 'KCu6y Tۋ^@;Pk2_ݒG HUGHPFF5K.47;w١;,O.`P a^ߜIc \ h^m-y fj땖sh> 3"LTϡ.HyZBU^x2h$\QK.m0%1a" o~ɧ"X*v v7.0͑OW{=3:BvЀkkF%J*(+!8᪌1}kwzj<~=9RRg[g8;;Aqů穣C:(uSD䛖UN!p]|68:tKr7%Z>H*oPܕK 1Љ]N$U&EA^MɅ AG_Xg0CE̖S=ߍܨmAӆ帽׬D*_QO4DB xOqS?J#/:q`m {x+]*r^Hi;/:,{L?@肎^bϠ$/hvJlm (kv]s3OPd D=oRޱtۢ"Ko3sɏCkXЙE5yO\~#aoSeɇ}ץ:ڬ5!6fݖo24pԈVE'pe|Ƙ!?M>Ԫ* pMncqNzF\(!ra@sC{ՐNyBJ ٳxDF!R_ҮU&hvSFNΒ,rNE~'Z%IA\C0 `_0{ m@Hc2H[2iD),rr\W 9VxyPoA^-wJV=ICAu-dl/ ?O}apC5;4Khո ϭдus2/+[tBoM@4Dmezʔ޻(޿U~9O .Eg3!"(PO DZުkO6"-~+vK&f`#=g*GTqVnYwU:\A\@ \vaP{a4Ȟ$^#M.8@6cBJ?d ή }΀\OR"-zB11i25 $j fjziղ 6xXy{IXmK7hr{KJ9GHN?o [71(Itfۀ~l{Ux#%tQe7A>1tzR wu֡ǖ%\ 8[m`2␌tJ=Pstk-龷\Õ4I Bŷ, 5RH/yY⇀1[/f< XD rj[!DEoch2B{1鋳(FlDb2+JD AXڈjHKGKҚ78uGj~Y&2~JXocCTQ3IVtg:Q,ƈ3Ex>XFR` =Yz邒_TZ ֺe4}Z/톡š(1H!YsDǺx_bD"Ǔi߂`c04 Q幓y]kFڅ0^bK%RW-?euw}?T;=K|@T :Kw'kƌE|je{$ǬR䴌F?a'ԑ,s[D_m_m4Ʈ”;M ̴`yPKQOr]a頠 HW;p $ ûY5;Є*ctOkU[i tF?Id'V鴰Ga|DmJ?e>>+%E1(o%yzpdV6L-zʫ{%I9̀Br!' -,q߼Jt5hyR۝KiK/)vI`RR#|'n_/ܙgX.-qE'\}*i:Ax/6V&s/+p5ST&rH\ŋolqс֦?XgLX뜃ol ncWyI}x0ʛ㸵-]P3>'VQPB.=&Wl#WLs(NSOwqZ$;HڒU8U3=F,7xqYE\K2+01dw,٨!>Sc@7t0$x KUeku ,WS~mM_y'LԚiͰ2rHш+w$=lK&,F_G4QUɽY8ԩa")V=,L6n7tnXZYj M#)] _lDyLIL84 &7NY3gp3S#3!J$*Җ ג(@séЎm% I,CH?U@$-[NC:,M a0Ndn_EK.#D;;)S'ښׂ[lYӛ]F$Ń%t+/噓y’xYh%aoۢzasvU$`<0 kGaGRZyONl.8_Nio9xq3gzfOWxC!<)$CKbqU/)=330 huΎ@WƷ Kyb:9aRP[N㾱z-CY E#V-}wHQ.y/ʴ93R#S^g2+\B$k @`Bc%-(S6@iΈQIжhP?aߌqe&$׊HBbVǹӜH@Z O6[] 1r'$^<#D60,8+䈇ԇ,X{"YJ[]?_`Yh3 9{EA%DޣЉ.? { @|Į"w}r|*L/\'Ǖ4k-gC}U|A]Jċыͨ C^OW#hJߚe3MM{c %V0LjR3#(X3oPN/?|d # I.ٹB5W^07;0Ju{Ah%45jNGDXףq3n&P] hLz F b0N;gK{"Xd͟ tdρ`aО= T[xOVבZQgB—~"h7It[R!1yCT0}#aѠ%*{*,]"l1n '`[As ru>5d1|ڞ~b6=C g^2y_`q1 a0bc1e=~"Sv:EL (ZA ~+~& >4/Il:[tNU$vjRZ[gti]޾_~w O޶-ZaE]St\\!TȿBÝmɻiJp0_74pG\ %\+aFQPVafLAs;_۱FD4k}HK9 o>3c?3˷Tc6oA:}Lv1M191dAU{nZ ɂHdhAhj=AWS?&(/lEXIߎ"~uD4խQRhI(1೿Ƞn9!a?_^~T\yl @8{,Ϻ=Y%?, !7ڏl}X?63Cxa3,U8N(}&gZ6楀[a!%QZaB޹S~6U+noZ+Y͉k${a˞7{yaf*ղ5E&guDd娎ԋ1#'c-1u.mgMW;w@HU%YCT$˅ w# PXk"FwCG%f* mZ.aѱ:W'XwrKW`VZ 11 ,8Jݞ x"s *Y- S &̎V1ĩjJ+"5_U(CBb*}lթ=y~GŅ,pwFGHʎodQvh7^4aʲ̪Z *"#C ;@1q@Z*L *+ BߎN S P/S]M8u, ^lweOZʹtȷqZMd͊VO#yroCd-:hk[,`erq[ӇI:2iX4hx?e8IS_ڶu bE:/Dۀ⋠lF8`0i]$=)p:p8-DEɘL|^%nB9-иE5sW`y#&3 KR0V1ha8 eXrcz6H޳cRXZrP`ðyFStFj:rUdԩax1х0##;\Xʎx[s@( < RlW "6 ܐgJas4cOT5;&+w~+oeDB/DءWe.4EaoL NXGG<^  ъr6nV }HB뫉8L󉯙"3V@@tZUF}GgYcX-說9cڙ$ sTd{-]aI֒ TJo_M,fyзaS/ʟQP*a~;GWSd[h<ÈLom.<7xlEiͬ|Hr]{iA{W]62y=^کF/t)i,k'~7'QЗ\3F T9BKF6"Ja4ugo < yBq3 %j7 }P~;!~mwÞ_' Yp 2k2~sJ 3OxOV(#ڏll.Hd"1@n~YP*>X < G=\vwy*Qu M=\/EF)4gK?eL9I%WR6&K~i@\T$1o2Z]'e2<*"WRpiur⒜i> 9? Om{94š02>٠apv_Ov׵xMw qhz%؇ 7Y9BAI\JrM+TiG<0ԩyrCXJ*Acg 哗H=7Q׹1B}uI_gܖ8_˪]% |N0D ްxދ49.7rPJ4c*tkÆ:?!0eg S8 sX~iL|Ki Su{E jа_t `)9Au!=}o}c[jg&h2;rOW5N z)\@U֢VRܾbX_| S*t.;r/=T;rr_% wIIW;3i}TzCiUDSQ6ҾbEVRB+NyQO 1{eceW;`IƠĥpKg͗Gi;}9.i2#pGY t|'fCx56 \ g!;~9L]ƃn$%Fcƴ?2"n:/HkӆM51˻' N2=@ GPhcz g/KXWдla#ZJ=cȭs5DaU^b'&O(EE#nS x Meqy>`v6xlf:t+n# 5C Y~V1!Zޠ犅9&Ogp%0I1댝"o6^Ȏִ%> VOUM6SE6xɍqEȟv %ˋf)̈8:tËN:ާ \ =gLЈ(]]xbfm'>C=֋':/ƚ3I a{\UU{3%':Ժ_ɉ/m2eе2k,c.b3q(~|i[ ~$8W &mjƔ֏bFc3) ]PiHvwz:O-~Ӷ8nRN%7|}9:w\gsЖg)i5hޞCӒ"Eu,9zD. H4D (MJ(N~`!4[m1Ν:IOHuf)r)c0qϡˇ#SrRǬRuJ-y/o( uU\s6(x6uP53T֏(M--϶xrC q gXy-Nj,fWZ̫:ڈ翔 ~r5>ɸg^䖿 Z7G0);_YwmMT4-| ^D~߶pM)'AΌLD W)io_vyq!.Q2BļCM RGoѻZ5#6GݟCYiI;RaK>*İ07jZ&OY|A~ĺ|Q:)^O㗵,=^eֈ7ޫoy.dT"~ɇ/:]!q3W yrj鯸><;xg[ʼ<7+hYNmgxˠR@R1`uXm)7T-(vg|<益v5pޱ3Ja}`CQ+O3*2Ž| Zɡ SEJd=u -y,Z+ݑŞjG3, vm@?N[$ ,ڤUi&V„SɉX/xq@)2( $6‡њ[ 8L0-N8n֐}>ꞯB)'=|'jc8T_ {,Id#;}ٖ+" jsów%ĎOS3aVȋgX=vdC%,?zSV/ͽ +Y#?'=J/kp>\d7X'kD/j>ґ-O`=.9(i^^D&ꍮ%OVEV; mCwXv7%9 c2JԿ!q= eBsh9U=oR$tm'MNfQEi%6IX%JN[9NRSflxhu6W~ ''DU EZ>Q Pچ}0Z\R6L,pD(w:" N0.a$ Iŏ'*oe95Wx8kFVx"g #ftY)=z=&4'p֐Ը̾/Rz>CtAO|f⤮g {ƅ#o^4Grmr\YMĿI'?qQ0)77)W5/^̲P5z9($u C` YJ.; T0f$3y:((4l߲\W"soI-2J[6]<ה2{5-*Xadn΍έY3de)zz&t!@x:!1(p@pCTDK+pTI:bm`= rUW7|z*Der52"Ɩɹ{UO'l#@.a>fc߮Q|Pz8w1R$X?z7nRз~!AM̳ -NGfȄ ;/ʓ~1Dk\??⒳f DU(b|I zƄ!2pO,_ '1ϊHR`3>ci}~ߗRYyk%c8pӇ..@t^<-^X?qUy*-j0!D*[\.<.15_Mpd|mݏM`%!uY!k'hd!OTt?D%̳oLԓwJ[$A1)%eTݢȋUᾈ%?jhҶs7'qzڗ>,#~q{{w}$ {>Ev,Ym-PS6gmbl{PwSh]~$bQb.YEbݙL3P|Gd'lf<ϰo }?Z}/^ְnxcm g Hs(<gpI!5\y Ѥ̰ڐV~w3"%$B˜6 w."ZnaKtRP+ǀ6ĪZ\}f"nDvũJJu?|>FsW\aTDuz i@9,[ '{=4"ɲ<Џ1fCzz0gOP  GX̜hAy6j;2wqO s[Q`Mhӄ݈ˢWaȶ x"UAWh?mt Q#6.k+1<@Ī7cR*Pǟ%{hm.u6<_wc\C=bT²0lR^Teač!6V8AxlvՊV'$ZFM vAgzzK~i36NT.~M) gjJuê\ǝcqU3Hie|y ovraqDOJG+!+G+m_UޙǽgB;ÙrB n_x6N"Rt؍WY:Y=:=#U`ly=+;E.׏&tzz )LIޝ l&[Ô#t~?nJG~BՒm<Ytoܥmv#V,-ni=8!x7dt=Sa~ܣ܊A?oӼ`a!,c])x'iQG FJosրDW!dVLGbV ص p,5b 71*zfeL?y3هq"K`]$œpgW*_x8IgL|N9;u)MH\hӔH`z\XR zmjɸƖL6T Aؘ*v+Tc;?T*{B%#uS1jبSJ8`͋ 6kxZqaf6M^jD:i-x~~͖&^؎Y"8.um3%0S(5py0o|SJLbq: m>ݑ @blE+\)(6#N1)T+Cѽ.c(WJv.I~uGӘ#6W2ptm7`od cu$Rױ3{; MK{[MX\3tK=v~RzK>7Yo>U50WBШmd~u*RS}Bd6c"1e)'yW)%ˁzx%R´-ԙ6A<dwNrnMrHCԝYp `3zP Q6W7NWlp%~U8ک;m7\BǼf cŒ.1 OF5R*$Gwb5 !HѾiW8 &d=^*?6iZ~Gih@[g $B=Dt,z vtz%$x-6IįDiᦀa<s666X¤NZS*8d:Ǯ8) z dIV-^atFĶ0&a}}^A Ψ D9ֲ$Ж7/|+Sy{YPqX ?Es><S(îg^ a{Jkj9UQ&&FoOR~ل%TFj11 J0_-.ݡIbLFMዾl@œvfg:%oJ"HcxXxe^\Vi7Xz୳ 2+!R HyraofR)@o *x}ߠeSȷH^WECn)C]\-Q֊isPgx.!<9dLZFS NXOvػ<ĞtNEQ^i4ٷQf-,? hdؤ-dv=j$}4cY䍨KB[hvQ0 -kЌ.FR1qII{L5~\Y;Pj .|"f~LF}6~, -t(lI;")bxTRPT5jgA~w aExTPߣgY7hR@ q6~ д^aF >\I<tx}kjZTe Th"PHRB>QDѺ2U'f5-J:aj/*򱏖CA5]AF]9kj߆GE>o <@Ra~4 c25k营.FZ!b̉-~: (Za<,$KÛVR7rDK q ,}I48Au ?uӤG|=seN;\F@[􌁞oyJ !al+*M𠯄x`N!vlw5V >aZG7*5WlubyTu,h9eQ{[i?{Y*ө?Zu8lC:)rE_Llӑ`өMeYkSH k\f'bJaǓ# ͗Ӗ]J=&߅VkZq9Ǧ}0rEP0 ~(M0GE1iC|E$׎Wꚻ}<wK7~x \*[ݺ%zGZ !xuCf2bę5IPE+בpCc⬴ 9Nur)ypIXݥ~L[goO6xp"=Jxx[R0Ϋ>A#u. U{99KxH֘֟KaT}nj0IB2HR4% .$N3KYZe[05q&˩rqО߈$:I1&'題ԝm[h!hֹJ䕩r+X 4mzãKur:J G KݢdZ;̈7wP%z/gKYz_,1ze\Ez6_=)|4$l :m|ۜ;[$y_v@(2kY#uД~"FE&M=1A}m|B0DL4#S%V8]-*'??)$@|I&<#uQ@P&Ha7Mk ST؞( eLupUbF?x:H{K0,ҏl+9C\%su :%gu]kTC+o8m;ęTEPbE7Ce%mjCU爒qy gEJ8IB?v5AZ}!6Q0obD M[]6)_*@g,ղMLlL|ZNt&L0 U)6b@&N$J>}ͧ@@bس>Cx)s: Mdɓy&/-m9&4P-'mpUHK0+m|47ĵ_:$؆`Ec fH`dk&HBd2D%J9--5:г u5 ڪamVT ˙t!$i>OQO],PO]Cl*~:[4B=22E*Y!zhUnu7L˿?3ؘ%av.>ip/߾pƥ()<kMnܹ[SnjD9Fkkfh~#a ۉH'lȶ,{E*'8}'5%Z/[46oW/^~Y3nSFuuo@el}7pYz_yT@mݬL٢@Q"{y~&os%Yugy>=mUf)́[7VTɠPL1<ʠN`ҭ,!Fa1a7.p7Po_Eb밲XܠUZś?}V;Y)C&K|v(#r )| }[XjW4A)9w.3,.@>7WOasAA.*}) [% aX ={[_xW_d>ay$X}g9 dsGF, jg__q/&ّ%݈p>ǁ2iU t4:~!2 =4#!vǨref,+Utɯ}"gi S.oݾ\=}m,].4H\Ko(reC*-$J3,{>^R0:x?uzNx>ru>y%hPZ}e^0٭8 Sҡ\#NtoAFe.6Ko3rډ4JiU0MpB1$W?%+x} #m?xGbQ, vԥn;tbZG #6[rlԙal^Pmܝx63/Jl!.A1J *pH J+/P\<9WP~_8Uyp=v;E2J~a;5yr,~Z$`Ȑ8)cɸ[=%!ћaM ?gAREz+X]wR`R@SEdM)++,}~CAhpNYqY}ZL*ݝ ɂ: H!tuFlnU2͋W!؇\&jʻ>&d:ƣbi[1)44|cP& !sHX9ӯ^ϋY4ඎv XaS'gwXZ}ۍ]ټ b@ gc W7>aR()GaxW>ČCމ ҭ7D h>Quwa dDfqNKDT9tg̷u&mrc"]||rRMI`7X%9@kC'pt%"X{+ 7 T~2wi |DMO2: 22`4 k DY>b>qsVb冷"hAh5`f*6VH/Yug: oT /(i}F6|Quov_YhS1,:`;](Mn1o2ՍngX96\8Q|fy/ l0#wmKv*nUD )X !DS•0`؄ƚƢcaaR*!B?vkm+D},ͽ~?BK{0n{ Bx}Dȼ-;iA(C+^Ӻ})wY/E@`vXj8Uku&)Eދ=uĽD0ǜ96&& %7FA$"L:x7-sv~ bJ*hx!֨.}gVﹿ@Uh)G;h+3.TbaC_v`tY5m.k{oS{3;m$`VW'i>sOÈSs넇0T6'4IBhKwES~. ^,K`fԽMilWPGfxG`_$\q|ffK 1k'#DYxvүw0p~dT/!*\j$<~q?\k{(-9/+QyͫAr WmT&P]a <} ؈A9 js)V@XdqQZo$ssu\rph"2X$,V.Ҽ!Y79yT>(se?I2NòjTE,7p3JZnC@n{9*zĻ0\52!#KiQ.dH{5OcCP"5 ςsfcАcL l{=TR8W93G~yaֳ']cZԔK4o7ݔv"ʙ'Ut_]b,jRa0%S2(eL?ˣ(W*r^WM@q&0hŪUYې v`pk[SCj+G zY f d o 5HjP0+KӕD">q?J~+7}T,!ЉC8:b,&K.r-P)* ǚSDȫtG"E]M55; .$Y. 4XKnߠ+-Ի֒EayH{l2Lj{J񩖷t$!_mru"I?_…韂;v9-TL1I+;̞?ZELl"HǪ-j!`duK2-HKUhL>po+74}iʖM&e57Np7BjvWco2 B7-B'%Ҟ 6;/&1fG D1/D:%3ɯuSJ"3ݝjuk4m O˗C?~"ֲ#Z%XuQIp l9YdYdq)o(4w<]8,TDB`dt2$U 27̽; uЃՖ:-*ě`UկeUD\r)IN.'1_0:n~1Q,-8"e_ac p!R&XU;t ,BpU̵㊰E7b:VLx:[aɉ;w+AJm4R F:e~=-!qM΀$h's,vg7@U[_]Ms_~;,ȐJ `#"T,<6d_]Z@R@k d D?N6IMy$# ZCu@n}Cue`0tvh 㪷%QhkC)/<c%c#9%?(:%f)P*Ayc3lMzqt=ɶ vh'*`зAz (<F;}.T1.a?ag:‚RadI$QTeIn7 V-Vy{\0'#6*tp`NZ /Q,p/SP)E\&\>3OX$wX՝Kf唄ֵ,F-3U.-˛b5'_AwԑQ?I+ns  ҫ Zh=\z`E o'HB/TofWN494ѽRIieƤݷsW8'Δ<(^Mĩ؆3% R38FI|ܿ`w ;~c) )kR A֫4yXA qy!4 |?:̈:8[ fdX|cgD>[nu Á9oX]`;41 "{/3 >}M3֚e>[0߸Da=`6zY߹3ۅl[|.f@Pi#otYD OqcfZaO<$q,?XtUKc%PR"uBodqul%vS0 ij'9qyЏ?aG -QQ{}fq$ ذfр4ȩnDr9aFG4P9fcCu޻}/ Ћ~D,G}cE  붙Ixv|?Wg+\YȢ.6SqbK\~?ʆӋbw ]8zn,u1z|M~NưV7 v9{|2˞X2i/xL"\/b]R)qg.YgH?(yMcm[{~; JPW7rMXD9&XL"m׮ kk: "Ԧ .Y  m6X3Q#+ẃ^: V^ aGLhNԻQmqϊXaPy};dmUZn薔HmJ5~)H{r#ZWc%?~:< B p$v jȕg&|bd bx9SݶH"o-P&W4t;K&$ۍ' s8ib\*TNi"p!7 M~>ӄ59zE3/)V9}n%4j NoMxbTUlGl}?9f!F4O}C+mY\:t|T9KDM(/%0v Lx"/w>-e5%ֆky|^?(trٱ֙ we"_iͨ;`v-! 3*u.BR=MtS8N3 `: KILV33ߏK$f2 aO)?F,<ꘚp*].}c!k\U44\|"oIYA]vz6DJx$1kdFݧJDZT'֕˗S9,qH#N.Wnx0 "KM֋;:S]7oe3ufUEFr`=7ȷ! _nG,P!zI91^bp@JrNO:x][+-W l(A~~٘qrbw7\iOl%v-2mQ6H֜D h`]u)=;ѫ=#"yi::]mW%s|<TPWG.Ke"gWo\Rq'PΧ5*@AVkHL JL@;Z3l;Kλe9S=7Wc9ĕ! GiG &$ڪ9UɋLʋˡɬ*xݤ_z3ȫ\"~w:&͠w? [1!i,#GQPE V(wMx]L+3cIƔ̵㖊\-y)(vϹD,=Q0Qg9N<a^/2No.XhU8J_3s$Uf9 xawq0)S5юCbI^>$ODrUa, @rQbc)o:Zj.{\ ;ft$8l١FvњBtfĬɤ'cܮٙQ BGn-A1*苟_nT9ow!r'M>F) R1N!̥pN&xc0cY&²}b+Lj*7$')9`ۆ%K[Xc^=@mg|}C=?6Z4%,'& ],*$G 归Z|~s(a7sDdSh'*E_6"V)rV(F[ 0-;EkQ_P<8` sokd²عrar L"~$ \$1(@8]7!%'Vi称ʶm:l>T rXjyp)xevF$*eRBk{I%;uOW~)Pq>:j!"d"b-6 jB.1j"zn Fk: FFERm"fBS!ddq:sQF@@3ޠh8VŽ*9k==N_ !4h&oJ/q'x0䭦 N*3øC=ϔ^^P^ 1W+U+U9d$jO 23ck Rc8Gw,x٬M/?$Ax-f/eeTe&o# % {l57| uh ?i鼷DY}gjHRǘ=%% Y֖}tls.HSc=W=|W–ͣ#Mr9i$ΖLquOR.}D[Λ;OǕaa79Mu[aytyEv`χ$^9xUfa+$ DF.^_[ɶaY9`bL+X3]|* T[ O6A|%fn{({ yìJtHB"XJtڸ!,m( 28Opn9>hbQ\αW8ߵǏBfm:&?NeAx|(~#H/1r=%mhDhA#)_>U,o?Swg;Wv3ǛXv&xY 8XWs2_G1XʯEsDŲ\!aRׅr2.iMQE0g ) \;=2‏Q$k:ʵ-=`tMï#=Mrۄhƅyu+i\$cu#LM>vö{ H>&9[~]14xwq]m&$ԝc/䝰hA"=6iCUg:'!EJf6%WW[ǎ>2~ߥ4ì$0_zXʛ= 0aݠV1731 #=tߺ{fhg{O† iq"PW`"f81"2{xVHJ^6TUU'"!-;}L-{bxq2w "4jp<%Ăf4Ȫ HDHsRIVp&@bҒZ. i\x2 r!uIyT.#yQtèynpJO7aI9"*ښҳ@H:4|IHv?42,K Zv7O ;Ϫ|Hay:u:CV/`{F X.~U 0up9i݊(;v }9i|v) ߔ=bGp'RZ<#lC4ZetCFBD񰕧ƒ@ef%:"uQNLҙi4r&eQC O{r=6G',<)d~b}E;"\ 7g Y4tJ+\jZXmsr:T ɇ (ónG5qFZYna2C>eis+fF92=Y+Rϱ-ШŹG]o%ax:WgȤFyxN$u Smi$وMwUI~ԁN1{ )8Xgfk12-Ud8{,^ 2▵ۥ ;}YV!o XZccAՆ $Wv ʚ C;/('FAp>~Q?*D4gqͥŰ%H6?ITJTI}=9]4̥ oqd=JR*2WEՐKxFVPϸaij7;QTY@K-PV wSS2G:Lyg5n<jQ !!}۲-a,7sHSk |U*A sQB^| 25ghT|67KeyԚu=1_:'e;`X/y/h)\~8\%S^QH&)$7q5oӽ1E ɌEF}#DlY@\.`'8]-ݝ,-(z]{t 4 &)4l4䰉T 99DdvP\I;JրxS3Y?/ SY] @L0=p^pR#ysdQ^s:ADN+hӇqAT3/RtqH~7IiM:q$9YX _GL|.cJU3 n{>爖xХMd|4jZdyW@jĂ`7@Wmvn 8Q"l͝զّIBBl1}ސ;a;I&“)B[~ޠR=f!2 TIn< FXoYíգA .B rȲ)`w'3}0k=f\Ff~(rVi \ŕ-%acܓ!z#B]webա3z`s7*x~C+/~qu}G5+ 8{u[XG( 4N%Z ?P+򿨸E_ʸ&ҋfrz_u|VM/pL?͊dx*ipgk:HP=9vPQ>dĠԮ%b]V_z7;]i677\/"؀.Aq;;>NUT) T6VQ$Be@ˢ es7K-e DZS|󽮎 fHU{#{JqyW?Y;V$۽;1ӝ}"k{b#s v"EiߎmEwS+d>ye%?15-6vbvdu[=΢IzU͉ gGuWtkfq;3qo2p'y]Ϯcu3@ l#2|@l R :ǂRANA#72T#-_g%0$oݽ`D/-~ '=8:U-9"UrA%5"@JР)obhy[H78U>\lBI*̦E7uEeFF#;-7@ 5AVth5 "V+[W~z<%s\sAGHdhF^P8fXc?\*,(hȕZv͹<"ݭaE*nHD{~3:!N-Wd‡S3r@SyE'!;y1`UE9w5"=fC 6NxZ1۬xCyh]^pR 4S0i0Y(M mFpSύt.J2ֆsk,ĐE\#3yS yp9ᢗ;%"l i}.'$-ԛwL)p9f)쯇%OlTac2獀pO͡ )&TR8bg5.@n ++uylBﯹqgJncZeT԰'4X&Z W 0܁['3.ov{V%jQ+jL5?mB`/+(COD?I9Ƥf ti|ԍ7uNdyTKL =Bk^T؛sh n'5%FW`g"7? E:Ċh.t3v jmB٧r|Q1jw=*Jڟ|cW=C0d.QSH2#zuqidA ӵϔoЊƅmOQHT!!LwL(6 ɸeniEmSHGd/>EBy2P([/d 5’K0;x>;˃O~akxGw!%L^msXs]dX6E 'Z"3젩K?ϬW#|guUA:x3u $+*HlwZ2~kZ_ۍLyjaP'GlM%Lz!x¥=w!OO]X3 ӭɮ>>8EL! ]x\jKͻi *,cxxȥ~/?÷ F#l\BW,Nb$v:hԖ o$%H~LH8< T5AowPeNĕH7HߡN6V  F/\Mu> $*HB;Oq#<97Th"umaB^Ro)R@>Yގ@kY\ɑR4USK9FR?HzFQ0Qq9柦GkB%rvn$h{ Hu()Ӧp}o}3T$M k'u?kAqAY\UR@i>EN2n+s <$ >Ӹm'~'oY1 >+>c1OpO dzB[@sasU s ?Y/rx-x+#+O1FcU!ZWjDzҾ"><7`tǹ2"AL*7@ ZTȨlӦKtDMYuWhHc W= z6^^uFŽ1=w2h}Df$[2?p׾RF-WXzoQ|rRڸ^8d.FM3kh pA_diO\HPV5N2~̻ AO23z]ogW1eHyElȠod: Ei\8@iC NԻ8AE:AOT8#llb%S *jZ7(~sL]R dt˅75xS T[}`b4OG}a1iW=S#8F wTH Oz*~<d/ XnzeHRT4攖!2P\߱I?.VGC")%~ 8qȥ1:^9aϽOGF1/S ھeDcy "{XlNOX=`:sU"kZt}ClHQJ4P"3bakRXw؍2 #gYF|NdV3~Q ԉw0` *}=IMxqEm&QqT+DZ5P̭Ѧ GbdqGaXv$ls 7dtW܈cWtu0 gJ XŊzufgr߈kJzϱLr2; LvyXS{lغvbS̠Eb?}׆b>Be{9 uxJ{HO]Q_7.,]j&d̻ƺUf "EH32(KɧKf&IP B$vêHB>d(0rJs #F][ ud7$FOBm$aa~7rƇy\ԥe3sHFVOc]dGK0i~29j9.h u98B^iM`:*ʊJ,~)TMY1fIo]ʥcLr yɫ+CgO}~9ݵpZУ!d݅/X6Ws0Ǒg+lD^B4Rx2lY)UAOAռ g6+&{=̀ L{KarڝG섴џ˔aKCH΋pfXfH#;߳@e=![UGf✢p|ѯEUへi {֠um D9??1A̻X6WRy2f%A:D8;8Ûf~RD[,bzp/nBI6;/Ab }MߢLy2!@IE,y%Ó)׮'GxtpSo8n sU81텦I|D֓7} 22 3/l#fEk"#{A~}Y֏[y[4;c~B[EkYK΂oHWIɵ,<Vxq6 vZ_H]dAu8a?|BDU D1=|Czq 8q;pi5ך8eeJ\ Kۜa7dyr5;R^ܝV>+LۚWϒ:"r w pTsj ~H'kWBrur 70‰?ar.it9[#8'{ =>X&oe9TVBf RMi6MSeFYf3Kƶe8aT/S*N Yl&IP"lÞJ{M Ӊ  Ա81t_x^Ȗ7rVt>=dg.-Y^ԖGZ ^`)2.$#Pz"iӀĤ=t}wŷ=e1Q_X4orn \IęWrnwz;J!U&ֽ.io/u=YbL Kd|}|@)wEI_1~<G(go)`Lv!2ϐwX^9)JH|*2H mVǹ̓{ia5w9Ċ?w4fhsǃ>;2ͭ~ir3;R„o;k Λ_ZŸ/J7dL:h׶3L z3=͉KAm(6>a\)FpJuJ<~Lyv.5ytMF;&0F%}~:ԠShyc15x23 E:kmZZ:"rQrcwrb BCVʁBlvӽL_BU (yxtxgJ&̰⇅n"!9Yg@yKC qc/[] c>c21-\Ug+Cn&Bڑ Hv"ľp"r a-Nl6v8Yk]\Z?5_In6 Z(d9j mYT؎Or_"2+GzO?}Kr쪍27<"(R^]ה+&!W6Ps,MpYfROPj~3o$"f=L=4@Y=VT0q' Ow7WXZ]6_[@LwFVDAM0YVYt@sdFK]Tw@nzij D`ܛ'e+X|VbWVik^9Rox E5|"mҁ>vKt;y0U9$E$aJ'[0@%tN~!-~kwk|$u~>@ >k.,xhTҢQQM#(+I|@r|Y=Bi2ʸxkgoPn4G?ryJr1wuT9 Vg+]٘[IU[D qL'!87-ti+=?MN79F7 !+?5tEWCŪ-p!~XT[SY*-K]@-I 쇬KNOd sP=lTPR} ʿ ~=IJSi u 'd%~1PtwYfi||SmF F$ )ڛ /GI: wc5޸)tqmR_%:u"/N4ڣ~=ޫaщ?&+@j^y @!ޥCq,ӻXU.Ō|^C^bO wdk|s \tſ-\l$\E)QJ LfTBw:̈yp&.Av cd$l5<)WB~BY2VtXK2Ѝs΃HP ɡ+QNfoR'g]L*ŀ)8xز^[E.O݌Lkb;ѪĆ4?}`^ne*?-!$qG*,d=_v[jHYǍ}Jˀ;0n6s~/PGT 6ѡMSNӹO] .1Kd `A+* hN_-';\e_ |.m`'A]'z@ o{3Z# bߟGs?%DR'tIC;{m%&# v#}11]Ts}+hOR|G&\93r7;t&RɍvPܑ3 ,,ǘ{4B#pj:g,Yl9)X?HīuCI77blfOj\;iz-Ӵۆ*ypAr~?p0ܚ3OZ 4]qc;bt*G:KoN>oh>̷q"aTl.V;zHi# h2k;IOש'+˷C`JI" Tc0E)EXO]+?Tr>+T׆MJ;:"c3KH5L(U>lwwx(DJ!Fr|:R %e`dvS5!"ɶ HDaRݢJ*}iRshipcdDdILW.!'fm7ܰG "`+ ]Ld 10yݝW?C jk OBAdZ{ˆjΞFP ܥŏ8Q@xnHN}ړt&\RgqUfOcs[+(clA-^g*su8w~7b"A.m7Pp91vH4д'|ΚDE}WbLxN(LXŕM)S9~TCuNђZޔnmSK4n zLjd$O[5:n+$qbcc]#k W"fh-,cՈmpJ{αz< e8,>$q`BYLD:V7Dk4UpC؆c]9fltjVt[h$MGLr@4O G$7r@[V*l tm$ܗYare%D<&{-$? OX\uVa`Jï'ĢV+G'/֢jU>$U硐P湫qx '|5^ 8 JIťNŞL8;MBk⒣*bUpY.XJ},邎W JSRrV:": !Z#BE: L䣓Gu]@بjRAk YCb FojYF^ފwh+':8{C޵c`i~X,IMA2UD}ӽ 9?5U8sVNqȶ1븃~a6&u~hR):qL_%=iS +Q5*6$tC}m.$0CdB|@]9@qf(*@UK^qM.Z\/՟pޛ428?=S5jn~k~ `RK'ahUZl۔>d5o, <"1ʦ%=!Lb%6hiMo0L3s`KW28 %7r-)ø~XP+᫮ޘB3z$$3~dA-)0wiM_Ox A^GOԳ|Uwt&q: qb]rQB3VwE1A[ ھ^}Qr!?gC嚐14 e"-5p\F:ڣr>?vl-W(!$U~4ӌVEBP!x (<:i CDJE$ػ7Ƀ=](\f~ @ZiL/'QO:~A3i|]/Z$[EnXr% 1T8">TІhv%3`a{(L"2WK;YSUަ\tRfX"ֻ볅2ϖtγkX=Zα蘃#f/`ֵ[ZY_q}pᰔ9ם^a=uYws]`ϧ ź6~ 6ƓaIF uֈKN+&;RNBPbLn@_s bx}oc05!@JxP}ʮSFQxJf$EAA;,ͳux͉h M(<6q Dax؄fzq_ X** {"|rzqBqO@aazRw 01-eEKsFbnΙ-|*q;]/q+f.jϴ-$Q5iLeUrR;=러xz|pD#6 5vK$'MsiNi=ɆYҁ`*'c;[FC@^Opur5f2mZwMOx44>ʛ)8WPܵ}2{#o<}0`,ijJUQRkhzP[^+"0k̂2xĶ`[lpd V7; # u }?mH li"f-({s>hz QwGfm!rזS~pk_2o-_I> "GHg1Am^yEWL8{{9/ U?*(ѕ.?WзȻ|6{dlĩf%:F֒TX %'mIFW50ٿ_R~=ce2;~oY|OPNZӟhbJa|x$;s+Bh dwAv%4v_BtdAԳYᛕ*^bHnZB>3vpGm!cΫVIL/D^%u ZzG N$T<:$wCOP:+7|2X)EqˌsPA7Nƶ`%nOtzMoi:5SKL/g7s7T %}wqR.arEu2:_{Kb?_dcpP?c g0:jBzNSH1䘡(|S&L9_8ff7A)$]KZeSM½1yݧm=@+zA>~w$+, +V'-p`ڥ13g4.`grN>$rz@DŽ$P}mF"selˤ[_ *bRF$ s}V?QKWF,eB| ymc;_!(0=fz>16ywy%Q\O]8E?WyK_>'h_ p:+n ̙u+8HbSj%B%4a%%,GF!Hd(V%ߖL{M*f1ֱ@qԞ* Y9v;!M(=!/hi1p8py`ܗmZ,GbMxֻ ˠR6})и>yf9nyǹfY``e0ף 4@WZ-CT8] \Tq/%=Eo'xQ0?hؔmƉRğixFԒ_."!?Pa~X?[/^^KjT.%׼MhRWHc\%sqp%کĂѸz]5nǭ3+TMI5h1~glymur-0.9.1/glymur/jp2box.py000066400000000000000000003325151360775562100161620ustar00rootroot00000000000000"""Classes for individual JPEG 2000 boxes. References ---------- .. [JP2K15444-1i] International Organization for Standardication. ISO/IEC 15444-1:2004 - Information technology -- JPEG 2000 image coding system: Core coding system .. [JP2K15444-2m] International Organization for Standardication. ISO/IEC 15444-2:2004 - Information technology -- JPEG 2000 image coding system: Extensions """ # Standard library imports ... import io import os import pprint import struct import sys import textwrap from uuid import UUID import warnings # Third party library imports ... try: import gdal import osr _HAVE_GDAL = True except ModuleNotFoundError: _HAVE_GDAL = False else: gdal.UseExceptions() import lxml.etree as ET import numpy as np # Local imports ... from .codestream import Codestream from .core import (_COLORSPACE_MAP_DISPLAY, _COLOR_TYPE_MAP_DISPLAY, SRGB, GREYSCALE, YCC, ENUMERATED_COLORSPACE, RESTRICTED_ICC_PROFILE, ANY_ICC_PROFILE, VENDOR_COLOR_METHOD) from ._tiff import tiff_header, BadTiffTagDatatype from . import get_option from ._iccprofile import _ICCProfile _COLORSPACE_METHODS = { ENUMERATED_COLORSPACE: 'enumerated colorspace', RESTRICTED_ICC_PROFILE: 'restricted ICC profile', ANY_ICC_PROFILE: 'any ICC profile', VENDOR_COLOR_METHOD: 'vendor color method', } _APPROXIMATION_MEASURES = { 0: 'JP2 only', 1: 'accurately represents correct colorspace definition', 2: 'approximates correct colorspace definition, exceptional quality', 3: 'approximates correct colorspace definition, reasonable quality', 4: 'approximates correct colorspace definition, poor quality', } # Three different UUIDs are given special treatment. _GEOTIFF_UUID = UUID('b14bf8bd-083d-4b43-a5ae-8cd7d5a6ce03') _EXIF_UUID = UUID(bytes=b'JpgTiffExif->JP2') _XMP_UUID = UUID('be7acfcb-97a9-42e8-9c71-999491e3afac') class InvalidJp2kError(RuntimeError): """ Raise this exception in case we cannot parse a valid JP2 file. """ pass class Jp2kBox(object): """Superclass for JPEG 2000 boxes. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. box : list List of JPEG 2000 boxes. """ def __init__(self, offset=0, length=0): self.length = length self.offset = offset self.box = [] def __str__(self): msg = ( f"{self.longname} Box ({self.box_id}) " f"@ ({self.offset}, {self.length})" ) return msg def _dispatch_validation_error(self, msg, writing=False): """Issue either a warning or an error depending on circumstance. If writing to file, then error out, as we do not wish to create bad JP2 files. If reading, then we should be more lenient and just warn. """ if writing: raise InvalidJp2kError(msg) else: warnings.warn(msg) def write(self, _): """Must be implemented in a subclass. """ msg = f"Writing not supported for {self.longname} box." raise NotImplementedError(msg) def _str_superbox(self): """__str__ method for all superboxes.""" msg = Jp2kBox.__str__(self) for box in self.box: boxstr = str(box) # Indent the child boxes to make the association clear. msg += '\n' + textwrap.indent(boxstr, ' ' * 4) return msg def _write_superbox(self, fptr, box_id): """Write a superbox. Parameters ---------- fptr : file or file object Superbox (box of boxes) to be written to this file. box_id : bytes 4-byte sequence that identifies the superbox. """ # Write the contained boxes, then come back and write the length. orig_pos = fptr.tell() fptr.write(struct.pack('>I4s', 0, box_id)) for box in self.box: box.write(fptr) end_pos = fptr.tell() fptr.seek(orig_pos) fptr.write(struct.pack('>I', end_pos - orig_pos)) fptr.seek(end_pos) def _parse_this_box(self, fptr, box_id, start, num_bytes): """Parse the current box. Parameters ---------- fptr : file Open file object, currently points to start of box payload, not the start of the box. box_id : str 4-letter identifier for the current box. start, num_bytes : int Byte offset and length of the current box. Returns ------- Jp2kBox Object corresponding to the current box. """ try: parser = _BOX_WITH_ID[box_id].parse except KeyError: # We don't recognize the box ID, so create an UnknownBox and be # done with it. msg = ( f'Unrecognized box ({box_id}) ' f'encountered at byte offset {fptr.tell() - 8}.' ) warnings.warn(msg, UserWarning) box = UnknownBox(box_id, offset=start, length=num_bytes, longname='Unknown') return box try: box = parser(fptr, start, num_bytes) except Exception as err: msg = ( f'Encountered an error while parsing a ' f'{_BOX_WITH_ID[box_id]} box at byte offset {start}. ' f'The original error message was "{str(err)}".' ) warnings.warn(msg, UserWarning) box = UnknownBox(box_id.decode('utf-8'), length=num_bytes, offset=start, longname='Unknown') return box def parse_superbox(self, fptr): """Parse a superbox (box consisting of nothing but other boxes. Parameters ---------- fptr : file Open file object. Returns ------- list List of top-level boxes in the JPEG 2000 file. """ superbox = [] start = fptr.tell() while True: # Are we at the end of the superbox? if start >= self.offset + self.length: break read_buffer = fptr.read(8) if len(read_buffer) < 8: msg = "Extra bytes at end of file ignored." warnings.warn(msg, UserWarning) return superbox (box_length, box_id) = struct.unpack('>I4s', read_buffer) if box_length == 0: # The length of the box is presumed to last until the end of # the file. Compute the effective length of the box. num_bytes = os.path.getsize(fptr.name) - fptr.tell() + 8 elif box_length == 1: # The length of the box is in the XL field, a 64-bit value. read_buffer = fptr.read(8) num_bytes, = struct.unpack('>Q', read_buffer) else: # The box_length value really is the length of the box! num_bytes = box_length box = self._parse_this_box(fptr, box_id, start, num_bytes) superbox.append(box) # Position to the start of the next box. if num_bytes > self.length: msg = ( f"The {box_id} box has a length ({num_bytes}) that " f"exceeds the length of the file ({self.length})." ) warnings.warn(msg) elif fptr.tell() > start + num_bytes: # The box must be invalid somehow, as the file pointer is # positioned past the end of the box. msg = ('{box_id} box may be invalid, the file pointer is ' 'positioned {num_bytes} bytes past the end of the box.') msg = msg.format(box_id=box_id, num_bytes=fptr.tell() - (start + num_bytes)) warnings.warn(msg, UserWarning) fptr.seek(start + num_bytes) start += num_bytes return superbox class ColourSpecificationBox(Jp2kBox): """Container for JPEG 2000 color specification box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int Length of the box in bytes. offset : int Offset of the box from the start of the file. longname : str More verbose description of the box. method : int Method for defining the colorspace. precedence : int How this box ranks in priority compared to other color specification boxes. approximation : int Measure of colorspace accuracy. colorspace : int or None Enumerated colorspace, corresponds to one of 'sRGB', 'greyscale', or 'YCC'. If not None, then icc_profile must be None. icc_profile : bytes or None Raw bytes constituting the ICC profile. This may be read by any software capable of interpreting ICC profiles icc_profile_header : dict ICC profile header according to ICC profile specification. If colorspace is not None, then icc_profile must be empty. """ longname = 'Colour Specification' box_id = 'colr' def __init__(self, method=ENUMERATED_COLORSPACE, precedence=0, approximation=0, colorspace=None, icc_profile=None, length=0, offset=-1): super().__init__() self.method = method self.precedence = precedence self.approximation = approximation self.colorspace = colorspace self.icc_profile = icc_profile if icc_profile is None: self.icc_profile_header = None else: self.icc_profile_header = _ICCProfile(self.icc_profile).header self.length = length self.offset = offset self._validate(writing=False) def _validate(self, writing=False): """Verify that the box obeys the specifications.""" if self.colorspace is not None and self.icc_profile is not None: msg = ("Colorspace and icc_profile cannot both be set when " "creating a ColourSpecificationBox.") self._dispatch_validation_error(msg, writing=writing) if self.method not in _COLORSPACE_METHODS: msg = f"Invalid colorspace method value ({self.method})." if writing: raise InvalidJp2kError(msg) else: warnings.warn(msg, UserWarning) if self.approximation not in _APPROXIMATION_MEASURES: msg = ( f"An unrecognized color approximation value " f"({self.approximation}) was encountered in a " f"ColourSpecificationBox at byte offset {self.offset}. " f"Permitted approximation mappings include " f"{_APPROXIMATION_MEASURES}." ) if not writing: # Don't bother to check this for the case of writing=True # because it's already handles in the wrapping code. warnings.warn(msg, UserWarning) if ( self.icc_profile is None and self.colorspace is not None and self.colorspace not in _COLORSPACE_MAP_DISPLAY ): # This only happens if there is not a valid ICC profile and the # colorspace is present but invalid. msg = ( f"An unrecognized colorspace value ({self.colorspace}) was " f"encountered in a ColourSpecificationBox at byte offset " f"{self.offset}. The supported colorspace mappings are " f"{_COLORSPACE_MAP_DISPLAY}." ) warnings.warn(msg, UserWarning) def _write_validate(self): """In addition to constructor validation steps, run validation steps for writing.""" if self.colorspace is None: msg = ("Writing colr boxes without enumerated " "colorspaces is not supported at this time.") self._dispatch_validation_error(msg, writing=True) if self.icc_profile is None: if self.colorspace not in [SRGB, GREYSCALE, YCC]: msg = ("Colorspace should correspond to one of SRGB, " "GREYSCALE, or YCC.") self._dispatch_validation_error(msg, writing=True) self._validate(writing=True) def __repr__(self): msg = ( f"glymur.jp2box.ColourSpecificationBox(" f"method={self.method}, " f"precedence={self.precedence}, " f"approximation={self.approximation}, " f"colorspace={self.colorspace}, " f"icc_profile={self.icc_profile})" ) return msg def __str__(self): title = Jp2kBox.__str__(self) if get_option('print.short') is True: return title lst = [] try: item = _COLORSPACE_METHODS[self.method] except KeyError: item = f'unrecognized value ({self.method})' text = f'Method: {item}' lst.append(text) text = f'Precedence: {self.precedence}' lst.append(text) if self.approximation != 0: try: dispvalue = _APPROXIMATION_MEASURES[self.approximation] except KeyError: dispvalue = f'invalid ({self.approximation})' text = f'Approximation: {dispvalue}' lst.append(text) if self.colorspace is not None: try: dispvalue = _COLORSPACE_MAP_DISPLAY[self.colorspace] except KeyError: dispvalue = f'{self.colorspace} (unrecognized)' text = f'Colorspace: {dispvalue}' else: if self.icc_profile is None: text = 'ICC Profile: None' else: text = pprint.pformat(self.icc_profile_header) text = textwrap.indent(text, ' ' * 4) text = '\n'.join(['ICC Profile:', text]) lst.append(text) text = '\n'.join(lst) text = '\n'.join([title, textwrap.indent(text, ' ' * 4)]) return text def write(self, fptr): """Write an Colour Specification box to file. """ self._write_validate() length = 15 if self.icc_profile is None else 11 + len(self.icc_profile) fptr.write(struct.pack('>I4s', length, b'colr')) read_buffer = struct.pack('>BBBI', self.method, self.precedence, self.approximation, self.colorspace) fptr.write(read_buffer) @classmethod def parse(cls, fptr, offset, length): """Parse JPEG 2000 color specification box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- ColourSpecificationBox Instance of the current colour specification box. """ num_bytes = offset + length - fptr.tell() read_buffer = fptr.read(num_bytes) lst = struct.unpack_from('>BBB', read_buffer, offset=0) method, precedence, approximation = lst if method == 1: # enumerated colour space colorspace, = struct.unpack_from('>I', read_buffer, offset=3) icc_profile = None else: # ICC profile colorspace = None if (num_bytes - 3) < 128: msg = ( f"An ICC profile header in a ColourSpecificationBox at " f"byte offset {offset} is corrupt, the length is only " f"{num_bytes - 3} when it should be at least 128." ) warnings.warn(msg, UserWarning) icc_profile = None else: icc_profile = read_buffer[3:] return cls(method=method, precedence=precedence, approximation=approximation, colorspace=colorspace, icc_profile=icc_profile, length=length, offset=offset) class ChannelDefinitionBox(Jp2kBox): """Container for component definition box information. Attributes ---------- box_id : str 4-character identifier for the box. length : numeric scalar length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. index : list number of the channel. Defaults to monotonically increasing sequence, i.e. [0, 1, 2, ...] channel_type : list type of the channel association : list index of the associated color """ box_id = 'cdef' longname = 'Channel Definition' def __init__(self, channel_type, association, index=None, **kwargs): super().__init__() if index is None: self.index = tuple(range(len(channel_type))) else: self.index = tuple(index) self.channel_type = tuple(channel_type) self.association = tuple(association) self.__dict__.update(**kwargs) self._validate(writing=False) def _validate(self, writing=False): """Verify that the box obeys the specifications.""" # channel type and association must be specified. if not ((len(self.index) == len(self.channel_type)) and (len(self.channel_type) == len(self.association))): msg = ( f"The length of the index ({len(self.index)}), " f"channel_type ({len(self.channel_type)}), " f"and association ({len(self.association)}) " f"inputs must be the same." ) self._dispatch_validation_error(msg, writing=writing) # channel types must be one of 0, 1, 2, 65535 if any(x not in [0, 1, 2, 65535] for x in self.channel_type): msg = ( f"channel_type specified as {self.channel_type}, but all " f"values must be in the set of\n\n" f" 0 - colour image data for associated color\n" f" 1 - opacity\n" f" 2 - premultiplied opacity\n" f" 65535 - unspecified\n" ) self._dispatch_validation_error(msg, writing=writing) def __str__(self): title = Jp2kBox.__str__(self) if get_option('print.short') is True: return title lst = [] for association, channel_type, index in zip(self.association, self.channel_type, self.index): try: color_type_string = _COLOR_TYPE_MAP_DISPLAY[channel_type] except KeyError: color_type_string = f"invalid ({channel_type})" association = str(association) if association else 'whole image' text = f'Channel {index} ({color_type_string}) ==> ({association})' lst.append(text) text = '\n'.join(lst) text = textwrap.indent(text, ' ' * 4) text = '\n'.join([title, text]) return text def __repr__(self): msg = ( f"glymur.jp2box.ChannelDefinitionBox(" f"index={self.index}, channel_type={self.channel_type}, " f"association={self.association})" ) return msg def write(self, fptr): """Write a channel definition box to file. """ self._validate(writing=True) num_components = len(self.association) fptr.write(struct.pack('>I4s', 8 + 2 + num_components * 6, b'cdef')) fptr.write(struct.pack('>H', num_components)) for j in range(num_components): fptr.write(struct.pack('>' + 'H' * 3, self.index[j], self.channel_type[j], self.association[j])) @classmethod def parse(cls, fptr, offset, length): """Parse component definition box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- ComponentDefinitionBox Instance of the current component definition box. """ num_bytes = offset + length - fptr.tell() read_buffer = fptr.read(num_bytes) # Read the number of components. num_components, = struct.unpack_from('>H', read_buffer) data = struct.unpack_from('>' + 'HHH' * num_components, read_buffer, offset=2) index = data[0:num_components * 6:3] channel_type = data[1:num_components * 6:3] association = data[2:num_components * 6:3] return cls(index=tuple(index), channel_type=tuple(channel_type), association=tuple(association), length=length, offset=offset) class CodestreamHeaderBox(Jp2kBox): """Container for codestream header box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. box : list List of boxes contained in this superbox. """ box_id = 'jpch' longname = 'Codestream Header' def __init__(self, box=None, length=0, offset=-1): super().__init__() self.length = length self.offset = offset self.box = box if box is not None else [] def __repr__(self): msg = f"glymur.jp2box.CodestreamHeaderBox(box={self.box})" return msg def __str__(self): msg = self._str_superbox() return msg def write(self, fptr): """Write a codestream header box to file. """ self._write_superbox(fptr, b'jpch') @classmethod def parse(cls, fptr, offset, length): """Parse codestream header box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- CodestreamHeaderBox Instance of the current codestream header box. """ box = cls(length=length, offset=offset) # The codestream header box is a superbox, so go ahead and parse its # child boxes. box.box = box.parse_superbox(fptr) return box class ColourGroupBox(Jp2kBox): """Container for colour group box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. box : list List of boxes contained in this superbox. """ box_id = 'cgrp' longname = 'Colour Group' def __init__(self, box=None, length=0, offset=-1): super().__init__() self.length = length self.offset = offset self.box = box if box is not None else [] def __repr__(self): msg = f"glymur.jp2box.ColourGroupBox(box={self.box})" return msg def __str__(self): msg = self._str_superbox() return msg def _validate(self, writing=True): """Verify that the box obeys the specifications.""" if any([box.box_id != 'colr' for box in self.box]): msg = ("Colour group boxes can only contain colour specification " "boxes.") self._dispatch_validation_error(msg, writing=writing) def write(self, fptr): """Write a colour group box to file. """ self._validate(writing=True) self._write_superbox(fptr, b'cgrp') @classmethod def parse(cls, fptr, offset, length): """Parse colour group box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- ColourGroupBox Instance of the current colour group box. """ box = cls(length=length, offset=offset) # The colour group box is a superbox, so go ahead and parse its # child boxes. box.box = box.parse_superbox(fptr) return box class CompositingLayerHeaderBox(Jp2kBox): """Container for compositing layer header box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. box : list List of boxes contained in this superbox. """ box_id = 'jplh' longname = 'Compositing Layer Header' def __init__(self, box=None, length=0, offset=-1): super().__init__() self.length = length self.offset = offset self.box = box if box is not None else [] def __repr__(self): msg = f"glymur.jp2box.CompositingLayerHeaderBox(box={self.box})" return msg def __str__(self): msg = self._str_superbox() return msg def write(self, fptr): """Write a compositing layer header box to file. """ self._write_superbox(fptr, b'jplh') @classmethod def parse(cls, fptr, offset, length): """Parse compositing layer header box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- CompositingLayerHeaderBox Instance of the current compositing layer header box. """ box = cls(length=length, offset=offset) # This box is a superbox, so go ahead and parse its # child boxes. box.box = box.parse_superbox(fptr) return box class ComponentMappingBox(Jp2kBox): """Container for component mapping information. Attributes ---------- box_id : str 4-character identifier for the box. length : numeric scalar Length of the box in bytes. offset : int Offset of the box from the start of the file. longname : str Verbose description of the box. component_index : tuple Index of component in codestream that is mapped to this channel. mapping_type : tuple mapping type, either direct use (0) or palette (1) palette_index : tuple Index component from palette """ box_id = 'cmap' longname = 'Component Mapping' def __init__(self, component_index, mapping_type, palette_index, length=0, offset=-1): super().__init__() self.component_index = component_index self.mapping_type = mapping_type self.palette_index = palette_index self.length = length self.offset = offset def __repr__(self): msg = ( f"glymur.jp2box.ComponentMappingBox(" f"component_index={self.component_index}, " f"mapping_type={self.mapping_type}, " f"palette_index={self.palette_index})" ) return msg def __str__(self): title = Jp2kBox.__str__(self) if get_option('print.short') is True: return title lst = [] for k, (mapping_type, component_idx, palette_idx) in enumerate( zip(self.mapping_type, self.component_index, self.palette_index) ): if mapping_type == 1: # palette mapping text = ( f'Component {component_idx} ==> ' f'palette column {palette_idx}' ) else: # Direct use text = f'Component {component_idx} ==> {k}' lst.append(text) text = '\n'.join(lst) text = textwrap.indent(text, ' ' * 4) text = '\n'.join([title, text]) return text def write(self, fptr): """Write a Component Mapping box to file. """ length = 8 + 4 * len(self.component_index) write_buffer = struct.pack('>I4s', length, b'cmap') fptr.write(write_buffer) for j in range(len(self.component_index)): write_buffer = struct.pack('>HBB', self.component_index[j], self.mapping_type[j], self.palette_index[j]) fptr.write(write_buffer) @classmethod def parse(cls, fptr, offset, length): """Parse component mapping box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- ComponentMappingBox Instance of the current component mapping box. """ num_bytes = offset + length - fptr.tell() num_components = int(num_bytes / 4) read_buffer = fptr.read(num_bytes) data = struct.unpack('>' + 'HBB' * num_components, read_buffer) component_index = data[0:num_bytes:3] mapping_type = data[1:num_bytes:3] palette_index = data[2:num_bytes:3] return cls(component_index, mapping_type, palette_index, length=length, offset=offset) class ContiguousCodestreamBox(Jp2kBox): """Container for JPEG2000 codestream information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. codestream : Codestream object Contains list of codestream marker/segments. By default, only the main header is retrieved. main_header_offset : int offset of main header from start of file """ box_id = 'jp2c' longname = 'Contiguous Codestream' def __init__(self, codestream=None, main_header_offset=None, length=0, offset=-1): super().__init__() self._codestream = codestream self.length = length self.offset = offset self.main_header_offset = main_header_offset # The filename can be set if lazy loading is desired. self._filename = None @property def codestream(self): if get_option('parse.full_codestream') is True: header_only = False else: header_only = True if self._codestream is None: if self._filename is not None: with open(self._filename, 'rb') as fptr: fptr.seek(self.main_header_offset) codestream = Codestream(fptr, self._length, header_only=header_only) self._codestream = codestream return self._codestream def __repr__(self): msg = "glymur.jp2box.ContiguousCodeStreamBox" msg += f"(codestream={repr(self.codestream)})" return msg def __str__(self): title = Jp2kBox.__str__(self) if get_option('print.short') is True: return title if get_option('print.codestream') is False: return title lst = [] for segment in self.codestream.segment: lst.append(str(segment)) text = '\n'.join(lst) text = textwrap.indent(text, ' ' * 4) text = '\n'.join([title, text]) return text @classmethod def parse(cls, fptr, offset=0, length=0): """Parse a codestream box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- ContiguousCodestreamBox Instance of the current contiguous codestream box. """ main_header_offset = fptr.tell() if get_option('parse.full_codestream'): codestream = Codestream(fptr, length, header_only=False) else: codestream = None box = cls(codestream, main_header_offset=main_header_offset, length=length, offset=offset) box._filename = fptr.name box._length = length return box class DataReferenceBox(Jp2kBox): """Container for Data Reference box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. DR : list Data Entry URL boxes. """ box_id = 'dtbl' longname = 'Data Reference' def __init__(self, data_entry_url_boxes=None, length=0, offset=-1): super().__init__() if data_entry_url_boxes is None: self.DR = [] else: self.DR = data_entry_url_boxes self.length = length self.offset = offset self._validate(writing=False) def _validate(self, writing=False): """Verify that the box obeys the specifications.""" for box in self.DR: if box.box_id != 'url ': msg = ('Child boxes of a data reference box can only be data ' 'entry URL boxes.') self._dispatch_validation_error(msg, writing=writing) def _write_validate(self): """Verify that the box obeys the specifications for writing. The only tests for writing the data reference box are actually handled elsewhere, so just do validation for reading. """ self._validate(writing=True) def write(self, fptr): """Write a Data Reference box to file. """ self._write_validate() # Very similar to the way a superbox is written. orig_pos = fptr.tell() fptr.write(struct.pack('>I4s', 0, b'dtbl')) # Write the number of data entry url boxes. write_buffer = struct.pack('>H', len(self.DR)) fptr.write(write_buffer) for box in self.DR: box.write(fptr) end_pos = fptr.tell() fptr.seek(orig_pos) fptr.write(struct.pack('>I', end_pos - orig_pos)) fptr.seek(end_pos) def __str__(self): title = Jp2kBox.__str__(self) if get_option('print.short') is True: return title if len(self.DR) == 0: return title lst = [] for box in self.DR: lst.append(str(box)) text = '\n'.join(lst) text = textwrap.indent(text, ' ' * 4) text = '\n'.join([title, text]) return text def __repr__(self): msg = 'glymur.jp2box.DataReferenceBox()' return msg @classmethod def parse(cls, fptr, offset, length): """Parse data reference box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- DataReferenceBox Instance of the current data reference box. """ num_bytes = offset + length - fptr.tell() read_buffer = fptr.read(num_bytes) # Read the number of data references ndr, = struct.unpack_from('>H', read_buffer, offset=0) # Need to keep track of where the next url box starts. box_offset = 2 data_entry_url_box_list = [] for j in range(ndr): # Create an in-memory binary stream for each URL box. box_fptr = io.BytesIO(read_buffer[box_offset:]) box_buffer = box_fptr.read(8) (box_length, box_id) = struct.unpack_from('>I4s', box_buffer, offset=0) box = DataEntryURLBox.parse(box_fptr, 0, box_length) # Need to adjust the box start to that of the "real" file. box.offset = offset + 8 + box_offset data_entry_url_box_list.append(box) # Point to the next embedded URL box. box_offset += box_length return cls(data_entry_url_box_list, length=length, offset=offset) class FileTypeBox(Jp2kBox): """Container for JPEG 2000 file type box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. brand: str Specifies the governing recommendation or standard upon which this file is based. minor_version: int Minor version number identifying the JP2 specification used. compatibility_list: list List of file conformance profiles. """ box_id = 'ftyp' longname = 'File Type' _valid_cls = ['jp2 ', 'jpx ', 'jpxb'] def __init__(self, brand='jp2 ', minor_version=0, compatibility_list=None, length=0, offset=-1): super().__init__() self.brand = brand self.minor_version = minor_version if compatibility_list is None: self.compatibility_list = ['jp2 '] else: self.compatibility_list = compatibility_list self.length = length self.offset = offset self._validate(writing=False) def __repr__(self): msg = ( f"glymur.jp2box.FileTypeBox(" f"brand='{self.brand}', " f"minor_version={self.minor_version}, " f"compatibility_list={self.compatibility_list})" ) return msg def __str__(self): title = Jp2kBox.__str__(self) if get_option('print.short') is True: return title lst = [] text = f'Brand: {self.brand}' lst.append(text) text = f'Compatibility: {self.compatibility_list}' lst.append(text) text = '\n'.join(lst) text = textwrap.indent(text, ' ' * 4) text = '\n'.join([title, text]) return text def _validate(self, writing=False): """ Validate the box before writing to file. """ if self.brand not in ['jp2 ', 'jpx ']: msg = ( f"The file type brand was '{self.brand}'. " f"It should be either 'jp2 ' or 'jpx '." ) if writing: raise InvalidJp2kError(msg) else: warnings.warn(msg, UserWarning) for item in self.compatibility_list: if item not in self._valid_cls: msg = ( f"The file type compatibility list " f"{self.compatibility_list} is not valid. All items " f"should be members of {self._valid_cls}." ) if writing: raise InvalidJp2kError(msg) else: warnings.warn(msg, UserWarning) def write(self, fptr): """Write a File Type box to file. """ self._validate(writing=True) length = 16 + 4 * len(self.compatibility_list) fptr.write(struct.pack('>I4s', length, b'ftyp')) fptr.write(self.brand.encode()) fptr.write(struct.pack('>I', self.minor_version)) for item in self.compatibility_list: fptr.write(item.encode()) @classmethod def parse(cls, fptr, offset, length): """Parse JPEG 2000 file type box. Parameters ---------- f : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- FileTypeBox Instance of the current file type box. """ num_bytes = offset + length - fptr.tell() read_buffer = fptr.read(num_bytes) # Extract the brand, minor version. (brand, minor_version) = struct.unpack_from('>4sI', read_buffer, 0) brand = brand.decode('utf-8') # Extract the compatibility list. Each entry has 4 bytes. num_entries = int((length - 16) / 4) compatibility_list = [] for j in range(int(num_entries)): entry, = struct.unpack_from('>4s', read_buffer, 8 + j * 4) try: entry = entry.decode('utf-8') except UnicodeDecodeError: # The entry is invalid, but we've got code to catch this # later on. pass compatibility_list.append(entry) return cls(brand=brand, minor_version=minor_version, compatibility_list=compatibility_list, length=length, offset=offset) class FragmentListBox(Jp2kBox): """Container for JPX fragment list box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. """ box_id = 'flst' longname = 'Fragment List' def __init__(self, fragment_offset, fragment_length, data_reference, length=0, offset=-1): super().__init__() self.fragment_offset = fragment_offset self.fragment_length = fragment_length self.data_reference = data_reference self.length = length self.offset = offset self._validate(writing=False) def _validate(self, writing=False): """Validate internal correctness.""" if ((((len(self.fragment_offset) != len(self.fragment_length)) or (len(self.fragment_length) != len(self.data_reference))))): msg = ( f"A FragmentListBox at byte offset {self.offset} has invalid " f"parameters. The lengths of the fragment offsets, fragment " f"lengths, and reference items must be the same. The lengths " f"are " f"{len(self.fragment_offset)}, " f"{len(self.fragment_length)}, and " f"{len(self.data_reference)}." ) self._dispatch_validation_error(msg, writing=writing) if any([x <= 0 for x in self.fragment_offset]): msg = "Fragment offsets must all be positive." self._dispatch_validation_error(msg, writing=writing) if any([x <= 0 for x in self.fragment_length]): msg = "Fragment lengths must all be positive." self._dispatch_validation_error(msg, writing=writing) def __repr__(self): msg = "glymur.jp2box.FragmentListBox({0}, {1}, {2})" msg = msg.format(self.fragment_offset, self.fragment_length, self.data_reference) return msg def __str__(self): title = Jp2kBox.__str__(self) if get_option('print.short') is True: return title lst = [] for j in range(len(self.fragment_offset)): text = f"Offset {j}: {self.fragment_offset[j]}" lst.append(text) text = f"Fragment Length {j}: {self.fragment_length[j]}" lst.append(text) text = f"Data Reference {j}: {self.data_reference[j]}" lst.append(text) text = '\n'.join(lst) text = textwrap.indent(text, ' ' * 4) text = '\n'.join([title, text]) return text def write(self, fptr): """Write a fragment list box to file. """ self._validate(writing=True) num_items = len(self.fragment_offset) length = 8 + 2 + num_items * 14 fptr.write(struct.pack('>I4s', length, b'flst')) fptr.write(struct.pack('>H', num_items)) for j in range(num_items): write_buffer = struct.pack('>QIH', self.fragment_offset[j], self.fragment_length[j], self.data_reference[j]) fptr.write(write_buffer) @classmethod def parse(cls, fptr, offset, length): """Parse JPX free box. Parameters ---------- f : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- FragmentListBox Instance of the current fragment list box. """ num_bytes = offset + length - fptr.tell() read_buffer = fptr.read(num_bytes) num_fragments, = struct.unpack_from('>H', read_buffer, offset=0) lst = struct.unpack_from('>' + 'QIH' * num_fragments, read_buffer, offset=2) frag_offset = lst[0::3] frag_len = lst[1::3] data_reference = lst[2::3] return cls(frag_offset, frag_len, data_reference, length=length, offset=offset) class FragmentTableBox(Jp2kBox): """Container for JPX fragment table box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. box : list List containing exactly one FragmentListBox """ box_id = 'ftbl' longname = 'Fragment Table' def __init__(self, box=None, length=0, offset=-1): super().__init__() self.length = length self.offset = offset self.box = box if box is not None else [] def __repr__(self): msg = f"glymur.jp2box.FragmentTableBox(box={self.box})" return msg def __str__(self): msg = self._str_superbox() return msg @classmethod def parse(cls, fptr, offset, length): """Parse JPX fragment table superbox box. Parameters ---------- f : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- FragmentTableBox Instance of the current fragment table box. """ box = cls(length=length, offset=offset) # The FragmentTable box is a superbox, so go ahead and parse its child # boxes. box.box = box.parse_superbox(fptr) return box def _validate(self, writing=False): """Self-validate the box before writing.""" box_ids = [box.box_id for box in self.box] if len(box_ids) != 1 or box_ids[0] != 'flst': msg = ("Fragment table boxes must have a single fragment list " "box as a child box.") self._dispatch_validation_error(msg, writing=writing) def write(self, fptr): """Write a fragment table box to file. """ self._validate(writing=True) self._write_superbox(fptr, b'ftbl') class FreeBox(Jp2kBox): """Container for JPX free box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. """ box_id = 'free' longname = 'Free' def __init__(self, length=0, offset=-1): super().__init__() self.length = length self.offset = offset def __repr__(self): msg = "glymur.jp2box.FreeBox()" return msg def __str__(self): return Jp2kBox.__str__(self) @classmethod def parse(cls, fptr, offset, length): """Parse JPX free box. Parameters ---------- f : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- FreeBox Instance of the current free box. """ # Must seek to end of box. nbytes = offset + length - fptr.tell() fptr.read(nbytes) return cls(length=length, offset=offset) class ImageHeaderBox(Jp2kBox): """Container for JPEG 2000 image header box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. height, width : int Height and width of image. num_components : int Number of image channels. bits_per_component : int Bits per component. signed : bool False if the image components are unsigned. compression : int The compression type, should be 7 if JP2. colorspace_unknown : bool False if the color space is known and correctly specified. ip_provided : bool False if the file does not contain intellectual propery rights information. """ box_id = 'ihdr' longname = 'Image Header' def __init__(self, height, width, num_components=1, signed=False, bits_per_component=8, compression=7, colorspace_unknown=False, ip_provided=False, length=0, offset=-1): """ Examples -------- >>> import glymur >>> box = glymur.jp2box.ImageHeaderBox(height=512, width=256) """ super().__init__() self.height = height self.width = width self.num_components = num_components self.signed = signed self.bits_per_component = bits_per_component self.compression = compression self.colorspace_unknown = colorspace_unknown self.ip_provided = ip_provided self.length = length self.offset = offset def __repr__(self): msg = ( f"glymur.jp2box.ImageHeaderBox(" f"{self.height}, {self.width}, " f"num_components={self.num_components}, " f"signed={self.signed}, " f"bits_per_component={self.bits_per_component}, " f"compression={self.compression}, " f"colorspace_unknown={self.colorspace_unknown}, " f"ip_provided={self.ip_provided})" ) return msg def __str__(self): title = Jp2kBox.__str__(self) if get_option('print.short') is True: return title lst = [] text = f'Size: [{self.height} {self.width} {self.num_components}]' lst.append(text) text = f'Bitdepth: {self.bits_per_component}' lst.append(text) text = f'Signed: {self.signed}' lst.append(text) text = ( f"Compression: " f"{'wavelet' if self.compression == 7 else 'unknown'}" ) lst.append(text) text = f'Colorspace Unknown: {self.colorspace_unknown}' lst.append(text) text = '\n'.join(lst) text = textwrap.indent(text, ' ' * 4) text = '\n'.join([title, text]) return text def write(self, fptr): """Write an Image Header box to file. """ fptr.write(struct.pack('>I4s', 22, b'ihdr')) # signedness and bps are stored together in a single byte bit_depth_signedness = 0x80 if self.signed else 0x00 bit_depth_signedness |= self.bits_per_component - 1 read_buffer = struct.pack('>IIHBBBB', self.height, self.width, self.num_components, bit_depth_signedness, self.compression, 1 if self.colorspace_unknown else 0, 1 if self.ip_provided else 0) fptr.write(read_buffer) @classmethod def parse(cls, fptr, offset, length): """Parse JPEG 2000 image header box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- ImageHeaderBox Instance of the current image header box. """ # Read the box information read_buffer = fptr.read(14) params = struct.unpack('>IIHBBBB', read_buffer) height = params[0] width = params[1] num_components = params[2] bits_per_component = (params[3] & 0x7f) + 1 signed = (params[3] & 0x80) > 1 compression = params[4] colorspace_unknown = True if params[5] else False ip_provided = True if params[6] else False return cls(height, width, num_components=num_components, bits_per_component=bits_per_component, signed=signed, compression=compression, colorspace_unknown=colorspace_unknown, ip_provided=ip_provided, length=length, offset=offset) class AssociationBox(Jp2kBox): """Container for Association box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. box : list List of boxes contained in this superbox. """ box_id = 'asoc' longname = 'Association' def __init__(self, box=None, length=0, offset=-1): super().__init__() self.length = length self.offset = offset self.box = box if box is not None else [] def __repr__(self): msg = f"glymur.jp2box.AssociationBox(box={self.box})" return msg def __str__(self): msg = self._str_superbox() return msg @classmethod def parse(cls, fptr, offset, length): """Parse association box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- AssociationBox Instance of the current association box. """ box = cls(length=length, offset=offset) # The Association box is a superbox, so go ahead and parse its child # boxes. box.box = box.parse_superbox(fptr) return box def write(self, fptr): """Write an association box to file. """ self._write_superbox(fptr, b'asoc') class BitsPerComponentBox(Jp2kBox): """Container for bits per component box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. bpc : list bits per component for each component signed : list True if signed, false if not, for each component """ box_id = 'bpcc' longname = 'Bits Per Component' def __init__(self, bpc, signed, length=0, offset=-1): super().__init__() self.length = length self.offset = offset self.bpc = bpc self.signed = signed def __repr__(self): msg = f"glymur.jp2box.BitsPerComponentBox({self.bpc}, {self.signed})" return msg def __str__(self): title = Jp2kBox.__str__(self) if get_option('print.short') is True: return title body = f'Bits per component: {self.bpc}\nSigned: {self.signed}' body = textwrap.indent(body, ' ' * 4) text = '\n'.join([title, body]) return text @classmethod def parse(cls, fptr, offset, length): """Parse bits per component box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- BitsPerComponent Instance of the current bits per component box. """ nbytes = length - 8 data = fptr.read(nbytes) bpc = tuple(((x & 0x7f) + 1) for x in bytearray(data)) signed = tuple(((x & 0x80) > 0) for x in bytearray(data)) return cls(bpc, signed, length=length, offset=offset) class JP2HeaderBox(Jp2kBox): """Container for JP2 header box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. box : list List of boxes contained in this superbox. """ box_id = 'jp2h' longname = 'JP2 Header' def __init__(self, box=None, length=0, offset=-1): super().__init__() self.length = length self.offset = offset self.box = box if box is not None else [] def __repr__(self): msg = f"glymur.jp2box.JP2HeaderBox(box={self.box})" return msg def __str__(self): msg = self._str_superbox() return msg def write(self, fptr): """Write a JP2 Header box to file. """ self._write_superbox(fptr, b'jp2h') @classmethod def parse(cls, fptr, offset, length): """Parse JPEG 2000 header box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- JP2HeaderBox Instance of the current JP2 header box. """ box = cls(length=length, offset=offset) # The JP2 header box is a superbox, so go ahead and parse its child # boxes. box.box = box.parse_superbox(fptr) return box class JPEG2000SignatureBox(Jp2kBox): """Container for JPEG 2000 signature box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. signature : tuple Four-byte tuple identifying the file as JPEG 2000. """ box_id = 'jP ' longname = 'JPEG 2000 Signature' def __init__(self, signature=(13, 10, 135, 10), length=0, offset=-1): super().__init__() self.signature = signature self.length = length self.offset = offset def __repr__(self): return 'glymur.jp2box.JPEG2000SignatureBox()' def __str__(self): title = Jp2kBox.__str__(self) if get_option('print.short') is True: return title body = 'Signature: {0:02x}{1:02x}{2:02x}{3:02x}' body = body.format(*self.signature) body = textwrap.indent(body, ' ' * 4) text = '\n'.join([title, body]) return text def write(self, fptr): """Write a JPEG 2000 Signature box to file. """ fptr.write(struct.pack('>I4s', 12, b'jP ')) fptr.write(struct.pack('>BBBB', *self.signature)) @classmethod def parse(cls, fptr, offset, length): """Parse JPEG 2000 signature box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- JPEG2000SignatureBox Instance of the current JPEG2000 signature box. """ read_buffer = fptr.read(4) signature = struct.unpack('>BBBB', read_buffer) return cls(signature=signature, length=length, offset=offset) class PaletteBox(Jp2kBox): """Container for palette box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. palette : ndarray Colormap array. """ longname = 'Palette' box_id = 'pclr' def __init__(self, palette, bits_per_component, signed, length=0, offset=-1): super().__init__() self.palette = palette self.bits_per_component = bits_per_component self.signed = signed self.length = length self.offset = offset self._validate(writing=False) def _validate(self, writing=False): """Verify that the box obeys the specifications.""" if (((len(self.bits_per_component) != len(self.signed)) or (len(self.signed) != self.palette.shape[1]))): msg = ("The length of the 'bits_per_component' and the 'signed' " "members must equal the number of columns of the palette.") self._dispatch_validation_error(msg, writing=writing) bps = self.bits_per_component if writing and not all(b == bps[0] for b in bps): # We don't support writing palettes with bit depths that are # different. msg = "Writing palettes with varying bit depths is not supported." self._dispatch_validation_error(msg, writing=writing) def __repr__(self): msg = ( f"glymur.jp2box.PaletteBox(" f"{repr(self.palette)}, " f"bits_per_component={self.bits_per_component}, " f"signed={self.signed})" ) return msg def __str__(self): title = Jp2kBox.__str__(self) if get_option('print.short') is True: return title body = f'Size: ({self.palette.shape[0]} x {self.palette.shape[1]})' body = textwrap.indent(body, ' ' * 4) text = '\n'.join([title, body]) return text def write(self, fptr): """Write a Palette box to file. """ self._validate(writing=True) bytes_per_row = sum(self.bits_per_component) / 8 bytes_per_palette = bytes_per_row * self.palette.shape[0] box_length = 8 + 3 + self.palette.shape[1] + bytes_per_palette # Write the usual (L, T) header. write_buffer = struct.pack('>I4s', int(box_length), b'pclr') fptr.write(write_buffer) # NE, NPC write_buffer = struct.pack('>HB', self.palette.shape[0], self.palette.shape[1]) fptr.write(write_buffer) # Bits Per Sample. Signed components aren't supported. bps_signed = [x - 1 for x in self.bits_per_component] write_buffer = struct.pack('>' + 'B' * self.palette.shape[1], *bps_signed) fptr.write(write_buffer) # C(i,j) fptr.write(memoryview(self.palette)) @classmethod def parse(cls, fptr, offset, length): """Parse palette box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- PaletteBox Instance of the current palette box. """ num_bytes = offset + length - fptr.tell() read_buffer = fptr.read(num_bytes) nrows, ncols = struct.unpack_from('>HB', read_buffer, offset=0) bps_signed = struct.unpack_from('>' + 'B' * ncols, read_buffer, offset=3) bps = [((x & 0x7f) + 1) for x in bps_signed] signed = [((x & 0x80) > 1) for x in bps_signed] # Are any components signed or differently sized? We don't handle # that. if any(signed) or len(set(bps)) != 1: msg = ("Palettes with signed components or differently sized " "components are not supported.") raise InvalidJp2kError(msg) # The palette is unsigned and all components have the same width. # This should cover all but a vanishingly small share of palettes. b = bps[0] dtype = np.uint8 if b <= 8 else np.uint16 if b <= 16 else np.uint32 palette = np.frombuffer(read_buffer[3 + ncols:], dtype=dtype) palette = np.reshape(palette, (nrows, ncols)) return cls(palette, bps, signed, length=length, offset=offset) # Map rreq codes to display text. _READER_REQUIREMENTS_DISPLAY = { 0: 'File not completely understood', 1: 'Deprecated - contains no extensions', 2: 'Contains multiple composition layers', 3: ('Deprecated - codestream is compressed using JPEG 2000 and requires ' 'at least a Profile 0 decoder as defind in ITU-T Rec. T.800 ' '| ISO/IEC 15444-1, A.10 Table A.45'), 4: 'JPEG 2000 Part 1 Profile 1 codestream', 5: ('Unrestricted JPEG 2000 Part 1 codestream, ITU-T Rec. T.800 ' '| ISO/IEC 15444-1'), 6: 'Unrestricted JPEG 2000 Part 2 codestream', 7: 'JPEG codestream as defined in ISO/IEC 10918-1', 8: 'Deprecated - does not contain opacity', 9: 'Non-premultiplied opacity channel', 10: 'Premultiplied opacity channel', 11: 'Chroma-key based opacity', 12: 'Deprecated - codestream is contiguous', 13: 'Fragmented codestream where all fragments are in file and in order', 14: ('Fragmented codestream where all fragments are in file ' 'but are out of order'), 15: ('Fragmented codestream where not all fragments are within the file ' 'but are all in locally accessible files'), 16: ('Fragmented codestream where some fragments may be accessible ' 'only through a URL specified network connection'), 17: ('Compositing required to produce rendered result from multiple ' 'compositing layers'), 18: 'Deprecated - support for compositing is not required', 19: ('Deprecated - contains multiple, discrete layers that should not ' 'be combined through either animation or compositing'), 20: ('Deprecated - compositing layers each contain only a single ' 'codestream'), 21: 'At least one compositing layer consists of multiple codestreams', 22: 'Deprecated - all compositing layers are in the same colourspace', 23: ('Colourspace transformations are required to combine compositing ' 'layers; not all compositing layers are in the same colourspace'), 24: 'Deprecated - rendered result created without using animation', 25: ('Deprecated - animated, but first layer covers entire area and is ' 'opaque'), 26: 'First animation layer does not cover entire rendered result', 27: 'Deprecated - animated, and no layer is reused', 28: 'Reuse of animation layers', 29: 'Deprecated - animated, but layers are reused', 30: 'Some animated frames are non-persistent', 31: 'Deprecated - rendered result created without using scaling', 32: 'Rendered result involves scaling within a layer', 33: 'Rendered result involves scaling between layers', 34: 'ROI metadata', 35: 'IPR metadata', 36: 'Content metadata', 37: 'History metadata', 38: 'Creation metadata', 39: 'JPX digital signatures', 40: 'JPX checksums', 41: 'Desires Graphics Arts Reproduction specified', 42: 'Deprecated - compositing layer uses palettized colour', 43: 'Deprecated - compositing layer uses restricted ICC profile', 44: 'Compositing layer uses Any ICC profile', 45: 'Deprecated - compositing layer uses sRGB enumerated colourspace', 46: 'Deprecated - compositing layer uses sRGB-grey enumerated colourspace', 47: 'BiLevel 1 enumerated colourspace', 48: 'BiLevel 2 enumerated colourspace', 49: 'YCbCr 1 enumerated colourspace', 50: 'YCbCr 2 enumerated colourspace', 51: 'YCbCr 3 enumerated colourspace', 52: 'PhotoYCC enumerated colourspace', 53: 'YCCK enumerated colourspace', 54: 'CMY enumerated colourspace', 55: 'CMYK enumerated colorspace', 56: 'CIELab enumerated colourspace with default parameters', 57: 'CIELab enumerated colourspace with non-default parameters', 58: 'CIEJab enumerated colourspace with default parameters', 59: 'CIEJab enumerated colourspace with non-default parameters', 60: 'e-sRGB enumerated colorspace', 61: 'ROMM_RGB enumerated colorspace', 62: 'Non-square samples', 63: 'Deprecated - compositing layers have labels', 64: 'Deprecated - codestreams have labels', 65: 'Deprecated - compositing layers have different colour spaces', 66: 'Deprecated - compositing layers have different metadata', 67: 'GIS metadata XML box', 68: 'JPSEC extensions in codestream as specified by ISO/IEC 15444-8', 69: 'JP3D extensions in codestream as specified by ISO/IEC 15444-10', 70: 'Deprecated - compositing layer uses sYCC enumerated colour space', 71: 'e-sYCC enumerated colourspace', 72: ('JPEG 2000 Part 2 codestream as restricted by baseline conformance ' 'requirements in M.9.2.3'), 73: 'YPbPr(1125/60) enumerated colourspace', 74: 'YPbPr(1250/50) enumerated colourspace'} class ReaderRequirementsBox(Jp2kBox): """Container for reader requirements box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. fuam : int Fully Understand Aspects mask. dcm : int Decode completely mask. standard_flag : list Integers specifying standard features. standard_mask : list Specifies the compatibility mask for each corresponding standard flag. vendor_feature : list Each item is a UUID corresponding to a vendor defined feature. vendor_mask : list Specifies the compatibility mask for each corresponding vendor feature. """ box_id = 'rreq' longname = 'Reader Requirements' def __init__(self, fuam, dcm, standard_flag, standard_mask, vendor_feature, vendor_mask, length=0, offset=-1): super().__init__() self.fuam = fuam self.dcm = dcm self.standard_flag = tuple(standard_flag) self.standard_mask = tuple(standard_mask) self.vendor_feature = tuple(vendor_feature) self.vendor_mask = tuple(vendor_mask) self.length = length self.offset = offset def __repr__(self): msg = ("glymur.jp2box.ReaderRequirementsBox(fuam={fuam}, dcm={dcm}, " "standard_flag={standard_flag}, standard_mask={standard_mask}, " "vendor_feature={vendor_feature}, vendor_mask={vendor_mask})") msg = msg.format(fuam=self.fuam, dcm=self.dcm, standard_flag=self.standard_flag, standard_mask=self.standard_mask, vendor_feature=self.vendor_feature, vendor_mask=self.vendor_mask) return msg def __str__(self): title = Jp2kBox.__str__(self) if get_option('print.short') is True: return title lst = [] text = f'Fully Understands Aspect Mask: 0x{self.fuam:x}' lst.append(text) text = f'Display Completely Mask: 0x{self.dcm:x}' lst.append(text) text = 'Standard Features and Masks:' lst.append(text) lst2 = [] text = 'Feature {flag:03d}: 0x{mask:x} {decoded}' for j in range(len(self.standard_flag)): kwargs = { 'flag': self.standard_flag[j], 'mask': self.standard_mask[j], 'decoded': _READER_REQUIREMENTS_DISPLAY[self.standard_flag[j]], } lst2.append(text.format(**kwargs)) text = '\n'.join(lst2) text = textwrap.indent(text, ' ' * 4) lst.append(text) text = 'Vendor Features:' lst.append(text) lst2 = [] for j in range(len(self.vendor_feature)): text = 'UUID {0}'.format(self.vendor_feature[j]) lst2.append(text) text = '\n'.join(lst2) text = textwrap.indent(text, ' ' * 4) lst.append(text) text = '\n'.join(lst) text = textwrap.indent(text, ' ' * 4) text = '\n'.join([title, text]) return text @classmethod def parse(cls, fptr, offset, length): """Parse reader requirements box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- ReaderRequirementsBox Instance of the current reader requirements box. """ num_bytes = offset + length - fptr.tell() read_buffer = fptr.read(num_bytes) mask_length, = struct.unpack_from('>B', read_buffer, offset=0) # Fully Understands Aspect Mask # Decodes Completely Mask fuam = dcm = standard_flag = standard_mask = [] vendor_feature = vendor_mask = [] # The mask length tells us the format string to use when unpacking # from the buffer read from file. try: mask_format = {1: 'B', 2: 'H', 4: 'I', 8: 'Q'}[mask_length] fuam, dcm = struct.unpack_from('>' + mask_format * 2, read_buffer, offset=1) std_flg_offset = 1 + 2 * mask_length data = _parse_standard_flag(read_buffer[std_flg_offset:], mask_length) standard_flag, standard_mask = data nflags = len(standard_flag) vndr_offset = 1 + 2 * mask_length + 2 + (2 + mask_length) * nflags data = _parse_vendor_features(read_buffer[vndr_offset:], mask_length) vendor_feature, vendor_mask = data except KeyError: msg = ( f'The ReaderRequirements box (rreq) has a mask length of ' f'{mask_length} bytes, but only values of 1, 2, 4, or 8 are ' f'supported. The box contents will not be interpreted.' ) warnings.warn(msg, UserWarning) return cls(fuam, dcm, standard_flag, standard_mask, vendor_feature, vendor_mask, length=length, offset=offset) def _parse_standard_flag(read_buffer, mask_length): """Construct standard flag, standard mask data from the file. Specifically working on Reader Requirements box. Parameters ---------- fptr : file object File object for JP2K file. mask_length : int Length of standard mask flag """ # The mask length tells us the format string to use when unpacking # from the buffer read from file. mask_format = {1: 'B', 2: 'H', 4: 'I'}[mask_length] num_standard_flags, = struct.unpack_from('>H', read_buffer, offset=0) # Read in standard flags and standard masks. Each standard flag should # be two bytes, but the standard mask flag is as long as specified by # the mask length. fmt = '>' + ('H' + mask_format) * num_standard_flags data = struct.unpack_from(fmt, read_buffer, offset=2) standard_flag = data[0:num_standard_flags * 2:2] standard_mask = data[1:num_standard_flags * 2:2] return standard_flag, standard_mask def _parse_vendor_features(read_buffer, mask_length): """Construct vendor features, vendor mask data from the file. Specifically working on Reader Requirements box. Parameters ---------- fptr : file object File object for JP2K file. mask_length : int Length of vendor mask flag """ # The mask length tells us the format string to use when unpacking # from the buffer read from file. mask_format = {1: 'B', 2: 'H', 4: 'I'}[mask_length] num_vendor_features, = struct.unpack_from('>H', read_buffer) # Each vendor feature consists of a 16-byte UUID plus a mask whose # length is specified by, you guessed it, "mask_length". entry_length = 16 + mask_length vendor_feature = [] vendor_mask = [] for j in range(num_vendor_features): uslice = slice(2 + j * entry_length, 2 + (j + 1) * entry_length) ubuffer = read_buffer[uslice] vendor_feature.append(UUID(bytes=ubuffer[0:16])) vmask = struct.unpack('>' + mask_format, ubuffer[16:]) vendor_mask.append(vmask) return vendor_feature, vendor_mask class ResolutionBox(Jp2kBox): """Container for Resolution superbox information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. box : list List of boxes contained in this superbox. """ box_id = 'res ' longname = 'Resolution' def __init__(self, box=None, length=0, offset=-1): super().__init__() self.length = length self.offset = offset self.box = box if box is not None else [] def __repr__(self): msg = f"glymur.jp2box.ResolutionBox(box={self.box})" return msg def __str__(self): msg = self._str_superbox() return msg @classmethod def parse(cls, fptr, offset, length): """Parse Resolution box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- ResolutionBox Instance of the current resolution box. """ box = cls(length=length, offset=offset) # The JP2 header box is a superbox, so go ahead and parse its child # boxes. box.box = box.parse_superbox(fptr) return box class CaptureResolutionBox(Jp2kBox): """Container for Capture resolution box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. vertical_resolution, horizontal_resolution : float Vertical, horizontal resolution. """ box_id = 'resc' longname = 'Capture Resolution' def __init__(self, vertical_resolution, horizontal_resolution, length=0, offset=-1): super().__init__() self.vertical_resolution = vertical_resolution self.horizontal_resolution = horizontal_resolution self.length = length self.offset = offset def __repr__(self): msg = ( f"glymur.jp2box.CaptureResolutionBox" f"({self.vertical_resolution}, {self.horizontal_resolution})" ) return msg def __str__(self): title = Jp2kBox.__str__(self) if get_option('print.short') is True: return title lst = [] text = f'VCR: {self.vertical_resolution}' lst.append(text) text = f'HCR: {self.horizontal_resolution}' lst.append(text) text = '\n'.join(lst) text = textwrap.indent(text, ' ' * 4) text = '\n'.join([title, text]) return text @classmethod def parse(cls, fptr, offset, length): """Parse CaptureResolutionBox. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- CaptureResolutionBox Instance of the current capture resolution box. """ read_buffer = fptr.read(10) (rn1, rd1, rn2, rd2, re1, re2) = struct.unpack('>HHHHbb', read_buffer) vres = rn1 / rd1 * 10 ** re1 hres = rn2 / rd2 * 10 ** re2 return cls(vres, hres, length=length, offset=offset) class DisplayResolutionBox(Jp2kBox): """Container for Display resolution box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. vertical_resolution, horizontal_resolution : float Vertical, horizontal resolution. """ box_id = 'resd' longname = 'Display Resolution' def __init__(self, vertical_resolution, horizontal_resolution, length=0, offset=-1): super().__init__() self.vertical_resolution = vertical_resolution self.horizontal_resolution = horizontal_resolution self.length = length self.offset = offset def __repr__(self): msg = "glymur.jp2box.DisplayResolutionBox({0}, {1})" msg = msg.format(self.vertical_resolution, self.horizontal_resolution) return msg def __str__(self): title = Jp2kBox.__str__(self) if get_option('print.short') is True: return title lst = [] text = f'VDR: {self.vertical_resolution}' lst.append(text) text = f'HDR: {self.horizontal_resolution}' lst.append(text) text = '\n'.join(lst) text = textwrap.indent(text, ' ' * 4) text = '\n'.join([title, text]) return text @classmethod def parse(cls, fptr, offset, length): """Parse display resolution box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- DisplayResolutionBox Instance of the current display resolution box. """ read_buffer = fptr.read(10) (rn1, rd1, rn2, rd2, re1, re2) = struct.unpack('>HHHHbb', read_buffer) vres = rn1 / rd1 * 10 ** re1 hres = rn2 / rd2 * 10 ** re2 return cls(vres, hres, length=length, offset=offset) class LabelBox(Jp2kBox): """Container for Label box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. label : str Textual label. """ box_id = 'lbl ' longname = 'Label' def __init__(self, label, length=0, offset=-1): super().__init__() self.label = label self.length = length self.offset = offset def __str__(self): title = Jp2kBox.__str__(self) if get_option('print.short') is True: return title text = f'Label: {self.label}' text = textwrap.indent(text, ' ' * 4) text = '\n'.join([title, text]) return text def __repr__(self): msg = f'glymur.jp2box.LabelBox("{self.label}")' return msg def write(self, fptr): """Write a Label box to file. """ length = 8 + len(self.label.encode()) fptr.write(struct.pack('>I4s', length, b'lbl ')) fptr.write(self.label.encode()) @classmethod def parse(cls, fptr, offset, length): """Parse Label box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- LabelBox Instance of the current label box. """ num_bytes = offset + length - fptr.tell() read_buffer = fptr.read(num_bytes) label = read_buffer.decode('utf-8') return cls(label, length=length, offset=offset) class NumberListBox(Jp2kBox): """Container for Number List box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. AN : list Descriptors of an entity with which the data contained within the same Association box is associated. """ box_id = 'nlst' longname = 'Number List' def __init__(self, associations, length=0, offset=-1): super().__init__() self.associations = associations self.length = length self.offset = offset def __str__(self): title = Jp2kBox.__str__(self) if get_option('print.short') is True: return title lst = [] for j, association in enumerate(self.associations): text = 'Association[{0}]: '.format(j) if association == 0: text += 'the rendered result' elif (association >> 24) == 1: idx = association & 0x00FFFFFF text += 'codestream {0}'.format(idx) elif (association >> 24) == 2: idx = association & 0x00FFFFFF text += 'compositing layer {0}'.format(idx) else: text += 'unrecognized' lst.append(text) body = '\n'.join(lst) body = textwrap.indent(body, ' ' * 4) text = '\n'.join([title, body]) return text def __repr__(self): msg = f'glymur.jp2box.NumberListBox(associations={self.associations})' return msg @classmethod def parse(cls, fptr, offset, length): """Parse number list box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- LabelBox Instance of the current number list box. """ num_bytes = offset + length - fptr.tell() raw_data = fptr.read(num_bytes) num_associations = int(len(raw_data) / 4) lst = struct.unpack('>' + 'I' * num_associations, raw_data) return cls(lst, length=length, offset=offset) def write(self, fptr): """Write a NumberList box to file. """ fptr.write(struct.pack('>I4s', len(self.associations) * 4 + 8, b'nlst')) fmt = '>' + 'I' * len(self.associations) write_buffer = struct.pack(fmt, *self.associations) fptr.write(write_buffer) class XMLBox(Jp2kBox): """Container for XML box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. xml : ElementTree object XML section. """ box_id = 'xml ' longname = 'XML' def __init__(self, xml=None, filename=None, length=0, offset=-1): """ Parameters ---------- xml : ElementTree An ElementTree object already existing in python. filename : str or path File from which to read XML. If filename is not None, then the xml keyword argument must be None. """ super().__init__() if filename is not None and xml is not None: msg = ("Only one of either a filename or an ElementTree instance " "should be provided.") raise RuntimeError(msg) if filename is not None: self.xml = ET.parse(str(filename)) else: self.xml = xml self.length = length self.offset = offset def __repr__(self): return f"glymur.jp2box.XMLBox(xml={self.xml})" def __str__(self): title = Jp2kBox.__str__(self) if get_option('print.short') is True: return title if get_option('print.xml') is False: return title if self.xml is not None: body = ET.tostring(self.xml, encoding='utf-8', pretty_print=True).decode('utf-8').rstrip() else: body = 'None' body = textwrap.indent(body, ' ' * 4) text = '\n'.join([title, body]) return text def write(self, fptr): """ Write an XML box to file. """ read_buffer = ET.tostring(self.xml.getroot(), encoding='utf-8') fptr.write(struct.pack('>I4s', len(read_buffer) + 8, b'xml ')) fptr.write(read_buffer) @classmethod def parse(cls, fptr, offset, length): """Parse XML box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- XMLBox Instance of the current XML box. """ num_bytes = offset + length - fptr.tell() read_buffer = fptr.read(num_bytes) try: text = read_buffer.decode('utf-8') except UnicodeDecodeError as err: # Possibly bad string of bytes to begin with. # Try to search for I4sH', length, b'ulst', num_uuids) fptr.write(write_buffer) for j in range(num_uuids): fptr.write(self.ulst[j].bytes) @classmethod def parse(cls, fptr, offset, length): """Parse UUIDList box. Parameters ---------- f : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- UUIDListBox Instance of the current UUID list box. """ num_bytes = offset + length - fptr.tell() read_buffer = fptr.read(num_bytes) num_uuids, = struct.unpack_from('>H', read_buffer) ulst = [] for j in range(num_uuids): uuid_buffer = read_buffer[2 + j * 16:2 + (j + 1) * 16] ulst.append(UUID(bytes=uuid_buffer)) return cls(ulst, length=length, offset=offset) class UUIDInfoBox(Jp2kBox): """Container for JPEG 2000 UUID Info superbox. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. box : list List of boxes contained in this superbox. """ box_id = 'uinf' longname = 'UUIDInfo' def __init__(self, box=None, length=0, offset=-1): super().__init__() self.length = length self.offset = offset self.box = box if box is not None else [] def __repr__(self): msg = f"glymur.jp2box.UUIDInfoBox(box={self.box})" return msg def __str__(self): msg = self._str_superbox() return msg def write(self, fptr): """Write a UUIDInfo box to file. """ self._write_superbox(fptr, b'uinf') @classmethod def parse(cls, fptr, offset, length): """Parse UUIDInfo super box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- UUIDInfoBox Instance of the current UUID information box. """ box = cls(length=length, offset=offset) # The UUIDInfo box is a superbox, so go ahead and parse its child # boxes. box.box = box.parse_superbox(fptr) return box class DataEntryURLBox(Jp2kBox): """Container for data entry URL box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. version : byte Must be 0 for JP2. flag : bytes Particular attributes of this box, consists of three bytes. URL : str Associated URL. """ box_id = 'url ' longname = 'Data Entry URL' def __init__(self, version, flag, url, length=0, offset=-1): super().__init__() self.version = version self.flag = flag self.url = url self.length = length self.offset = offset def write(self, fptr): """Write a data entry url box to file. """ # Make sure it is written out as null-terminated. url = self.url if self.url[-1] != chr(0): url = url + chr(0) url = url.encode() length = 8 + 1 + 3 + len(url) write_buffer = struct.pack('>I4sBBBB', length, b'url ', self.version, self.flag[0], self.flag[1], self.flag[2]) fptr.write(write_buffer) fptr.write(url) def __repr__(self): msg = "glymur.jp2box.DataEntryURLBox({version}, {flag}, '{url}')" msg = msg.format(version=self.version, flag=self.flag, url=self.url) return msg def __str__(self): title = Jp2kBox.__str__(self) if get_option('print.short') is True: return title body = ( f'Version: {self.version}\n' f'Flag: {self.flag[0]} {self.flag[1]} {self.flag[2]}\n' f'URL: "{self.url}"' ) body = textwrap.indent(body, ' ' * 4) text = '\n'.join([title, body]) return text @classmethod def parse(cls, fptr, offset, length): """Parse data entry URL box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- DataEntryURLbox Instance of the current data entry URL box. """ num_bytes = offset + length - fptr.tell() read_buffer = fptr.read(num_bytes) data = struct.unpack_from('>BBBB', read_buffer) version = data[0] flag = data[1:4] url = read_buffer[4:].decode('utf-8').rstrip(chr(0)) return cls(version, flag, url, length=length, offset=offset) class UnknownBox(Jp2kBox): """Container for unrecognized boxes. Attributes ---------- box_id : str 4-character identifier for the box. claimed_box_id : str 4-character identifier that the box claimed to be. If the box was intended to be a known box such as 'pclr' but is somehow invalid, then we give it a box_id of 'xxxx' but a claimed_box_id of 'pclr'. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. """ def __init__(self, claimed_box_id, length=0, offset=-1, longname=''): super().__init__() self.longname = longname self.box_id = 'xxxx' self.claimed_box_id = claimed_box_id self.length = length self.offset = offset def __repr__(self): msg = f"glymur.jp2box.UnknownBox('{self.box_id}')" return msg def __str__(self): title = Jp2kBox.__str__(self) body = f' Claimed ID: {self.claimed_box_id}' text = '\n'.join([title, body]) return text class UUIDBox(Jp2kBox): """Container for UUID box information. Attributes ---------- box_id : str 4-character identifier for the box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. longname : str more verbose description of the box. uuid : uuid.UUID 16-byte UUID raw_data : byte array Sequence of uninterpreted bytes as read from the file. data : object Specific to each type of UUID. There are handlers for XMP, Exif, and generic (unknown) UUIDs. In the case of XMP and Exif UUIDs, this is the interpreted version of raw_data. References ---------- .. [XMP] International Organization for Standardication. ISO/IEC 16684-1:2012 - Graphic technology -- Extensible metadata platform (XMP) specification -- Part 1: Data model, serialization and core properties """ box_id = 'uuid' longname = 'UUID' def __init__(self, the_uuid, raw_data, length=0, offset=-1): """ Parameters ---------- the_uuid : uuid.UUID Identifies the type of UUID box. raw_data : byte array Sequence of uninterpreted bytes as read from the UUID box. length : int length of the box in bytes. offset : int offset of the box from the start of the file. """ super().__init__() self.uuid = the_uuid self.raw_data = raw_data self.length = length self.offset = offset self.data = None try: self._parse_raw_data() except BadTiffTagDatatype as err: orig_msg = str(err) new_msg = ( f"An issue was encountered while parsing a UUIDBox at byte " f"offset {offset}. {orig_msg}" ) warnings.warn(new_msg) except RuntimeError as error: # Such as when Exif byte order is unrecognized. warnings.warn(str(error)) def _parse_raw_data(self): """ Private function for parsing UUID payloads if possible. """ if self.uuid == _XMP_UUID: txt = self.raw_data.decode('utf-8') elt = ET.fromstring(txt) self.data = ET.ElementTree(elt) elif self.uuid == _GEOTIFF_UUID: self.data = tiff_header(self.raw_data) elif self.uuid == _EXIF_UUID: # Cut off 'EXIF\0\0' part. self.data = tiff_header(self.raw_data[6:]) else: self.data = self.raw_data def __repr__(self): msg = ("glymur.jp2box.UUIDBox({0}, " "raw_data=)") return msg.format(repr(self.uuid), len(self.raw_data)) def __str__(self): title = Jp2kBox.__str__(self) if get_option('print.short') is True: return title text = f'UUID: {self.uuid}' if self.uuid == _XMP_UUID: text += ' (XMP)' elif self.uuid == _GEOTIFF_UUID: text += ' (GeoTIFF)' elif self.uuid == _EXIF_UUID: text += ' (EXIF)' else: text += ' (unknown)' lst = [text] if not get_option('print.xml') and self.uuid == _XMP_UUID: # If it's an XMP UUID, don't print the XML contents. pass elif self.uuid == _XMP_UUID: b = ET.tostring(self.data, encoding='utf-8', pretty_print=True) s = b.decode('utf-8').strip() text = f'UUID Data:\n{s}' lst.append(text) elif self.uuid == _EXIF_UUID: text = f'UUID Data: {self.data}' lst.append(text) elif self.uuid == _GEOTIFF_UUID: txt = f'UUID Data: {self._print_geotiff()}' lst.append(txt) else: text = f'UUID Data: {len(self.raw_data)} bytes' lst.append(text) body = '\n'.join(lst) body = textwrap.indent(body, ' ' * 4) text = '\n'.join([title, body]) return text def _print_geotiff(self): try: return self._print_geotiff_as_geotiff() except NameError: # gdal not found? The representation of the TIFF IFD will have to # do. return self.data except RuntimeError: # Unusual situation where gdal code fails # The representation of the TIFF IFD will have to do. return self.data def _print_geotiff_as_geotiff(self): """ Print geotiff information. Shamelessly ripped off from gdalinfo.py Returns ------- str String representation of the degenerate geotiff. """ if self.data is None: return "corrupt" in_mem_name = '/vsimem/geo.tif' gdal.FileFromMemBuffer(in_mem_name, self.raw_data) gtif = gdal.Open(in_mem_name) # Report projection proj_ref = gtif.GetProjectionRef() sref = osr.SpatialReference() sref.ImportFromWkt(proj_ref) psz_pretty_wkt = sref.ExportToPrettyWkt(False) # report geotransform geo_xform = gtif.GetGeoTransform(can_return_null=True) geotransform_str = ( f'Origin = ({geo_xform[0]:.15f},{geo_xform[3]:.15f})\n' f'Pixel Size = ({geo_xform[1]:.15f},{geo_xform[5]:.15f})' ) # setup projected to lat/long transform if appropriate if proj_ref is not None and len(proj_ref) > 0: hProj = osr.SpatialReference(proj_ref) if hProj is not None: hLatLong = hProj.CloneGeogCS() if hLatLong is not None: hTransform = osr.CoordinateTransformation(hProj, hLatLong) else: raise RuntimeError('Unable to proceed.') # report corners uleft = self.GDALInfoReportCorner(gtif, hTransform, "Upper Left", 0, 0) lleft = self.GDALInfoReportCorner(gtif, hTransform, "Lower Left", 0, gtif.RasterYSize) uright = self.GDALInfoReportCorner(gtif, hTransform, "Upper Right", gtif.RasterXSize, 0) lright = self.GDALInfoReportCorner(gtif, hTransform, "Lower Right", gtif.RasterXSize, gtif.RasterYSize) center = self.GDALInfoReportCorner(gtif, hTransform, "Center", gtif.RasterXSize / 2.0, gtif.RasterYSize / 2.0) gdal.Unlink(in_mem_name) fmt = ("Coordinate System =\n" "{coordinate_system}\n" "{geotransform}\n" "Corner Coordinates:\n" "{upper_left}\n" "{lower_left}\n" "{upper_right}\n" "{lower_right}\n" "{center}") coordinate_system = textwrap.indent(psz_pretty_wkt, ' ' * 4) msg = fmt.format(coordinate_system=coordinate_system, geotransform=geotransform_str, upper_left=uleft, upper_right=uright, lower_left=lleft, lower_right=lright, center=center) return msg def GDALInfoReportCorner(self, hDataset, hTransform, corner_name, x, y): line = '{:<11s} '.format(corner_name) # transform the point into georeferenced coordinates geo_transform = hDataset.GetGeoTransform(can_return_null=True) dfGeoX = (geo_transform[0] + geo_transform[1] * x + geo_transform[2] * y) dfGeoY = geo_transform[3] + geo_transform[4] * x dfGeoY += geo_transform[5] * y # report the georeferenced coordinates line += f'({dfGeoX:12.3f},{dfGeoY:12.3f}) ' # transform to latlong and report if hTransform is not None: point = hTransform.TransformPoint(dfGeoX, dfGeoY, 0) if point is not None: line += '({},{})'.format(gdal.DecToDMS(point[0], 'Long', 2), gdal.DecToDMS(point[1], 'Lat', 2)) return line def write(self, fptr): """Write a UUID box to file. """ length = 4 + 4 + 16 + len(self.raw_data) write_buffer = struct.pack('>I4s', length, b'uuid') fptr.write(write_buffer) fptr.write(self.uuid.bytes) fptr.write(self.raw_data) @classmethod def parse(cls, fptr, offset, length): """Parse UUID box. Parameters ---------- fptr : file Open file object. offset : int Start position of box in bytes. length : int Length of the box in bytes. Returns ------- UUIDBox """ num_bytes = offset + length - fptr.tell() read_buffer = fptr.read(num_bytes) the_uuid = UUID(bytes=read_buffer[0:16]) return cls(the_uuid, read_buffer[16:], length=length, offset=offset) # Map each box ID to the corresponding class. _BOX_WITH_ID = { b'asoc': AssociationBox, b'bpcc': BitsPerComponentBox, b'cdef': ChannelDefinitionBox, b'cgrp': ColourGroupBox, b'cmap': ComponentMappingBox, b'colr': ColourSpecificationBox, b'dtbl': DataReferenceBox, b'ftyp': FileTypeBox, b'ihdr': ImageHeaderBox, b'jP ': JPEG2000SignatureBox, b'jpch': CodestreamHeaderBox, b'jplh': CompositingLayerHeaderBox, b'jp2c': ContiguousCodestreamBox, b'free': FreeBox, b'flst': FragmentListBox, b'ftbl': FragmentTableBox, b'jp2h': JP2HeaderBox, b'lbl ': LabelBox, b'nlst': NumberListBox, b'pclr': PaletteBox, b'res ': ResolutionBox, b'resc': CaptureResolutionBox, b'resd': DisplayResolutionBox, b'rreq': ReaderRequirementsBox, b'uinf': UUIDInfoBox, b'ulst': UUIDListBox, b'url ': DataEntryURLBox, b'uuid': UUIDBox, b'xml ': XMLBox} glymur-0.9.1/glymur/jp2k.py000066400000000000000000002046361360775562100156260ustar00rootroot00000000000000"""This file is part of glymur, a Python interface for accessing JPEG 2000. http://glymur.readthedocs.org Copyright 2013 John Evans License: MIT """ # Standard library imports... from collections import Counter from contextlib import ExitStack from itertools import filterfalse import ctypes import pathlib import re import struct from uuid import UUID import warnings # Third party library imports import numpy as np # Local imports... from .codestream import Codestream from . import core, version, get_option from .jp2box import ( Jp2kBox, JPEG2000SignatureBox, FileTypeBox, JP2HeaderBox, ColourSpecificationBox, ContiguousCodestreamBox, ImageHeaderBox, InvalidJp2kError ) from .lib import openjp2 as opj2 class Jp2k(Jp2kBox): """JPEG 2000 file. Attributes ---------- filename : str The path to the JPEG 2000 file. box : sequence List of top-level boxes in the file. Each box may in turn contain its own list of boxes. Will be empty if the file consists only of a raw codestream. shape : tuple Size of the image. Properties ---------- codestream : glymur.codestream.Codestream JP2 or J2K codestream object. ignore_pclr_cmap_cdef : bool Whether or not to ignore the pclr, cmap, or cdef boxes during any color transformation, defaults to False. layer : int Zero-based number of quality layer to decode. verbose : bool Whether or not to print informational messages produced by the OpenJPEG library, defaults to false. Examples -------- >>> import glymur >>> jfile = glymur.data.nemo() >>> jp2 = glymur.Jp2k(jfile) >>> jp2.shape (1456, 2592, 3) >>> image = jp2[:] >>> image.shape (1456, 2592, 3) Read a lower resolution thumbnail. >>> thumbnail = jp2[::2, ::2] >>> thumbnail.shape (728, 1296, 3) Make use of OpenJPEG's thread support >>> import glymur >>> import time >>> if glymur.version.openjpeg_version >= '2.2.0': ... jp2file = glymur.data.nemo() ... jp2 = glymur.Jp2k(jp2file) ... t0 = time.time(); data = jp2[:]; t1 = time.time() ... t1 - t0 #doctest: +SKIP 0.9024193286895752 ... glymur.set_options('lib.num_threads', 4) ... t0 = time.time(); data = jp2[:]; t1 = time.time() ... t1 - t0 #doctest: +SKIP 0.4060473537445068 """ def __init__(self, filename, data=None, shape=None, **kwargs): """ Parameters ---------- filename : str The path to JPEG 2000 file. path : pathlib.Path The path to JPEG 2000 file. image_data : ndarray, optional Image data to be written to file. shape : tuple, optional Size of image data, only required when image_data is not provided. cbsize : tuple, optional Code block size (NROWS, NCOLS) cinema2k : int, optional Frames per second, either 24 or 48. cinema4k : bool, optional Set to True to specify Cinema4K mode, defaults to false. colorspace : {'rgb', 'gray'} The image color space. cratios : iterable, optional Compression ratios for successive layers. eph : bool, optional If true, write SOP marker after each header packet. grid_offset : tuple, optional Offset (DY, DX) of the origin of the image in the reference grid. irreversible : bool, optional If true, use the irreversible DWT 9-7 transform. mct : bool, optional Usage of the multi component transform. If not specified, defaults to True if the color space is RGB. modesw : int, optional mode switch 1 = BYPASS(LAZY) 2 = RESET 4 = RESTART(TERMALL) 8 = VSC 16 = ERTERM(SEGTERM) 32 = SEGMARK(SEGSYM) numres : int, optional Number of resolutions. prog : {"LRCP" "RLCP", "RPCL", "PCRL", "CPRL"} Progression order. psnr : iterable, optional Different PSNR for successive layers. psizes : list, optional List of precinct sizes, each precinct size tuple is defined in (height x width). sop : bool, optional If true, write SOP marker before each packet. subsam : tuple, optional Subsampling factors (dy, dx). tilesize : tuple, optional Tile size in terms of (numrows, numcols), not (X, Y). verbose : bool, optional Print informational messages produced by the OpenJPEG library. """ super().__init__() # In case of pathlib.Paths... self.filename = str(filename) self.path = pathlib.Path(self.filename) self.box = [] self._codec_format = None self._colorspace = None self._layer = 0 self._codestream = None self._ignore_pclr_cmap_cdef = False self._verbose = False if data is not None: # We are writing a JP2/J2K/JPX file. self._shape = data.shape self._write(data, **kwargs) elif shape is not None: # Only if J2X? self._shape = shape if data is None and shape is None: # We must be just reading a JP2/J2K/JPX file. Parse its # contents, then determine "shape". self.parse() self._initialize_shape() def _initialize_shape(self): """ If there was no image data provided and if no shape was initially provisioned, then shape must be computed AFTER we have parsed the input file. """ if self._codec_format == opj2.CODEC_J2K: # get the image size from the codestream cstr = self.codestream height = cstr.segment[1].ysiz width = cstr.segment[1].xsiz num_components = len(cstr.segment[1].xrsiz) else: # try to get the image size from the IHDR box jp2h = [box for box in self.box if box.box_id == 'jp2h'][0] ihdr = [box for box in jp2h.box if box.box_id == 'ihdr'][0] height, width = ihdr.height, ihdr.width num_components = ihdr.num_components if num_components == 1: # but if there is a PCLR box, then we need to check # that as well, as that turns a single-channel image # into a multi-channel image pclr = [box for box in jp2h.box if box.box_id == 'pclr'] if len(pclr) > 0: num_components = len(pclr[0].signed) if num_components == 1: self.shape = (height, width) else: self.shape = (height, width, num_components) return self._shape @property def ignore_pclr_cmap_cdef(self): return self._ignore_pclr_cmap_cdef @ignore_pclr_cmap_cdef.setter def ignore_pclr_cmap_cdef(self, ignore_pclr_cmap_cdef): self._ignore_pclr_cmap_cdef = ignore_pclr_cmap_cdef @property def layer(self): return self._layer @layer.setter def layer(self, layer): # Set to the indicated value so long as it is valid. cod = [ segment for segment in self.codestream.segment if segment.marker_id == 'COD' ][0] if layer < 0 or layer >= cod.layers: msg = f"Invalid layer number, must be in range [0, {cod.layers})." raise ValueError(msg) self._layer = layer @property def codestream(self): if self._codestream is None: self._codestream = self.get_codestream(header_only=True) return self._codestream @property def verbose(self): return self._verbose @verbose.setter def verbose(self, verbose): """Verbosity property. If True, print informational messages from the OPENJPEG library. Parameters ---------- verbose : {True, False} Set to verbose or not. """ self._verbose = verbose @property def shape(self): return self._shape @shape.setter def shape(self, shape): self._shape = shape def __repr__(self): msg = f"glymur.Jp2k('{self.path}')" return msg def __str__(self): metadata = [f'File: {self.path.name}'] if len(self.box) > 0: for box in self.box: metadata.append(str(box)) else: metadata.append(str(self.codestream)) return '\n'.join(metadata) def parse(self): """Parses the JPEG 2000 file. Raises ------ RuntimeError The file was not JPEG 2000. """ self.length = self.path.stat().st_size with self.path.open('rb') as fptr: # Make sure we have a JPEG2000 file. It could be either JP2 or # J2C. Check for J2C first, single box in that case. read_buffer = fptr.read(2) signature, = struct.unpack('>H', read_buffer) if signature == 0xff4f: self._codec_format = opj2.CODEC_J2K # That's it, we're done. The codestream object is only # produced upon explicit request. return self._codec_format = opj2.CODEC_JP2 # Should be JP2. # First 4 bytes should be 12, the length of the 'jP ' box. # 2nd 4 bytes should be the box ID ('jP '). # 3rd 4 bytes should be the box signature (13, 10, 135, 10). fptr.seek(0) read_buffer = fptr.read(12) values = struct.unpack('>I4s4B', read_buffer) box_length = values[0] box_id = values[1] signature = values[2:] if ( box_length != 12 or box_id != b'jP ' or signature != (13, 10, 135, 10) ): msg = f'{self.filename} is not a JPEG 2000 file.' raise InvalidJp2kError(msg) # Back up and start again, we know we have a superbox (box of # boxes) here. fptr.seek(0) self.box = self.parse_superbox(fptr) self._validate() def _validate(self): """ Validate the JPEG 2000 outermost superbox. These checks must be done at a file level. """ # A JP2 file must contain certain boxes. The 2nd box must be a file # type box. if not isinstance(self.box[1], FileTypeBox): msg = f"{self.filename} does not contain a valid File Type box." raise InvalidJp2kError(msg) ftyp = self.box[1] if ftyp.brand != 'jp2 ': # Don't bother trying to validate JPX. return jp2h = [box for box in self.box if box.box_id == 'jp2h'][0] # An IHDR box is required as the first child box of the JP2H box. if jp2h.box[0].box_id != 'ihdr': msg = "A valid IHDR box was not found. The JP2 file is invalid." raise InvalidJp2kError(msg) # A jp2-branded file cannot contain an "any ICC profile colrs = [box for box in jp2h.box if box.box_id == 'colr'] for colr in colrs: if colr.method not in (core.ENUMERATED_COLORSPACE, core.RESTRICTED_ICC_PROFILE): msg = ("Color Specification box method must specify " "either an enumerated colorspace or a restricted " "ICC profile if the file type box brand is 'jp2 '.") warnings.warn(msg, UserWarning) # We need to have one and only one JP2C box if we have a JP2 file. if len([box for box in self.box if box.box_id == 'jp2c']) != 1: msg = ( "A valid JP2C box was not found in the outermost level of JP2 " "boxes. The JP2 file is invalid." ) raise InvalidJp2kError(msg) # Make sure that IHDR and SIZ conform on the dimensions. ihdr = jp2h.box[0] ihdr_dims = ihdr.height, ihdr.width, ihdr.num_components siz = [ segment for segment in self.codestream.segment if segment.marker_id == 'SIZ' ][0] siz_dims = (siz.ysiz, siz.xsiz, len(siz.bitdepth)) if ihdr_dims != siz_dims: msg = ( f"The IHDR dimensions {ihdr_dims} do not match the codestream " f"dimensions {siz_dims}." ) warnings.warn(msg, UserWarning) def _set_cinema_params(self, cinema_mode, fps): """Populate compression parameters structure for cinema2K. Parameters ---------- params : ctypes struct Corresponds to compression parameters structure used by the library. cinema_mode : {'cinema2k', 'cinema4k} Use either Cinema2K or Cinema4K profile. fps : {24, 48} Frames per second. """ # Cinema modes imply MCT. self._cparams.tcp_mct = 1 if cinema_mode == 'cinema2k': if fps not in [24, 48]: msg = 'Cinema2K frame rate must be either 24 or 48.' raise ValueError(msg) if fps == 24: self._cparams.rsiz = core.OPJ_PROFILE_CINEMA_2K self._cparams.max_comp_size = core.OPJ_CINEMA_24_COMP self._cparams.max_cs_size = core.OPJ_CINEMA_24_CS else: self._cparams.rsiz = core.OPJ_PROFILE_CINEMA_2K self._cparams.max_comp_size = core.OPJ_CINEMA_48_COMP self._cparams.max_cs_size = core.OPJ_CINEMA_48_CS else: # cinema4k self._cparams.rsiz = core.OPJ_PROFILE_CINEMA_4K def _populate_cparams(self, img_array, mct=None, cratios=None, psnr=None, cinema2k=None, cinema4k=None, irreversible=None, cbsize=None, eph=None, grid_offset=None, modesw=None, numres=None, prog=None, psizes=None, sop=None, subsam=None, tilesize=None, colorspace=None): """Directs processing of write method arguments. Parameters ---------- img_array : ndarray Image data to be written to file. kwargs : dictionary Non-image keyword inputs provided to write method. """ other_args = (mct, cratios, psnr, irreversible, cbsize, eph, grid_offset, modesw, numres, prog, psizes, sop, subsam) if ( (cinema2k is not None or cinema4k is not None) and (not all([arg is None for arg in other_args])) ): msg = ("Cannot specify cinema2k/cinema4k along with any other " "options.") raise InvalidJp2kError(msg) if psnr is not None: if cratios is not None: msg = "Cannot specify cratios and psnr options together." raise InvalidJp2kError(msg) if 0 in psnr and psnr[-1] != 0: msg = ("If a zero value is supplied in the PSNR keyword " "argument, it must be in the final position.") raise InvalidJp2kError(msg) if ( (0 in psnr and np.any(np.diff(psnr[:-1]) < 0)) or (0 not in psnr and np.any(np.diff(psnr) < 0)) ): msg = ("PSNR values must be increasing, with one exception - " "zero may be in the final position to indicate a " "lossless layer.") raise InvalidJp2kError(msg) cparams = opj2.set_default_encoder_parameters() outfile = self.filename.encode() num_pad_bytes = opj2.PATH_LEN - len(outfile) outfile += b'0' * num_pad_bytes cparams.outfile = outfile if self.filename[-4:].endswith(('.jp2', '.JP2')): cparams.codec_fmt = opj2.CODEC_JP2 else: cparams.codec_fmt = opj2.CODEC_J2K cparams.irreversible = 1 if irreversible else 0 if cinema2k is not None: self._cparams = cparams self._set_cinema_params('cinema2k', cinema2k) if cinema4k is not None: self._cparams = cparams self._set_cinema_params('cinema4k', cinema4k) if cbsize is not None: cparams.cblockw_init = cbsize[1] cparams.cblockh_init = cbsize[0] if cratios is not None: cparams.tcp_numlayers = len(cratios) for j, cratio in enumerate(cratios): cparams.tcp_rates[j] = cratio cparams.cp_disto_alloc = 1 cparams.csty |= 0x02 if sop else 0 cparams.csty |= 0x04 if eph else 0 if grid_offset is not None: cparams.image_offset_x0 = grid_offset[1] cparams.image_offset_y0 = grid_offset[0] if modesw is not None: for shift in range(6): power_of_two = 1 << shift if modesw & power_of_two: cparams.mode |= power_of_two if numres is not None: cparams.numresolution = numres if prog is not None: cparams.prog_order = core.PROGRESSION_ORDER[prog.upper()] if psnr is not None: cparams.tcp_numlayers = len(psnr) for j, snr_layer in enumerate(psnr): cparams.tcp_distoratio[j] = snr_layer cparams.cp_fixed_quality = 1 if psizes is not None: for j, (prch, prcw) in enumerate(psizes): cparams.prcw_init[j] = prcw cparams.prch_init[j] = prch cparams.csty |= 0x01 cparams.res_spec = len(psizes) if subsam is not None: cparams.subsampling_dy = subsam[0] cparams.subsampling_dx = subsam[1] if tilesize is not None: cparams.cp_tdx = tilesize[1] cparams.cp_tdy = tilesize[0] cparams.tile_size_on = opj2.TRUE if mct is None: # If the multi component transform was not specified, we infer # that it should be used if the color space is RGB. cparams.tcp_mct = 1 if self._colorspace == opj2.CLRSPC_SRGB else 0 else: if self._colorspace == opj2.CLRSPC_GRAY: msg = ("Cannot specify usage of the multi component transform " "if the colorspace is gray.") raise InvalidJp2kError(msg) cparams.tcp_mct = 1 if mct else 0 # Set defaults to lossless to begin. if cparams.tcp_numlayers == 0: cparams.tcp_rates[0] = 0 cparams.tcp_numlayers += 1 cparams.cp_disto_alloc = 1 self._validate_compression_params(img_array, cparams, colorspace) self._cparams = cparams def _write(self, img_array, verbose=False, **kwargs): """Write image data to a JP2/JPX/J2k file. Intended usage of the various parameters follows that of OpenJPEG's opj_compress utility. This method can only be used to create JPEG 2000 images that can fit in memory. """ if version.openjpeg_version < '2.3.0': msg = ("You must have at least version 2.3.0 of OpenJPEG " "in order to write images.") raise RuntimeError(msg) self._determine_colorspace(**kwargs) self._populate_cparams(img_array, **kwargs) self._write_openjp2(img_array, verbose=verbose) def _validate_j2k_colorspace(self, cparams, colorspace): """ Cannot specify a colorspace with J2K. """ if cparams.codec_fmt == opj2.CODEC_J2K and colorspace is not None: msg = 'Do not specify a colorspace when writing a raw codestream.' raise InvalidJp2kError(msg) def _validate_codeblock_size(self, cparams): """ Code block dimensions must satisfy certain restrictions. They must both be a power of 2 and the total area defined by the width and height cannot be either too great or too small for the codec. """ if cparams.cblockw_init != 0 and cparams.cblockh_init != 0: # These fields ARE zero if uninitialized. width = cparams.cblockw_init height = cparams.cblockh_init if height * width > 4096 or height < 4 or width < 4: msg = ( f"The code block area is specified as {height} x {width} " f"= {height * width} square pixels. Code block area " f"cannot exceed 4096 square pixels. Code block height " f"and width dimensions must be larger than 4 pixels." ) raise InvalidJp2kError(msg) if ( np.log2(height) != np.floor(np.log2(height)) or np.log2(width) != np.floor(np.log2(width)) ): msg = ( f"Bad code block size ({height} x {width}). " f"The dimensions must be powers of 2." ) raise InvalidJp2kError(msg) def _validate_precinct_size(self, cparams): """ Precinct dimensions must satisfy certain restrictions if specified. They must both be a power of 2 and must both be at least twice the size of their codeblock size counterparts. """ code_block_specified = False if cparams.cblockw_init != 0 and cparams.cblockh_init != 0: code_block_specified = True if cparams.res_spec != 0: # precinct size was not specified if this field is zero. for j in range(cparams.res_spec): prch = cparams.prch_init[j] prcw = cparams.prcw_init[j] if j == 0 and code_block_specified: height, width = cparams.cblockh_init, cparams.cblockw_init if prch < height * 2 or prcw < width * 2: msg = ( f"The highest resolution precinct size " f"({prch} x {prcw}) must be at least twice that " f"of the code block size ({height} x {width})." ) raise InvalidJp2kError(msg) if ( np.log2(prch) != np.floor(np.log2(prch)) or np.log2(prcw) != np.floor(np.log2(prcw)) ): msg = ( f"Bad precinct size ({prch} x {prcw}). Precinct " f"dimensions must be powers of 2." ) raise InvalidJp2kError(msg) def _validate_image_rank(self, img_array): """ Images must be either 2D or 3D. """ if img_array.ndim == 1 or img_array.ndim > 3: msg = f"{img_array.ndim}D imagery is not allowed." raise InvalidJp2kError(msg) def _validate_image_datatype(self, img_array): """ Only uint8 and uint16 images are currently supported. """ if img_array.dtype != np.uint8 and img_array.dtype != np.uint16: msg = ("Only uint8 and uint16 datatypes are currently supported " "when writing.") raise InvalidJp2kError(msg) def _validate_compression_params(self, img_array, cparams, colorspace): """Check that the compression parameters are valid. Parameters ---------- img_array : ndarray Image data to be written to file. cparams : CompressionParametersType(ctypes.Structure) Corresponds to cparameters_t type in openjp2 headers. """ self._validate_j2k_colorspace(cparams, colorspace) self._validate_codeblock_size(cparams) self._validate_precinct_size(cparams) self._validate_image_rank(img_array) self._validate_image_datatype(img_array) def _determine_colorspace(self, colorspace=None, **kwargs): """Determine the colorspace from the supplied inputs. Parameters ---------- colorspace : str, optional Either 'rgb' or 'gray'. """ if colorspace is None: # Must infer the colorspace from the image dimensions. if len(self.shape) < 3: # A single channel image is grayscale. self._colorspace = opj2.CLRSPC_GRAY elif self.shape[2] == 1 or self.shape[2] == 2: # A single channel image or an image with two channels is going # to be greyscale. self._colorspace = opj2.CLRSPC_GRAY else: # Anything else must be RGB, right? self._colorspace = opj2.CLRSPC_SRGB else: if colorspace.lower() not in ('rgb', 'grey', 'gray'): msg = f'Invalid colorspace "{colorspace}".' raise InvalidJp2kError(msg) elif colorspace.lower() == 'rgb' and self.shape[2] < 3: msg = 'RGB colorspace requires at least 3 components.' raise InvalidJp2kError(msg) # Turn the colorspace from a string to the enumerated value that # the library expects. COLORSPACE_MAP = {'rgb': opj2.CLRSPC_SRGB, 'gray': opj2.CLRSPC_GRAY, 'grey': opj2.CLRSPC_GRAY, 'ycc': opj2.CLRSPC_YCC} self._colorspace = COLORSPACE_MAP[colorspace.lower()] def _write_openjp2(self, img_array, verbose=False): """ Write JPEG 2000 file using OpenJPEG 2.x interface. """ if img_array.ndim == 2: # Force the image to be 3D. Just makes things easier later on. numrows, numcols = img_array.shape img_array = img_array.reshape(numrows, numcols, 1) self._populate_comptparms(img_array) with ExitStack() as stack: image = opj2.image_create(self._comptparms, self._colorspace) stack.callback(opj2.image_destroy, image) self._populate_image_struct(image, img_array) codec = opj2.create_compress(self._cparams.codec_fmt) stack.callback(opj2.destroy_codec, codec) if self._verbose or verbose: info_handler = _INFO_CALLBACK else: info_handler = None opj2.set_info_handler(codec, info_handler) opj2.set_warning_handler(codec, _WARNING_CALLBACK) opj2.set_error_handler(codec, _ERROR_CALLBACK) opj2.setup_encoder(codec, self._cparams, image) strm = opj2.stream_create_default_file_stream(self.filename, False) stack.callback(opj2.stream_destroy, strm) opj2.start_compress(codec, image, strm) opj2.encode(codec, strm) opj2.end_compress(codec, strm) # Refresh the metadata. self.parse() def append(self, box): """Append a JP2 box to the file in-place. Parameters ---------- box : Jp2Box Instance of a JP2 box. Only UUID and XML boxes can currently be appended. """ if self._codec_format == opj2.CODEC_J2K: msg = "Only JP2 files can currently have boxes appended to them." raise RuntimeError(msg) box_is_xml = box.box_id == 'xml ' box_is_xmp = ( box.box_id == 'uuid' and box.uuid == UUID('be7acfcb-97a9-42e8-9c71-999491e3afac') ) if not (box_is_xml or box_is_xmp): msg = ("Only XML boxes and XMP UUID boxes can currently be " "appended.") raise RuntimeError(msg) # Check the last box. If the length field is zero, then rewrite # the length field to reflect the true length of the box. with self.path.open('rb') as ifile: offset = self.box[-1].offset ifile.seek(offset) read_buffer = ifile.read(4) box_length, = struct.unpack('>I', read_buffer) if box_length == 0: # Reopen the file in write mode and rewrite the length field. true_box_length = self.path.stat().st_size - offset with self.path.open('r+b') as ofile: ofile.seek(offset) write_buffer = struct.pack('>I', true_box_length) ofile.write(write_buffer) # Can now safely append the box. with self.path.open('ab') as ofile: box.write(ofile) self.parse() def wrap(self, filename, boxes=None): """Create a new JP2/JPX file wrapped in a new set of JP2 boxes. This method is primarily aimed at wrapping a raw codestream in a set of of JP2 boxes (turning it into a JP2 file instead of just a raw codestream), or rewrapping a codestream in a JP2 file in a new "jacket" of JP2 boxes. Parameters ---------- filename : str JP2 file to be created from a raw codestream. boxes : list JP2 box definitions to define the JP2 file format. If not provided, a default ""jacket" is assumed, consisting of JP2 signature, file type, JP2 header, and contiguous codestream boxes. A JPX file rewrapped without the boxes argument results in a JP2 file encompassing the first codestream. Returns ------- Jp2k Newly wrapped Jp2k object. Examples -------- >>> import glymur, tempfile >>> jfile = glymur.data.goodstuff() >>> j2k = glymur.Jp2k(jfile) >>> tfile = tempfile.NamedTemporaryFile(suffix='jp2') >>> jp2 = j2k.wrap(tfile.name) """ if boxes is None: boxes = self._get_default_jp2_boxes() self._validate_jp2_box_sequence(boxes) with open(filename, 'wb') as ofile: for box in boxes: if box.box_id != 'jp2c': box.write(ofile) else: self._write_wrapped_codestream(ofile, box) ofile.flush() jp2 = Jp2k(filename) return jp2 def _write_wrapped_codestream(self, ofile, box): """Write wrapped codestream.""" # Codestreams require a bit more care. # Am I a raw codestream? if len(self.box) == 0: # Yes, just write the codestream box header plus all # of myself out to file. ofile.write(struct.pack('>I', self.length + 8)) ofile.write(b'jp2c') with open(self.filename, 'rb') as ifile: ofile.write(ifile.read()) return # OK, I'm a jp2/jpx file. Need to find out where the raw codestream # actually starts. offset = box.offset if offset == -1: if self.box[1].brand == 'jpx ': msg = ("The codestream box must have its offset and length " "attributes fully specified if the file type brand is " "JPX.") raise InvalidJp2kError(msg) # Find the first codestream in the file. jp2c = [_box for _box in self.box if _box.box_id == 'jp2c'] offset = jp2c[0].offset # Ready to write the codestream. with open(self.filename, 'rb') as ifile: ifile.seek(offset) # Verify that the specified codestream is right. read_buffer = ifile.read(8) L, T = struct.unpack_from('>I4s', read_buffer, 0) if T != b'jp2c': msg = "Unable to locate the specified codestream." raise InvalidJp2kError(msg) if L == 0: # The length of the box is presumed to last until the end of # the file. Compute the effective length of the box. L = self.path.stat().st_size - ifile.tell() + 8 elif L == 1: # The length of the box is in the XL field, a 64-bit value. read_buffer = ifile.read(8) L, = struct.unpack('>Q', read_buffer) ifile.seek(offset) read_buffer = ifile.read(L) ofile.write(read_buffer) def _get_default_jp2_boxes(self): """Create a default set of JP2 boxes.""" # Try to create a reasonable default. boxes = [JPEG2000SignatureBox(), FileTypeBox(), JP2HeaderBox(), ContiguousCodestreamBox()] height = self.codestream.segment[1].ysiz width = self.codestream.segment[1].xsiz num_components = len(self.codestream.segment[1].xrsiz) if num_components < 3: colorspace = core.GREYSCALE else: if len(self.box) == 0: # Best guess is SRGB colorspace = core.SRGB else: # Take whatever the first jp2 header / color specification # says. jp2hs = [box for box in self.box if box.box_id == 'jp2h'] colorspace = jp2hs[0].box[1].colorspace boxes[2].box = [ImageHeaderBox(height=height, width=width, num_components=num_components), ColourSpecificationBox(colorspace=colorspace)] return boxes def __setitem__(self, index, data): """ Slicing protocol. """ if ( isinstance(index, slice) and index.start is None and index.stop is None and index.step is None ): # Case of jp2[:] = data, i.e. write the entire image. # # Should have a slice object where start = stop = step = None self._write(data) elif index is Ellipsis: # Case of jp2[...] = data, i.e. write the entire image. self._write(data) else: msg = "Partial write operations are currently not allowed." raise ValueError(msg) def _remove_ellipsis(self, index, numrows, numcols, numbands): """ resolve the first ellipsis in the index so that it references the image Parameters ---------- index : tuple tuple of index arguments, presumably one of them is the Ellipsis numrows, numcols, numbands : int image dimensions Returns ------- tuple Same as index, except that the first Ellipsis is replaced with a proper slice whose start and stop members are not None """ # Remove the first ellipsis we find. rows = slice(0, numrows) cols = slice(0, numcols) bands = slice(0, numbands) if index[0] is Ellipsis: if len(index) == 2: # jp2k[..., other_slice] newindex = (rows, cols, index[1]) else: # jp2k[..., cols, bands] newindex = (rows, index[1], index[2]) elif index[1] is Ellipsis: if len(index) == 2: # jp2k[rows, ...] newindex = (index[0], cols, bands) else: # jp2k[rows, ..., bands] newindex = (index[0], cols, index[2]) else: # Assume that we don't have 4D imagery, of course. newindex = (index[0], index[1], bands) return newindex def __getitem__(self, pargs): """ Slicing protocol. """ if len(self.shape) == 2: numrows, numcols = self.shape numbands = 1 else: numrows, numcols, numbands = self.shape if isinstance(pargs, int): # Not a very good use of this protocol, but technically legal. # This retrieves a single row. row = pargs area = (row, 0, row + 1, numcols) return self._read(area=area).squeeze() if pargs is Ellipsis: # Case of jp2[...] return self._read() if isinstance(pargs, slice): if ((((pargs.start is None) and (pargs.stop is None) and (pargs.step is None)))): # Case of jp2[:] return self._read() # Corner case of jp2[x] where x is a slice object with non-null # members. Just augment it with an ellipsis and let the code # below handle it. pargs = (pargs, Ellipsis) if isinstance(pargs, tuple) and any(x is Ellipsis for x in pargs): newindex = self._remove_ellipsis(pargs, numrows, numcols, numbands) # Run once again because it is possible that there's another # Ellipsis object in the 2nd or 3rd position. return self.__getitem__(newindex) if isinstance(pargs, tuple) and any(isinstance(x, int) for x in pargs): # Replace the first such integer argument, replace it with a slice. lst = list(pargs) g = filterfalse(lambda x: not isinstance(x[1], int), enumerate(pargs)) idx = next(g)[0] lst[idx] = slice(pargs[idx], pargs[idx] + 1) newindex = tuple(lst) # Invoke array-based slicing again, as there may be additional # integer argument remaining. data = self.__getitem__(newindex) # Reduce dimensionality in the scalar dimension. return np.squeeze(data, axis=idx) # Assuming pargs is a tuple of slices from now on. rows = pargs[0] cols = pargs[1] if len(pargs) == 2: bands = slice(None, None, None) else: bands = pargs[2] rows_step = 1 if rows.step is None else rows.step cols_step = 1 if cols.step is None else cols.step if rows_step != cols_step: msg = "Row and column strides must be the same." raise ValueError(msg) # Ok, reduce layer step is the same in both xy directions, so just take # one of them. step = rows_step # Check if the step size is a power of 2. if np.abs(np.log2(step) - np.round(np.log2(step))) > 1e-6: msg = "Row and column strides must be powers of 2." raise ValueError(msg) rlevel = np.int(np.round(np.log2(step))) area = (0 if rows.start is None else rows.start, 0 if cols.start is None else cols.start, numrows if rows.stop is None else rows.stop, numcols if cols.stop is None else cols.stop ) data = self._read(area=area, rlevel=rlevel) if len(pargs) == 2: return data # Ok, 3 arguments in pargs. return data[:, :, bands] def _read(self, **kwargs): """Read a JPEG 2000 image. Returns ------- ndarray The image data. Raises ------ RuntimeError if the proper version of the OpenJPEG library is not available """ if re.match("0|1.[01234]", version.openjpeg_version): msg = ( f"You must have a version of OpenJPEG at least as high as " f"2.3.0 before you can read JPEG2000 images with glymur. " f"Your version is {version.openjpeg_version}" ) raise RuntimeError(msg) img = self._read_openjp2(**kwargs) return img def read(self, **kwargs): """ """ # Read a JPEG 2000 image. # # Parameters # ---------- # rlevel : int, optional # Factor by which to rlevel output resolution. Use -1 to get the # lowest resolution thumbnail. This is the only keyword option # available to use when the OpenJPEG version is 1.5 or earlier. # layer : int, optional # Number of quality layer to decode. # area : tuple, optional # Specifies decoding image area, # (first_row, first_col, last_row, last_col) # tile : int, optional # Number of tile to decode. # verbose : bool, optional # Print informational messages produced by the OpenJPEG library. # # Returns # ------- # img_array : ndarray # The image data. if 'ignore_pclr_cmap_cdef' in kwargs: self.ignore_pclr_cmap_cdef = kwargs['ignore_pclr_cmap_cdef'] kwargs.pop('ignore_pclr_cmap_cdef') warnings.warn("Use array-style slicing instead.", DeprecationWarning) img = self._read(**kwargs) return img def _subsampling_sanity_check(self): """Check for differing subsample factors. """ dxs = np.array(self.codestream.segment[1].xrsiz) dys = np.array(self.codestream.segment[1].yrsiz) if np.any(dxs - dxs[0]) or np.any(dys - dys[0]): msg = ( f"The read_bands method should be used when the subsampling " f"factors are different." f"\n\n" f"{self.codestream.segment[1]}" ) raise RuntimeError(msg) def _read_openjp2(self, rlevel=0, layer=None, area=None, tile=None, verbose=False): """Read a JPEG 2000 image using libopenjp2. Parameters ---------- layer : int, optional Number of quality layer to decode. rlevel : int, optional Factor by which to rlevel output resolution. Use -1 to get the lowest resolution thumbnail. area : tuple, optional Specifies decoding image area, (first_row, first_col, last_row, last_col) tile : int, optional Number of tile to decode. verbose : bool, optional Print informational messages produced by the OpenJPEG library. Returns ------- ndarray The image data. Raises ------ RuntimeError If the image has differing subsample factors. """ self._subsampling_sanity_check() self._populate_dparams(rlevel, tile=tile, area=area) image = self._read_openjp2_common() return image def _read_openjp2_common(self): """ Read a JPEG 2000 image using libopenjp2. Returns ------- ndarray or lst Either the image as an ndarray or a list of ndarrays, each item corresponding to one band. """ with ExitStack() as stack: filename = self.filename stream = opj2.stream_create_default_file_stream(filename, True) stack.callback(opj2.stream_destroy, stream) codec = opj2.create_decompress(self._codec_format) stack.callback(opj2.destroy_codec, codec) opj2.set_error_handler(codec, _ERROR_CALLBACK) opj2.set_warning_handler(codec, _WARNING_CALLBACK) if self._verbose: opj2.set_info_handler(codec, _INFO_CALLBACK) else: opj2.set_info_handler(codec, None) opj2.setup_decoder(codec, self._dparams) if version.openjpeg_version >= '2.2.0': opj2.codec_set_threads(codec, get_option('lib.num_threads')) raw_image = opj2.read_header(stream, codec) stack.callback(opj2.image_destroy, raw_image) if self._dparams.nb_tile_to_decode: opj2.get_decoded_tile(codec, stream, raw_image, self._dparams.tile_index) else: opj2.set_decode_area(codec, raw_image, self._dparams.DA_x0, self._dparams.DA_y0, self._dparams.DA_x1, self._dparams.DA_y1) opj2.decode(codec, stream, raw_image) opj2.end_decompress(codec, stream) image = self._extract_image(raw_image) return image def _populate_dparams(self, rlevel, tile=None, area=None): """Populate decompression structure with appropriate input parameters. Parameters ---------- rlevel : int Factor by which to rlevel output resolution. area : tuple Specifies decoding image area, (first_row, first_col, last_row, last_col) tile : int Number of tile to decode. """ dparam = opj2.set_default_decoder_parameters() infile = self.filename.encode() nelts = opj2.PATH_LEN - len(infile) infile += b'0' * nelts dparam.infile = infile # Return raw codestream components instead of "interpolating" the # colormap? dparam.flags |= 1 if self.ignore_pclr_cmap_cdef else 0 dparam.decod_format = self._codec_format dparam.cp_layer = self.layer # Must check the specified rlevel against the maximum. if rlevel != 0: # Must check the specified rlevel against the maximum. max_rlevel = self.codestream.segment[2].num_res if rlevel == -1: # -1 is shorthand for the largest rlevel rlevel = max_rlevel elif rlevel < -1 or rlevel > max_rlevel: msg = (f"rlevel must be in the range [-1, {max_rlevel}] " "for this image.") raise ValueError(msg) dparam.cp_reduce = rlevel if area is not None: if area[0] < 0 or area[1] < 0 or area[2] <= 0 or area[3] <= 0: msg = ( f"The upper left corner coordinates must be nonnegative " f"and the lower right corner coordinates must be positive." f" The specified upper left and lower right coordinates " f"are ({area[0]}, {area[1]}) and ({area[2]}, {area[3]})." ) raise ValueError(msg) dparam.DA_y0 = area[0] dparam.DA_x0 = area[1] dparam.DA_y1 = area[2] dparam.DA_x1 = area[3] if tile is not None: dparam.tile_index = tile dparam.nb_tile_to_decode = 1 self._dparams = dparam def read_bands(self, rlevel=0, layer=0, area=None, tile=None, verbose=False, ignore_pclr_cmap_cdef=False): """Read a JPEG 2000 image. The only time you should use this method is when the image has different subsampling factors across components. Otherwise you should use the read method. Parameters ---------- layer : int, optional Number of quality layer to decode. rlevel : int, optional Factor by which to rlevel output resolution. area : tuple, optional Specifies decoding image area, (first_row, first_col, last_row, last_col) tile : int, optional Number of tile to decode. ignore_pclr_cmap_cdef : bool Whether or not to ignore the pclr, cmap, or cdef boxes during any color transformation. Defaults to False. verbose : bool, optional Print informational messages produced by the OpenJPEG library. Returns ------- list List of the individual image components. See also -------- read : read JPEG 2000 image Examples -------- >>> import glymur >>> jfile = glymur.data.nemo() >>> jp = glymur.Jp2k(jfile) >>> components_lst = jp.read_bands(rlevel=1) """ if version.openjpeg_version < '2.3.0': msg = ("You must have at least version 2.3.0 of OpenJPEG " "installed before using this method. Your version of " "OpenJPEG is {version.openjpeg_version}.") raise RuntimeError(msg) self.ignore_pclr_cmap_cdef = ignore_pclr_cmap_cdef self.layer = layer self._populate_dparams(rlevel, tile=tile, area=area) lst = self._read_openjp2_common() return lst def _extract_image(self, raw_image): """ Extract unequally-sized image bands. Parameters ---------- raw_image : reference to openjpeg ImageType instance The image structure initialized with image characteristics. Returns ------- list or ndarray If the JPEG 2000 image has unequally-sized components, they are extracted into a list, otherwise a numpy array. """ ncomps = raw_image.contents.numcomps # Make a pass thru the image, see if any of the band datatypes or # dimensions differ. dtypes, nrows, ncols = [], [], [] for k in range(raw_image.contents.numcomps): component = raw_image.contents.comps[k] dtypes.append(self._component2dtype(component)) nrows.append(component.h) ncols.append(component.w) is_cube = all(r == nrows[0] and c == ncols[0] and d == dtypes[0] for r, c, d in zip(nrows, ncols, dtypes)) if is_cube: image = np.zeros((nrows[0], ncols[0], ncomps), dtypes[0]) else: image = [] for k in range(raw_image.contents.numcomps): component = raw_image.contents.comps[k] self._validate_nonzero_image_size(nrows[k], ncols[k], k) addr = ctypes.addressof(component.data.contents) with warnings.catch_warnings(): warnings.simplefilter("ignore") nelts = nrows[k] * ncols[k] band = np.ctypeslib.as_array( (ctypes.c_int32 * nelts).from_address(addr)) if is_cube: image[:, :, k] = np.reshape(band.astype(dtypes[k]), (nrows[k], ncols[k])) else: image.append(np.reshape(band.astype(dtypes[k]), (nrows[k], ncols[k]))) if is_cube and image.shape[2] == 1: # The third dimension has just a single layer. Make the image # data 2D instead of 3D. image.shape = image.shape[0:2] return image def _component2dtype(self, component): """Determin the appropriate numpy datatype for an OpenJPEG component. Parameters ---------- component : ctypes pointer to ImageCompType (image_comp_t) single image component structure. Returns ------- builtins.type numpy datatype to be used to construct an image array """ if component.prec > 16: msg = f"Unhandled precision: {component.prec} bits." raise ValueError(msg) if component.sgnd: if component.prec <= 8: dtype = np.int8 else: dtype = np.int16 else: if component.prec <= 8: dtype = np.uint8 else: dtype = np.uint16 return dtype def get_codestream(self, header_only=True): """Retrieve codestream. Parameters ---------- header_only : bool, optional If True, only marker segments in the main header are parsed. Supplying False may impose a large performance penalty. Returns ------- Codestream Object describing the codestream syntax. Examples -------- >>> import glymur >>> jfile = glymur.data.nemo() >>> jp2 = glymur.Jp2k(jfile) >>> codestream = jp2.get_codestream() >>> print(codestream.segment[1]) SIZ marker segment @ (3233, 47) Profile: no profile Reference Grid Height, Width: (1456 x 2592) Vertical, Horizontal Reference Grid Offset: (0 x 0) Reference Tile Height, Width: (1456 x 2592) Vertical, Horizontal Reference Tile Offset: (0 x 0) Bitdepth: (8, 8, 8) Signed: (False, False, False) Vertical, Horizontal Subsampling: ((1, 1), (1, 1), (1, 1)) """ with self.path.open('rb') as fptr: if self._codec_format == opj2.CODEC_J2K: codestream = Codestream(fptr, self.length, header_only=header_only) else: box = [x for x in self.box if x.box_id == 'jp2c'] fptr.seek(box[0].offset) read_buffer = fptr.read(8) (box_length, _) = struct.unpack('>I4s', read_buffer) if box_length == 0: # The length of the box is presumed to last until the end # of the file. Compute the effective length of the box. box_length = self.path.stat().st_size - fptr.tell() + 8 elif box_length == 1: # Seek past the XL field. read_buffer = fptr.read(8) box_length, = struct.unpack('>Q', read_buffer) codestream = Codestream(fptr, box_length - 8, header_only=header_only) return codestream def _populate_image_struct(self, image, imgdata): """Populates image struct needed for compression. Parameters ---------- image : ImageType(ctypes.Structure) Corresponds to image_t type in openjp2 headers. img_array : ndarray Image data to be written to file. """ numrows, numcols, num_comps = imgdata.shape for k in range(num_comps): self._validate_nonzero_image_size(numrows, numcols, k) # set image offset and reference grid image.contents.x0 = self._cparams.image_offset_x0 image.contents.y0 = self._cparams.image_offset_y0 image.contents.x1 = ( image.contents.x0 + (numcols - 1) * self._cparams.subsampling_dx + 1 ) image.contents.y1 = ( image.contents.y0 + (numrows - 1) * self._cparams.subsampling_dy + 1 ) # Stage the image data to the openjpeg data structure. for k in range(0, num_comps): if self._cparams.rsiz in (core.OPJ_PROFILE_CINEMA_2K, core.OPJ_PROFILE_CINEMA_4K): image.contents.comps[k].prec = 12 image.contents.comps[k].bpp = 12 layer = np.ascontiguousarray(imgdata[:, :, k], dtype=np.int32) dest = image.contents.comps[k].data src = layer.ctypes.data ctypes.memmove(dest, src, layer.nbytes) return image def _populate_comptparms(self, img_array): """Instantiate and populate comptparms structure. This structure defines the image components. Parameters ---------- img_array : ndarray Image data to be written to file. """ # Only two precisions are possible. if img_array.dtype == np.uint8: comp_prec = 8 else: comp_prec = 16 numrows, numcols, num_comps = img_array.shape comptparms = (opj2.ImageComptParmType * num_comps)() for j in range(num_comps): comptparms[j].dx = self._cparams.subsampling_dx comptparms[j].dy = self._cparams.subsampling_dy comptparms[j].w = numcols comptparms[j].h = numrows comptparms[j].x0 = self._cparams.image_offset_x0 comptparms[j].y0 = self._cparams.image_offset_y0 comptparms[j].prec = comp_prec comptparms[j].bpp = comp_prec comptparms[j].sgnd = 0 self._comptparms = comptparms def _validate_nonzero_image_size(self, nrows, ncols, component_index): """The image cannot have area of zero. """ if nrows == 0 or ncols == 0: # Letting this situation continue would segfault openjpeg. msg = ( f"Component {component_index} has dimensions " f"{nrows} x {ncols}" ) raise InvalidJp2kError(msg) def _validate_jp2_box_sequence(self, boxes): """Run through series of tests for JP2 box legality. This is non-exhaustive. """ JP2_IDS = ['colr', 'cdef', 'cmap', 'jp2c', 'ftyp', 'ihdr', 'jp2h', 'jP ', 'pclr', 'res ', 'resc', 'resd', 'xml ', 'ulst', 'uinf', 'url ', 'uuid'] self._validate_signature_compatibility(boxes) self._validate_jp2h(boxes) self._validate_jp2c(boxes) if boxes[1].brand == 'jpx ': self._validate_jpx_box_sequence(boxes) else: # Validate the JP2 box IDs. count = self._collect_box_count(boxes) for box_id in count.keys(): if box_id not in JP2_IDS: msg = ( f"The presence of a '{box_id}' box requires that the " f"file type brand be set to 'jpx '." ) raise InvalidJp2kError(msg) self._validate_jp2_colr(boxes) def _validate_jp2_colr(self, boxes): """ Validate JP2 requirements on colour specification boxes. """ lst = [box for box in boxes if box.box_id == 'jp2h'] jp2h = lst[0] for colr in [box for box in jp2h.box if box.box_id == 'colr']: if colr.approximation != 0: msg = ("A JP2 colr box cannot have a non-zero approximation " "field.") raise InvalidJp2kError(msg) def _validate_jpx_box_sequence(self, boxes): """Run through series of tests for JPX box legality.""" self._validate_label(boxes) self._validate_jpx_compatibility(boxes, boxes[1].compatibility_list) self._validate_singletons(boxes) self._validate_top_level(boxes) def _validate_signature_compatibility(self, boxes): """Validate the file signature and compatibility status.""" # Check for a bad sequence of boxes. # 1st two boxes must be 'jP ' and 'ftyp' if boxes[0].box_id != 'jP ' or boxes[1].box_id != 'ftyp': msg = ("The first box must be the signature box and the second " "must be the file type box.") raise InvalidJp2kError(msg) # The compatibility list must contain at a minimum 'jp2 '. if 'jp2 ' not in boxes[1].compatibility_list: msg = "The ftyp box must contain 'jp2 ' in the compatibility list." raise InvalidJp2kError(msg) def _validate_jp2c(self, boxes): """Validate the codestream box in relation to other boxes.""" # jp2c must be preceeded by jp2h jp2h_lst = [idx for (idx, box) in enumerate(boxes) if box.box_id == 'jp2h'] jp2h_idx = jp2h_lst[0] jp2c_lst = [idx for (idx, box) in enumerate(boxes) if box.box_id == 'jp2c'] if len(jp2c_lst) == 0: msg = ("A codestream box must be defined in the outermost " "list of boxes.") raise InvalidJp2kError(msg) jp2c_idx = jp2c_lst[0] if jp2h_idx >= jp2c_idx: msg = "The codestream box must be preceeded by a jp2 header box." raise InvalidJp2kError(msg) def _validate_jp2h(self, boxes): """Validate the JP2 Header box.""" self._check_jp2h_child_boxes(boxes, 'top-level') jp2h_lst = [box for box in boxes if box.box_id == 'jp2h'] jp2h = jp2h_lst[0] # 1st jp2 header box cannot be empty. if len(jp2h.box) == 0: msg = "The JP2 header superbox cannot be empty." raise InvalidJp2kError(msg) # 1st jp2 header box must be ihdr if jp2h.box[0].box_id != 'ihdr': msg = ("The first box in the jp2 header box must be the image " "header box.") raise InvalidJp2kError(msg) # colr must be present in jp2 header box. colr_lst = [j for (j, box) in enumerate(jp2h.box) if box.box_id == 'colr'] if len(colr_lst) == 0: msg = "The jp2 header box must contain a color definition box." raise InvalidJp2kError(msg) colr = jp2h.box[colr_lst[0]] self._validate_channel_definition(jp2h, colr) def _validate_channel_definition(self, jp2h, colr): """Validate the channel definition box.""" cdef_lst = [j for (j, box) in enumerate(jp2h.box) if box.box_id == 'cdef'] if len(cdef_lst) > 1: msg = ("Only one channel definition box is allowed in the " "JP2 header.") raise InvalidJp2kError(msg) elif len(cdef_lst) == 1: cdef = jp2h.box[cdef_lst[0]] if colr.colorspace == core.SRGB: if any([ chan + 1 not in cdef.association or cdef.channel_type[chan] != 0 for chan in [0, 1, 2] ]): msg = ("All color channels must be defined in the " "channel definition box.") raise InvalidJp2kError(msg) elif colr.colorspace == core.GREYSCALE: if 0 not in cdef.channel_type: msg = ("All color channels must be defined in the " "channel definition box.") raise InvalidJp2kError(msg) def _check_jp2h_child_boxes(self, boxes, parent_box_name): """Certain boxes can only reside in the JP2 header.""" JP2H_CHILDREN = set(['bpcc', 'cdef', 'cmap', 'ihdr', 'pclr']) box_ids = set([box.box_id for box in boxes]) intersection = box_ids.intersection(JP2H_CHILDREN) if len(intersection) > 0 and parent_box_name not in ['jp2h', 'jpch']: msg = ( f"A {list(intersection)[0]} box can only be nested in a JP2 " f"header box." ) raise InvalidJp2kError(msg) # Recursively check any contained superboxes. for box in boxes: if hasattr(box, 'box'): self._check_jp2h_child_boxes(box.box, box.box_id) def _collect_box_count(self, boxes): """Count the occurences of each box type.""" count = Counter([box.box_id for box in boxes]) # Add the counts in the superboxes. for box in boxes: if hasattr(box, 'box'): count.update(self._collect_box_count(box.box)) return count def _check_superbox_for_top_levels(self, boxes): """Several boxes can only occur at the top level.""" # We are only looking at the boxes contained in a superbox, so if any # of the blacklisted boxes show up here, it's an error. TOP_LEVEL_ONLY_BOXES = set(['dtbl']) box_ids = set([box.box_id for box in boxes]) intersection = box_ids.intersection(TOP_LEVEL_ONLY_BOXES) if len(intersection) > 0: msg = ( f"A {list(intersection)[0]} box cannot be nested in a " f"superbox." ) raise InvalidJp2kError(msg) # Recursively check any contained superboxes. for box in boxes: if hasattr(box, 'box'): self._check_superbox_for_top_levels(box.box) def _validate_top_level(self, boxes): """Several boxes can only occur at the top level.""" # Add the counts in the superboxes. for box in boxes: if hasattr(box, 'box'): self._check_superbox_for_top_levels(box.box) count = self._collect_box_count(boxes) # If there is one data reference box, then there must also be one ftbl. if 'dtbl' in count and 'ftbl' not in count: msg = ('The presence of a data reference box requires the ' 'presence of a fragment table box as well.') raise InvalidJp2kError(msg) def _validate_singletons(self, boxes): """Several boxes can only occur once.""" count = self._collect_box_count(boxes) # Which boxes occur more than once? multiples = [box_id for box_id, bcount in count.items() if bcount > 1] if 'dtbl' in multiples: raise InvalidJp2kError('There can only be one dtbl box in a file.') def _validate_jpx_compatibility(self, boxes, compatibility_list): """ If there is a JPX box then the compatibility list must also contain 'jpx '. """ JPX_IDS = ['asoc', 'nlst'] jpx_cl = set(compatibility_list) for box in boxes: if box.box_id in JPX_IDS: if len(set(['jpx ', 'jpxb']).intersection(jpx_cl)) == 0: msg = ("A JPX box requires that either 'jpx ' or 'jpxb' " "be present in the ftype compatibility list.") raise InvalidJp2kError(msg) if hasattr(box, 'box') != 0: # Same set of checks on any child boxes. self._validate_jpx_compatibility(box.box, compatibility_list) def _validate_label(self, boxes): """ Label boxes can only be inside association, codestream headers, or compositing layer header boxes. """ for box in boxes: if box.box_id != 'asoc': if hasattr(box, 'box'): for boxi in box.box: if boxi.box_id == 'lbl ': msg = (f"A label box cannot be nested inside a " f"{box.box_id} box.") raise InvalidJp2kError(msg) # Same set of checks on any child boxes. self._validate_label(box.box) # Setup the default callback handlers. See the callback functions subsection # in the ctypes section of the Python documentation for a solid explanation of # what's going on here. _CMPFUNC = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_char_p, ctypes.c_void_p) def _default_error_handler(msg, _): """Default error handler callback for libopenjp2.""" msg = "OpenJPEG library error: {0}".format(msg.decode('utf-8').rstrip()) opj2.set_error_message(msg) def _default_info_handler(msg, _): """Default info handler callback.""" print("[INFO] {0}".format(msg.decode('utf-8').rstrip())) def _default_warning_handler(library_msg, _): """Default warning handler callback.""" library_msg = library_msg.decode('utf-8').rstrip() msg = "OpenJPEG library warning: {0}".format(library_msg) warnings.warn(msg, UserWarning) _ERROR_CALLBACK = _CMPFUNC(_default_error_handler) _INFO_CALLBACK = _CMPFUNC(_default_info_handler) _WARNING_CALLBACK = _CMPFUNC(_default_warning_handler) glymur-0.9.1/glymur/lib/000077500000000000000000000000001360775562100151415ustar00rootroot00000000000000glymur-0.9.1/glymur/lib/__init__.py000066400000000000000000000001741360775562100172540ustar00rootroot00000000000000"""This package organizes individual libraries employed by glymur.""" from . import openjp2 as openjp2 __all__ = [openjp2] glymur-0.9.1/glymur/lib/openjp2.py000066400000000000000000001244031360775562100170740ustar00rootroot00000000000000""" Wraps individual functions in openjp2 library. """ # Standard library imports import ctypes import queue import textwrap # Local imports from ..config import glymur_config OPENJP2 = glymur_config() class OpenJPEGLibraryError(IOError): """ Issue when the OpenJPEG library signals an error. """ pass def version(): """Wrapper for opj_version library routine.""" try: OPENJP2.opj_version.restype = ctypes.c_char_p except AttributeError: return "0.0.0" v = OPENJP2.opj_version() return v.decode('utf-8') if OPENJP2 is not None: _MAJOR, _MINOR, _PATCH = [int(x) for x in version().split('.')] else: _MAJOR, _MINOR, _PATCH = 0, 0, 0 ERROR_MSG_LST = queue.Queue() # Map certain atomic OpenJPEG datatypes to the ctypes equivalents. BOOL_TYPE = ctypes.c_int32 CODEC_TYPE = ctypes.c_void_p PROG_ORDER_TYPE = ctypes.c_int32 CINEMA_MODE_TYPE = ctypes.c_int32 RSIZ_CAPABILITIES_TYPE = ctypes.c_int32 STREAM_TYPE_P = ctypes.c_void_p PATH_LEN = 4096 J2K_MAXRLVLS = 33 J2K_MAXBANDS = (3 * J2K_MAXRLVLS - 2) JPWL_MAX_NO_TILESPECS = 16 TRUE = 1 FALSE = 0 # supported color spaces CLRSPC_UNKNOWN = -1 CLRSPC_UNSPECIFIED = 0 CLRSPC_SRGB = 1 CLRSPC_GRAY = 2 CLRSPC_YCC = 3 CLRSPC_EYCC = 4 COLOR_SPACE_TYPE = ctypes.c_int # supported codec CODEC_FORMAT_TYPE = ctypes.c_int CODEC_UNKNOWN = -1 CODEC_J2K = 0 CODEC_JPT = 1 CODEC_JP2 = 2 class PocType(ctypes.Structure): """Progression order changes. Corresponds to poc_t type in openjp2 headers. """ # Resolution num start, Component num start, given by POC _fields_ = [ ("resno0", ctypes.c_uint32), # noqa ("compno0", ctypes.c_uint32), # noqa # Layer num end,Resolution num end, Component num end, given by POC ("layno1", ctypes.c_uint32), # noqa ("resno1", ctypes.c_uint32), # noqa ("compno1", ctypes.c_uint32), # noqa # Layer num start,Precinct num start, Precinct num end ("layno0", ctypes.c_uint32), # noqa ("precno0", ctypes.c_uint32), # noqa ("precno1", ctypes.c_uint32), # noqa # Progression order enum ("prg1", PROG_ORDER_TYPE), # noqa ("prg", PROG_ORDER_TYPE), # noqa # Progression order string ("progorder", ctypes.c_char * 5), # noqa # Tile number ("tile", ctypes.c_uint32), # noqa # Start and end values for Tile width and height* ("tx0", ctypes.c_int32), # noqa ("tx1", ctypes.c_int32), # noqa ("ty0", ctypes.c_int32), # noqa ("ty1", ctypes.c_int32), # noqa # Start value, initialised in pi_initialise_encode ("layS", ctypes.c_uint32), # noqa ("resS", ctypes.c_uint32), # noqa ("compS", ctypes.c_uint32), # noqa ("prcS", ctypes.c_uint32), # noqa # End value, initialised in pi_initialise_encode ("layE", ctypes.c_uint32), # noqa ("resE", ctypes.c_uint32), # noqa ("compE", ctypes.c_uint32), # noqa ("prcE", ctypes.c_uint32), # noqa # Start and end values of Tile width and height, initialised in # pi_initialise_encode ("txS", ctypes.c_uint32), # noqa ("txE", ctypes.c_uint32), # noqa ("tyS", ctypes.c_uint32), # noqa ("tyE", ctypes.c_uint32), # noqa ("dx", ctypes.c_uint32), # noqa ("dy", ctypes.c_uint32), # noqa # Temporary values for Tile parts, initialised in pi_create_encode ("lay_t", ctypes.c_uint32), # noqa ("res_t", ctypes.c_uint32), # noqa ("comp_t", ctypes.c_uint32), # noqa ("prec_t", ctypes.c_uint32), # noqa ("tx0_t", ctypes.c_uint32), # noqa ("ty0_t", ctypes.c_uint32), # noqa ] def __str__(self): msg = "{0}:\n".format(self.__class__) for field_name, _ in self._fields_: msg += " {0}: {1}\n".format( field_name, getattr(self, field_name)) return msg class DecompressionParametersType(ctypes.Structure): """Decompression parameters. Corresponds to dparameters_t type in openjp2 headers. """ _fields_ = [ # Set the number of highest resolutio levels to be discarded. The # image resolution is effectively divided by 2 to the power of # discarded levels. The reduce factor is limited by the smallest # total number of decomposition levels among tiles. If not equal to # zero, then the original dimension is divided by 2^(reduce). If # equal to zero or not used, the image is decoded to the full # resolution. ("cp_reduce", ctypes.c_uint32), # noqa # Set the maximum number of quality layers to decode. If there are # fewer quality layers than the specified number, all the quality # layers are decoded. # # If != 0, then only the first cp_layer layers are decoded. # If == 0 or not used, all the quality layers are decoded. ("cp_layer", ctypes.c_uint32), # noqa # input file name ("infile", ctypes.c_char * PATH_LEN), # noqa # output file name ("outfile", ctypes.c_char * PATH_LEN), # noqa # input file format 0: PGX, 1: PxM, 2: BMP 3:TIF # output file format 0: J2K, 1: JP2, 2: JPT ("decod_format", ctypes.c_int), # noqa ("cod_format", ctypes.c_int), # noqa # Decoding area left and right boundary. # Decoding area upper and lower boundary. ("DA_x0", ctypes.c_uint32), # noqa ("DA_x1", ctypes.c_uint32), # noqa ("DA_y0", ctypes.c_uint32), # noqa ("DA_y1", ctypes.c_uint32), # noqa # verbose mode ("m_verbose", BOOL_TYPE), # noqa # tile number of the decoded tile ("tile_index", ctypes.c_uint32), # noqa # number of tiles to decode ("nb_tile_to_decode", ctypes.c_uint32), # noqa # activates the JPWL correction capabilities ("jpwl_correct", BOOL_TYPE), # noqa # activates the JPWL correction capabilities ("jpwl_exp_comps", ctypes.c_int32), # noqa # maximum number of tiles ("jpwl_max_tiles", ctypes.c_int32), # noqa # maximum number of tiles ("flags", ctypes.c_uint32), # noqa ] def __str__(self): msg = "{0}:\n".format(self.__class__) for field_name, _ in self._fields_: msg += " {0}: {1}\n".format( field_name, getattr(self, field_name)) return msg class CompressionParametersType(ctypes.Structure): """Compression parameters. Corresponds to cparameters_t type in openjp2 headers. """ _fields_ = [ # size of tile: # tile_size_on = false (not in argument) or # = true (in argument) ("tile_size_on", BOOL_TYPE), # noqa # XTOsiz, YTOsiz ("cp_tx0", ctypes.c_int), # noqa ("cp_ty0", ctypes.c_int), # noqa # XTsiz, YTsiz ("cp_tdx", ctypes.c_int), # noqa ("cp_tdy", ctypes.c_int), # noqa # allocation by rate/distortion ("cp_disto_alloc", ctypes.c_int), # noqa # allocation by fixed layer ("cp_fixed_alloc", ctypes.c_int), # noqa # add fixed_quality ("cp_fixed_quality", ctypes.c_int), # noqa # fixed layer ("cp_matrice", ctypes.c_void_p), # noqa # comment for coding ("cp_comment", ctypes.c_char_p), # noqa # csty : coding style ("csty", ctypes.c_int), # noqa # progression order (default OPJ_LRCP) ("prog_order", ctypes.c_int), # noqa # progression order changes ("poc", PocType * 32), # noqa # number of progression order changes (POC), default to 0 ("numpocs", ctypes.c_uint), # noqa # number of layers ("tcp_numlayers", ctypes.c_int), # noqa # rates of layers ("tcp_rates", ctypes.c_float * 100), # noqa # different psnr for successive layers ("tcp_distoratio", ctypes.c_float * 100), # noqa # number of resolutions ("numresolution", ctypes.c_int), # noqa # initial code block width, default to 64 ("cblockw_init", ctypes.c_int), # noqa # initial code block height, default to 64 ("cblockh_init", ctypes.c_int), # noqa # mode switch (cblk_style) ("mode", ctypes.c_int), # noqa # 1 : use the irreversible DWT 9-7 # 0 : use lossless compression (default) ("irreversible", ctypes.c_int), # noqa # region of interest: affected component in [0..3], -1 means no ROI ("roi_compno", ctypes.c_int), # noqa # region of interest: upshift value ("roi_shift", ctypes.c_int), # noqa # number of precinct size specifications ("res_spec", ctypes.c_int), # noqa # initial precinct width ("prcw_init", ctypes.c_int * J2K_MAXRLVLS), # noqa # initial precinct height ("prch_init", ctypes.c_int * J2K_MAXRLVLS), # noqa # input file name ("infile", ctypes.c_char * PATH_LEN), # noqa # output file name ("outfile", ctypes.c_char * PATH_LEN), # noqa # DEPRECATED. ("index_on", ctypes.c_int), # noqa # DEPRECATED. ("index", ctypes.c_char * PATH_LEN), # noqa # subimage encoding: origin image offset in x direction # subimage encoding: origin image offset in y direction ("image_offset_x0", ctypes.c_int), # noqa ("image_offset_y0", ctypes.c_int), # noqa # subsampling value for dx # subsampling value for dy ("subsampling_dx", ctypes.c_int), # noqa ("subsampling_dy", ctypes.c_int), # noqa # input file format 0: PGX, 1: PxM, 2: BMP 3:TIF # output file format 0: J2K, 1: JP2, 2: JPT ("decod_format", ctypes.c_int), # noqa ("cod_format", ctypes.c_int), # noqa # JPWL encoding parameters # enables writing of EPC in MH, thus activating JPWL ("jpwl_epc_on", BOOL_TYPE), # noqa # error protection method for MH (0,1,16,32,37-128) ("jpwl_hprot_mh", ctypes.c_int), # noqa # tile number of header protection specification (>=0) ("jpwl_hprot_tph_tileno", ctypes.c_int * JPWL_MAX_NO_TILESPECS), # noqa # error protection methods for TPHs (0,1,16,32,37-128) ("jpwl_hprot_tph", ctypes.c_int * JPWL_MAX_NO_TILESPECS), # noqa # tile number of packet protection specification (>=0) ("jpwl_pprot_tileno", ctypes.c_int * JPWL_MAX_NO_TILESPECS), # noqa # packet number of packet protection specification (>=0) ("jpwl_pprot_packno", ctypes.c_int * JPWL_MAX_NO_TILESPECS), # noqa # error protection methods for packets (0,1,16,32,37-128) ("jpwl_pprot", ctypes.c_int * JPWL_MAX_NO_TILESPECS), # noqa # enables writing of ESD, (0=no/1/2 bytes) ("jpwl_sens_size", ctypes.c_int), # noqa # sensitivity addressing size (0=auto/2/4 bytes) ("jpwl_sens_addr", ctypes.c_int), # noqa # sensitivity range (0-3) ("jpwl_sens_range", ctypes.c_int), # noqa # sensitivity method for MH (-1=no,0-7) ("jpwl_sens_mh", ctypes.c_int), # noqa # tile number of sensitivity specification (>=0) ("jpwl_sens_tph_tileno", ctypes.c_int * JPWL_MAX_NO_TILESPECS), # noqa # sensitivity methods for TPHs (-1=no,0-7) ("jpwl_sens_tph", ctypes.c_int * JPWL_MAX_NO_TILESPECS), # noqa # Digital Cinema compliance 0-not compliant, 1-compliant ("cp_cinema", CINEMA_MODE_TYPE), # noqa # Maximum rate for each component. # If == 0, component size limitation is not considered ("max_comp_size", ctypes.c_int), # noqa # Profile name ("cp_rsiz", RSIZ_CAPABILITIES_TYPE), # noqa # Tile part generation ("tp_on", ctypes.c_uint8), # noqa # Flag for Tile part generation ("tp_flag", ctypes.c_uint8), # noqa # MCT (multiple component transform) ("tcp_mct", ctypes.c_uint8), # noqa # Enable JPIP indexing ("jpip_on", BOOL_TYPE), # noqa # Naive implementation of MCT restricted to a single reversible array # based encoding without offset concerning all the components. ("mct_data", ctypes.c_void_p), # noqa ] if _MAJOR >= 2 and _MINOR >= 1: # Maximum size (in bytes) for the whole codestream. # If == 0, codestream size limitation is not considered. # If it does not comply with tcp_rates, max_cs_size prevails and a # warning is issued. _fields_.append(("max_cs_size", ctypes.c_int32)) # To be used to combine OPJ_PROFILE_*, OPJ_EXTENSION_* and (sub)levels # values. _fields_.append(("rsiz", ctypes.c_uint16)) def __str__(self): msg = "{0}:\n".format(self.__class__) for field_name, _ in self._fields_: if field_name == 'poc': msg += " numpocs: {0}\n".format(self.numpocs) elif field_name in ['tcp_rates', 'tcp_distoratio']: lst = [] arr = getattr(self, field_name) lst = [arr[j] for j in range(self.tcp_numlayers)] msg += " {0}: {1}\n".format(field_name, lst) elif field_name in ['prcw_init', 'prch_init']: pass elif field_name == 'res_spec': prcw_init = [self.prcw_init[j] for j in range(self.res_spec)] prch_init = [self.prch_init[j] for j in range(self.res_spec)] msg += " res_spec: {0}\n".format(self.res_spec) msg += " prch_init: {0}\n".format(prch_init) msg += " prcw_init: {0}\n".format(prcw_init) elif field_name in [ 'jpwl_hprot_tph_tileno', 'jpwl_hprot_tph', 'jpwl_pprot_tileno', 'jpwl_pprot_packno', 'jpwl_pprot', 'jpwl_sens_tph_tileno', 'jpwl_sens_tph']: arr = getattr(self, field_name) lst = [arr[j] for j in range(JPWL_MAX_NO_TILESPECS)] msg += " {0}: {1}\n".format(field_name, lst) else: msg += " {0}: {1}\n".format( field_name, getattr(self, field_name)) return msg class ImageCompType(ctypes.Structure): """Defines a single image component. Corresponds to image_comp_t type in openjp2 headers. """ _fields_ = [ # XRsiz, YRsiz: horizontal, vertical separation of ith component with # respect to the reference grid ("dx", ctypes.c_uint32), # noqa ("dy", ctypes.c_uint32), # noqa # data width and height ("w", ctypes.c_uint32), # noqa ("h", ctypes.c_uint32), # noqa # x, y component offset compared to the whole image ("x0", ctypes.c_uint32), # noqa ("y0", ctypes.c_uint32), # noqa # component depth in bits ("prec", ctypes.c_uint32), # noqa # component depth in bits ("bpp", ctypes.c_uint32), # noqa # signed (1) or unsigned (0) ("sgnd", ctypes.c_uint32), # noqa # number of decoded resolution ("resno_decoded", ctypes.c_uint32), # noqa # number of division by 2 of the out image component as compared to the # original size of the image ("factor", ctypes.c_uint32), # noqa # image component data ("data", ctypes.POINTER(ctypes.c_int32)), # noqa ] if _MAJOR >= 2 and _MINOR >= 1: _fields_.append(("alpha", ctypes.c_uint16)) def __str__(self): msg = "{0}:\n".format(self.__class__) for field_name, _ in self._fields_: msg += " {0}: {1}\n".format( field_name, getattr(self, field_name)) return msg class ImageType(ctypes.Structure): """Defines image data and characteristics. Corresponds to image_t type in openjp2 headers. """ _fields_ = [ # XOsiz, YOsiz: horizontal and vertical offset from the origin of the # reference grid to the left side of the image area ("x0", ctypes.c_uint32), # noqa ("y0", ctypes.c_uint32), # noqa # Xsiz, Ysiz: width and height of the reference grid. ("x1", ctypes.c_uint32), # noqa ("y1", ctypes.c_uint32), # noqa # number of components in the image ("numcomps", ctypes.c_uint32), # noqa # color space: should be sRGB, greyscale, or YUV ("color_space", COLOR_SPACE_TYPE), # noqa # image components ("comps", ctypes.POINTER(ImageCompType)), # noqa # restricted ICC profile buffer ("icc_profile_buf", ctypes.POINTER(ctypes.c_uint8)), # restricted ICC profile buffer length ("icc_profile_len", ctypes.c_uint32), ] def __str__(self): msg = "{0}:\n".format(self.__class__) for field_name, _ in self._fields_: if field_name == "numcomps": msg += " numcomps: {0}\n".format(self.numcomps) for j in range(self.numcomps): # pragma: no cover msg += " comps[#{0}]:\n".format(j) msg += textwrap.indent(str(self.comps[j]), ' ' * 12) elif field_name == "comps": # handled above pass else: msg += " {0}: {1}\n".format( field_name, getattr(self, field_name)) return msg class ImageComptParmType(ctypes.Structure): """Component parameters structure used by image_create function. Corresponds to image_comptparm_t type in openjp2 headers. """ _fields_ = [ # XRsiz, YRsiz: horizontal, vertical separation of a sample of ith # component with respect to the reference grid ("dx", ctypes.c_uint32), # noqa ("dy", ctypes.c_uint32), # noqa # data width, height ("w", ctypes.c_uint32), # noqa ("h", ctypes.c_uint32), # noqa # x, y component offset compared to the whole image ("x0", ctypes.c_uint32), # noqa ("y0", ctypes.c_uint32), # noqa # precision ("prec", ctypes.c_uint32), # image depth in bits ("bpp", ctypes.c_uint32), # noqa # signed (1) / unsigned (0) ("sgnd", ctypes.c_uint32), ] def __str__(self): msg = "{0}:\n".format(self.__class__) for field_name, _ in self._fields_: msg += " {0}: {1}\n".format( field_name, getattr(self, field_name)) return msg def check_error(status): """Set a generic function as the restype attribute of all OpenJPEG functions that return a BOOL_TYPE value. This way we do not have to check for error status in each wrapping function and an exception will always be appropriately raised. """ if status != 1: lst = [] while ERROR_MSG_LST.qsize() > 0: lst.append(ERROR_MSG_LST.get()) msg = '\n'.join(lst) raise OpenJPEGLibraryError(msg) def create_compress(codec_format): """Creates a J2K/JP2 compress structure. Wraps the openjp2 library function opj_create_compress. Parameters ---------- codec_format : int Specifies codec to select. Should be one of CODEC_J2K or CODEC_JP2. Returns ------- codec : Reference to CODEC_TYPE instance. """ OPENJP2.opj_create_compress.restype = CODEC_TYPE OPENJP2.opj_create_compress.argtypes = [CODEC_FORMAT_TYPE] codec = OPENJP2.opj_create_compress(codec_format) return codec def codec_set_threads(codec, num_threads): """ Allocates worker threads for the compressor/decompressor. This function Wraps the openjp2 library function opj_codec_set_threads. Parameters ---------- codec Decompressor handler num_threads : int Number of threads. Raises ------ RuntimeError If the OpenJPEG library routine opj_decode fails. """ OPENJP2.opj_codec_set_threads.argtypes = [CODEC_TYPE, ctypes.c_int32] OPENJP2.opj_codec_set_threads.restype = check_error OPENJP2.opj_codec_set_threads(codec, num_threads) def decode(codec, stream, image): """Reads an entire image. Wraps the openjp2 library function opj_decode. Parameters ---------- codec : CODEC_TYPE The JPEG2000 codec stream : STREAM_TYPE_P The stream to decode. image : ImageType Output image structure. Raises ------ RuntimeError If the OpenJPEG library routine opj_decode fails. """ OPENJP2.opj_decode.argtypes = [CODEC_TYPE, STREAM_TYPE_P, ctypes.POINTER(ImageType)] OPENJP2.opj_decode.restype = check_error OPENJP2.opj_decode(codec, stream, image) def decode_tile_data(codec, tidx, data, data_size, stream): """Reads tile data. Wraps the openjp2 library function opj_decode_tile_data. Parameters ---------- codec : CODEC_TYPE The JPEG2000 codec tile_index : int The index of the tile being decoded data : array Holds a memory block into which data will be decoded. data_size : int The size of data in bytes stream : STREAM_TYPE_P The stream to decode. Raises ------ RuntimeError If the OpenJPEG library routine opj_decode fails. """ OPENJP2.opj_decode_tile_data.argtypes = [CODEC_TYPE, ctypes.c_uint32, ctypes.POINTER(ctypes.c_uint8), ctypes.c_uint32, STREAM_TYPE_P] OPENJP2.opj_decode_tile_data.restype = check_error datap = data.ctypes.data_as(ctypes.POINTER(ctypes.c_uint8)) OPENJP2.opj_decode_tile_data(codec, ctypes.c_uint32(tidx), datap, ctypes.c_uint32(data_size), stream) def create_decompress(codec_format): """Creates a J2K/JP2 decompress structure. Wraps the openjp2 library function opj_create_decompress. Parameters ---------- codec_format : int Specifies codec to select. Should be one of CODEC_J2K or CODEC_JP2. Returns ------- codec : Reference to CODEC_TYPE instance. """ OPENJP2.opj_create_decompress.argtypes = [CODEC_FORMAT_TYPE] OPENJP2.opj_create_decompress.restype = CODEC_TYPE codec = OPENJP2.opj_create_decompress(codec_format) return codec def destroy_codec(codec): """Destroy a decompressor handle. Wraps the openjp2 library function opj_destroy_codec. Parameters ---------- codec : CODEC_TYPE Decompressor handle to destroy. """ OPENJP2.opj_destroy_codec.argtypes = [CODEC_TYPE] OPENJP2.opj_destroy_codec.restype = ctypes.c_void_p OPENJP2.opj_destroy_codec(codec) def encode(codec, stream): """Wraps openjp2 library function opj_encode. Encode an image into a JPEG 2000 codestream. Parameters ---------- codec : CODEC_TYPE The jpeg2000 codec. stream : STREAM_TYPE_P The stream to which data is written. Raises ------ RuntimeError If the OpenJPEG library routine opj_encode fails. """ OPENJP2.opj_encode.argtypes = [CODEC_TYPE, STREAM_TYPE_P] OPENJP2.opj_encode.restype = check_error OPENJP2.opj_encode(codec, stream) def get_decoded_tile(codec, stream, imagep, tile_index): """get the decoded tile from the codec Wraps the openjp2 library function opj_get_decoded_tile. Parameters ---------- codec : CODEC_TYPE The jpeg2000 codec. stream : STREAM_TYPE_P The input stream. image : ImageType Output image structure. tiler_index : int Index of the tile which will be decoded. Raises ------ RuntimeError If the OpenJPEG library routine opj_get_decoded_tile fails. """ OPENJP2.opj_get_decoded_tile.argtypes = [CODEC_TYPE, STREAM_TYPE_P, ctypes.POINTER(ImageType), ctypes.c_uint32] OPENJP2.opj_get_decoded_tile.restype = check_error OPENJP2.opj_get_decoded_tile(codec, stream, imagep, tile_index) def end_compress(codec, stream): """End of compressing the current image. Wraps the openjp2 library function opj_end_compress. Parameters ---------- codec : CODEC_TYPE Compressor handle. stream : STREAM_TYPE_P Output stream buffer. Raises ------ RuntimeError If the OpenJPEG library routine opj_end_compress fails. """ OPENJP2.opj_end_compress.argtypes = [CODEC_TYPE, STREAM_TYPE_P] OPENJP2.opj_end_compress.restype = check_error OPENJP2.opj_end_compress(codec, stream) def end_decompress(codec, stream): """End of decompressing the current image. Wraps the openjp2 library function opj_end_decompress. Parameters ---------- codec : CODEC_TYPE Compressor handle. stream : STREAM_TYPE_P Output stream buffer. Raises ------ RuntimeError If the OpenJPEG library routine opj_end_decompress fails. """ OPENJP2.opj_end_decompress.argtypes = [CODEC_TYPE, STREAM_TYPE_P] OPENJP2.opj_end_decompress.restype = check_error OPENJP2.opj_end_decompress(codec, stream) def get_num_cpus(): """ Parameters ---------- None Returns ------- Return the number of virtual CPUs. """ OPENJP2.opj_get_num_cpus.restype = ctypes.c_int32 return OPENJP2.opj_get_num_cpus() def has_thread_support(): """ Is the library configured with thread support? Returns ------- True if the library is configured with thread support. """ OPENJP2.opj_has_thread_support.restype = BOOL_TYPE ret = OPENJP2.opj_has_thread_support() return True if ret else False def image_destroy(image): """Deallocate any resources associated with an image. Wraps the openjp2 library function opj_image_destroy. Parameters ---------- image : ImageType pointer Image resource to be disposed. """ OPENJP2.opj_image_destroy.argtypes = [ctypes.POINTER(ImageType)] OPENJP2.opj_image_destroy.restype = ctypes.c_void_p OPENJP2.opj_image_destroy(image) def image_create(comptparms, clrspc): """Creates a new image structure. Wraps the openjp2 library function opj_image_create. Parameters ---------- cmptparms : comptparms_t The component parameters. clrspc : int Specifies the color space. Returns ------- image : ImageType Reference to ImageType instance. """ OPENJP2.opj_image_create.argtypes = [ctypes.c_uint32, ctypes.POINTER(ImageComptParmType), COLOR_SPACE_TYPE] OPENJP2.opj_image_create.restype = ctypes.POINTER(ImageType) image = OPENJP2.opj_image_create(len(comptparms), comptparms, clrspc) return image def image_tile_create(comptparms, clrspc): """Creates a new image structure. Wraps the openjp2 library function opj_image_tile_create. Parameters ---------- cmptparms : comptparms_t The component parameters. clrspc : int Specifies the color space. Returns ------- image : ImageType Reference to ImageType instance. """ ARGTYPES = [ctypes.c_uint32, ctypes.POINTER(ImageComptParmType), COLOR_SPACE_TYPE] OPENJP2.opj_image_tile_create.argtypes = ARGTYPES OPENJP2.opj_image_tile_create.restype = ctypes.POINTER(ImageType) image = OPENJP2.opj_image_tile_create(len(comptparms), comptparms, clrspc) return image def read_header(stream, codec): """Decodes an image header. Wraps the openjp2 library function opj_read_header. Parameters ---------- stream: STREAM_TYPE_P The JPEG2000 stream. codec: codec_t The JPEG2000 codec to read. Returns ------- imagep : reference to ImageType instance The image structure initialized with image characteristics. Raises ------ RuntimeError If the OpenJPEG library routine opj_read_header fails. """ ARGTYPES = [STREAM_TYPE_P, CODEC_TYPE, ctypes.POINTER(ctypes.POINTER(ImageType))] OPENJP2.opj_read_header.argtypes = ARGTYPES OPENJP2.opj_read_header.restype = check_error imagep = ctypes.POINTER(ImageType)() OPENJP2.opj_read_header(stream, codec, ctypes.byref(imagep)) return imagep def read_tile_header(codec, stream): """Reads a tile header. Wraps the openjp2 library function opj_read_tile_header. Parameters ---------- codec : codec_t The JPEG2000 codec to read. stream : STREAM_TYPE_P The JPEG2000 stream. Returns ------- tile_index : int index of the tile being decoded data_size : int number of bytes for the decoded area x0, y0 : int upper left-most coordinate of tile x1, y1 : int lower right-most coordinate of tile ncomps : int number of components in the tile go_on : bool indicates that decoding should continue Raises ------ RuntimeError If the OpenJPEG library routine opj_read_tile_header fails. """ ARGTYPES = [CODEC_TYPE, STREAM_TYPE_P, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(ctypes.c_int32), ctypes.POINTER(ctypes.c_int32), ctypes.POINTER(ctypes.c_int32), ctypes.POINTER(ctypes.c_int32), ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(BOOL_TYPE)] OPENJP2.opj_read_tile_header.argtypes = ARGTYPES OPENJP2.opj_read_tile_header.restype = check_error tile_index = ctypes.c_uint32() data_size = ctypes.c_uint32() col0 = ctypes.c_int32() row0 = ctypes.c_int32() col1 = ctypes.c_int32() row1 = ctypes.c_int32() ncomps = ctypes.c_uint32() go_on = BOOL_TYPE() OPENJP2.opj_read_tile_header(codec, stream, ctypes.byref(tile_index), ctypes.byref(data_size), ctypes.byref(col0), ctypes.byref(row0), ctypes.byref(col1), ctypes.byref(row1), ctypes.byref(ncomps), ctypes.byref(go_on)) go_on = bool(go_on.value) return (tile_index.value, data_size.value, col0.value, row0.value, col1.value, row1.value, ncomps.value, go_on) def set_decode_area(codec, image, start_x=0, start_y=0, end_x=0, end_y=0): """Wraps openjp2 library function opj_set_decode area. Sets the given area to be decoded. This function should be called right after read_header and before any tile header reading. Parameters ---------- codec : CODEC_TYPE Codec initialized by create_decompress function. image : ImageType pointer The decoded image previously set by read_header. start_x, start_y : optional, int The left and upper position of the rectangle to decode. end_x, end_y : optional, int The right and lower position of the rectangle to decode. Raises ------ RuntimeError If the OpenJPEG library routine opj_set_decode_area fails. """ OPENJP2.opj_set_decode_area.argtypes = [CODEC_TYPE, ctypes.POINTER(ImageType), ctypes.c_int32, ctypes.c_int32, ctypes.c_int32, ctypes.c_int32] OPENJP2.opj_set_decode_area.restype = check_error OPENJP2.opj_set_decode_area(codec, image, ctypes.c_int32(start_x), ctypes.c_int32(start_y), ctypes.c_int32(end_x), ctypes.c_int32(end_y)) def set_default_decoder_parameters(): """Wraps openjp2 library function opj_set_default_decoder_parameters. Sets decoding parameters to default values. Returns ------- dparam : DecompressionParametersType Decompression parameters. """ ARGTYPES = [ctypes.POINTER(DecompressionParametersType)] OPENJP2.opj_set_default_decoder_parameters.argtypes = ARGTYPES OPENJP2.opj_set_default_decoder_parameters.restype = ctypes.c_void_p dparams = DecompressionParametersType() OPENJP2.opj_set_default_decoder_parameters(ctypes.byref(dparams)) return dparams def set_default_encoder_parameters(): """Wraps openjp2 library function opj_set_default_encoder_parameters. Sets encoding parameters to default values. That means lossless 1 tile size of precinct : 2^15 x 2^15 (means 1 precinct) size of code-block : 64 x 64 number of resolutions: 6 no SOP marker in the codestream no EPH marker in the codestream no sub-sampling in x or y direction no mode switch activated progression order: LRCP no index file no ROI upshifted no offset of the origin of the image no offset of the origin of the tiles reversible DWT 5-3 The signature for this function differs from its C library counterpart, as the the C function pass-by-reference parameter becomes the Python return value. Returns ------- cparameters : CompressionParametersType Compression parameters. """ ARGTYPES = [ctypes.POINTER(CompressionParametersType)] OPENJP2.opj_set_default_encoder_parameters.argtypes = ARGTYPES OPENJP2.opj_set_default_encoder_parameters.restype = ctypes.c_void_p cparams = CompressionParametersType() OPENJP2.opj_set_default_encoder_parameters(ctypes.byref(cparams)) return cparams def set_error_handler(codec, handler, data=None): """Wraps openjp2 library function opj_set_error_handler. Set the error handler use by openjpeg. Parameters ---------- codec : CODEC_TYPE Codec initialized by create_compress function. handler : python function The callback function to be used. user_data : anything User/client data. Raises ------ RuntimeError If the OpenJPEG library routine opj_set_error_handler fails. """ OPENJP2.opj_set_error_handler.argtypes = [CODEC_TYPE, ctypes.c_void_p, ctypes.c_void_p] OPENJP2.opj_set_error_handler.restype = check_error OPENJP2.opj_set_error_handler(codec, handler, data) def set_info_handler(codec, handler, data=None): """Wraps openjp2 library function opj_set_info_handler. Set the info handler use by openjpeg. Parameters ---------- codec : CODEC_TYPE Codec initialized by create_compress function. handler : python function The callback function to be used. user_data : anything User/client data. Raises ------ RuntimeError If the OpenJPEG library routine opj_set_info_handler fails. """ OPENJP2.opj_set_info_handler.argtypes = [CODEC_TYPE, ctypes.c_void_p, ctypes.c_void_p] OPENJP2.opj_set_info_handler.restype = check_error OPENJP2.opj_set_info_handler(codec, handler, data) def set_warning_handler(codec, handler, data=None): """Wraps openjp2 library function opj_set_warning_handler. Set the warning handler use by openjpeg. Parameters ---------- codec : CODEC_TYPE Codec initialized by create_compress function. handler : python function The callback function to be used. user_data : anything User/client data. Raises ------ RuntimeError If the OpenJPEG library routine opj_set_warning_handler fails. """ OPENJP2.opj_set_warning_handler.argtypes = [CODEC_TYPE, ctypes.c_void_p, ctypes.c_void_p] OPENJP2.opj_set_warning_handler.restype = check_error OPENJP2.opj_set_warning_handler(codec, handler, data) def setup_decoder(codec, dparams): """Wraps openjp2 library function opj_setup_decoder. Setup the decoder with decompression parameters. Parameters ---------- codec: CODEC_TYPE Codec initialized by create_compress function. dparams: DecompressionParametersType Decompression parameters. Raises ------ RuntimeError If the OpenJPEG library routine opj_setup_decoder fails. """ ARGTYPES = [CODEC_TYPE, ctypes.POINTER(DecompressionParametersType)] OPENJP2.opj_setup_decoder.argtypes = ARGTYPES OPENJP2.opj_setup_decoder.restype = check_error OPENJP2.opj_setup_decoder(codec, ctypes.byref(dparams)) def setup_encoder(codec, cparams, image): """Wraps openjp2 library function opj_setup_encoder. Setup the encoder parameters using the current image and using user parameters. Parameters ---------- codec : CODEC_TYPE codec initialized by create_compress function cparams : CompressionParametersType compression parameters image : ImageType input-filled image Raises ------ RuntimeError If the OpenJPEG library routine opj_setup_encoder fails. """ ARGTYPES = [CODEC_TYPE, ctypes.POINTER(CompressionParametersType), ctypes.POINTER(ImageType)] OPENJP2.opj_setup_encoder.argtypes = ARGTYPES OPENJP2.opj_setup_encoder.restype = check_error OPENJP2.opj_setup_encoder(codec, ctypes.byref(cparams), image) def start_compress(codec, image, stream): """Wraps openjp2 library function opj_start_compress. Start to compress the current image. Parameters ---------- codec : CODEC_TYPE Compressor handle. image : pointer to ImageType Input filled image. stream : STREAM_TYPE_P Input stream. Raises ------ RuntimeError If the OpenJPEG library routine opj_start_compress fails. """ OPENJP2.opj_start_compress.argtypes = [CODEC_TYPE, ctypes.POINTER(ImageType), STREAM_TYPE_P] OPENJP2.opj_start_compress.restype = check_error OPENJP2.opj_start_compress(codec, image, stream) def stream_create_default_file_stream(fname, isa_read_stream): """Wraps openjp2 library function opj_stream_create_default_vile_stream. Sets the stream to be a file stream. This function is only valid for the 2.1 version of the openjp2 library. Parameters ---------- fname : str Specifies a file. isa_read_stream: bool True (read) or False (write) Returns ------- stream : stream_t An OpenJPEG file stream. """ ARGTYPES = [ctypes.c_char_p, ctypes.c_int32] OPENJP2.opj_stream_create_default_file_stream.argtypes = ARGTYPES OPENJP2.opj_stream_create_default_file_stream.restype = STREAM_TYPE_P read_stream = 1 if isa_read_stream else 0 file_argument = ctypes.c_char_p(fname.encode()) stream = OPENJP2.opj_stream_create_default_file_stream(file_argument, read_stream) return stream def stream_destroy(stream): """Wraps openjp2 library function opj_stream_destroy. Destroys the stream created by create_stream. Parameters ---------- stream : STREAM_TYPE_P The file stream. """ OPENJP2.opj_stream_destroy.argtypes = [STREAM_TYPE_P] OPENJP2.opj_stream_destroy.restype = ctypes.c_void_p OPENJP2.opj_stream_destroy(stream) def write_tile(codec, tile_index, data, data_size, stream): """Wraps openjp2 library function opj_write_tile. Write a tile into an image. Parameters ---------- codec : CODEC_TYPE The jpeg2000 codec tile_index : int The index of the tile to write, zero-indexing assumed data : array Image data arranged in usual C-order data_size : int Size of a tile in bytes stream : STREAM_TYPE_P The stream to write data to Raises ------ RuntimeError If the OpenJPEG library routine opj_write_tile fails. """ OPENJP2.opj_write_tile.argtypes = [CODEC_TYPE, ctypes.c_uint32, ctypes.POINTER(ctypes.c_uint8), ctypes.c_uint32, STREAM_TYPE_P] OPENJP2.opj_write_tile.restype = check_error datap = data.ctypes.data_as(ctypes.POINTER(ctypes.c_uint8)) OPENJP2.opj_write_tile(codec, ctypes.c_uint32(int(tile_index)), datap, ctypes.c_uint32(int(data_size)), stream) def set_error_message(msg): """The openjpeg error handler has recorded an error message.""" ERROR_MSG_LST.put(msg) glymur-0.9.1/glymur/options.py000066400000000000000000000143711360775562100164460ustar00rootroot00000000000000""" Manage glymur configuration settings. """ # Standard library imports import copy import warnings # Local imports from . import version from .lib import openjp2 as opj2 _original_options = { 'lib.num_threads': 1, 'parse.full_codestream': False, 'print.xml': True, 'print.codestream': True, 'print.short': False, } _options = copy.deepcopy(_original_options) def set_option(key, value): """Set the value of the specified option. Available options: parse.full_codestream print.xml print.codestream print.short lib.num_threads Parameters ---------- key : str Name of a single option. value : New value of option. Option Descriptions ------------------- lib.num_threads : int Set the number of threads used to decode an image. This option is only available with OpenJPEG 2.2.0 or higher. parse.full_codestream : bool When False, only the codestream header is parsed for metadata. This can results in faster JP2/JPX parsing. When True, the entire codestream is parsed. [default: False] print.codestream : bool When False, the codestream segments are not printed. Otherwise the segments are printed depending on the value of the parse.full_codestream option. [default: True] print.short : bool When True, only the box ID, offset, and length are displayed. Useful for displaying only the basic structure or skeleton of a JPEG 2000 file. [default: False] print.xml : bool When False, printing of the XML contents of any XML boxes or UUID XMP boxes is suppressed. [default: True] See also -------- get_option """ if key not in _options.keys(): raise KeyError(f'{key} not valid.') if key == 'lib.num_threads': if version.openjpeg_version < '2.2.0': msg = ( f'Thread support is not available on versions of OpenJPEG ' f'prior to 2.2.0. Your version is ' f'{version.openjpeg_version}.' ) raise RuntimeError(msg) if not opj2.has_thread_support(): msg = 'The OpenJPEG library is not configured with thread support.' raise RuntimeError(msg) _options[key] = value def get_option(key): """Return the value of the specified option Available options: parse.full_codestream print.xml print.codestream print.short Parameter --------- key : str Name of a single option. Returns ------- result : the value of the option. See also -------- set_option """ return _options[key] def reset_option(key): """ Reset one or more options to their default value. Pass "all" as argument to reset all options. Available options: parse.full_codestream print.xml print.codestream print.short Parameter --------- key : str Name of a single option. """ global _options if key == 'all': _options = copy.deepcopy(_original_options) else: if key not in _options.keys(): raise KeyError(f'{key} not valid.') _options[key] = _original_options[key] def set_parseoptions(full_codestream=True): """Set parsing options. These options determine the way JPEG 2000 boxes are parsed. Parameters ---------- full_codestream : bool, defaults to True When False, only the codestream header is parsed for metadata. This can results in faster JP2/JPX parsing. When True, the entire codestream is parsed for metadata. See also -------- get_parseoptions Examples -------- To put back the default options, you can use: >>> import glymur >>> glymur.set_parseoptions(full_codestream=True) """ warnings.warn('Use set_option instead of set_parseoptions.', DeprecationWarning) set_option('parse.full_codestream', full_codestream) def get_parseoptions(): """Return the current parsing options. Returns ------- dict Dictionary of current print options with keys - codestream : bool For a full description of these options, see `set_parseoptions`. See also -------- set_parseoptions """ warnings.warn('Use set_option instead of set_parseoptions.', DeprecationWarning) return {'full_codestream': get_option('parse.full_codestream')} def set_printoptions(**kwargs): """Set printing options. These options determine the way JPEG 2000 boxes are displayed. Parameters ---------- short : bool, optional When True, only the box ID, offset, and length are displayed. Useful for displaying only the basic structure or skeleton of a JPEG 2000 file. xml : bool, optional When False, printing of the XML contents of any XML boxes or UUID XMP boxes is suppressed. codestream : bool, optional When False, the codestream segments are not printed. Otherwise the segments are printed depending on how set_parseoptions has been used. See also -------- get_printoptions Examples -------- To put back the default options, you can use: >>> import glymur >>> glymur.set_printoptions(short=False, xml=True, codestream=True) """ warnings.warn('Use set_option instead of set_printoptions.', DeprecationWarning) for key, value in kwargs.items(): if key not in ['short', 'xml', 'codestream']: raise KeyError(f'"{key}" not a valid keyword parameter.') set_option('print.' + key, value) def get_printoptions(): """Return the current print options. Returns ------- dict Dictionary of current print options with keys - short : bool - xml : bool - codestream : bool For a full description of these options, see `set_printoptions`. See also -------- set_printoptions """ warnings.warn('Use get_option instead of get_printoptions.', DeprecationWarning) d = {} for key in ['short', 'xml', 'codestream']: d[key] = _options['print.' + key] return d glymur-0.9.1/glymur/version.py000066400000000000000000000020111360775562100164240ustar00rootroot00000000000000""" This file is part of glymur, a Python interface for accessing JPEG 2000. http://glymur.readthedocs.org Copyright 2013 John Evans License: MIT """ # Standard library imports ... import sys # Third party library imports ... from distutils.version import LooseVersion import numpy as np # Local imports ... from .lib import openjp2 as opj2 # Do not change the format of this next line! Doing so risks breaking # setup.py version = "0.9.1" _sv = LooseVersion(version) version_tuple = _sv.version openjpeg_version = opj2.version() _sv = LooseVersion(openjpeg_version) openjpeg_version_tuple = _sv.version __doc__ = """\ This is glymur **{glymur_version}** * OpenJPEG version: **{openjpeg}** """.format(glymur_version=version, openjpeg=openjpeg_version) info = f"""\ Summary of glymur configuration ------------------------------- glymur {version} OpenJPEG {openjpeg_version} Python {sys.version} sys.platform {sys.platform} sys.maxsize {sys.maxsize} numpy {np.__version__} """ glymur-0.9.1/setup.cfg000066400000000000000000000004241360775562100146750ustar00rootroot00000000000000[flake8] exclude = build ignore = E402,W503 [nosetests] # std library unit testing uses "load_tests" to hook into # doctests, but nose doesn't like it. exclude=load_tests with-coverage=1 cover-erase=1 cover-html=1 cover-html-dir=cover cover-tests=1 cover-package=glymur,tests glymur-0.9.1/setup.py000066400000000000000000000032251360775562100145700ustar00rootroot00000000000000# Standard library imports ... import pathlib import re # Third party library imports ... from setuptools import setup kwargs = { 'name': 'Glymur', 'description': 'Tools for accessing JPEG2000 files', 'long_description': open('README.md').read(), 'author': 'John Evans', 'author_email': 'john.g.evans.ne@gmail.com', 'url': 'https://github.com/quintusdias/glymur', 'packages': ['glymur', 'glymur.data', 'glymur.lib'], 'package_data': {'glymur': ['data/*.jp2', 'data/*.j2k', 'data/*.jpx']}, 'entry_points': { 'console_scripts': ['jp2dump=glymur.command_line:main'], }, 'license': 'MIT', 'test_suite': 'glymur.test', 'install_requires': ['lxml', 'numpy', 'setuptools'], } kwargs['classifiers'] = [ "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: Implementation :: CPython", "License :: OSI Approved :: MIT License", "Development Status :: 5 - Production/Stable", "Operating System :: MacOS", "Operating System :: POSIX :: Linux", "Operating System :: Microsoft :: Windows :: Windows XP", "Intended Audience :: Science/Research", "Intended Audience :: Information Technology", "Topic :: Software Development :: Libraries :: Python Modules" ] # Get the version string. Cannot do this by importing glymur! p = pathlib.Path('glymur') / 'version.py' contents = p.read_text() pattern = r'''version\s=\s"(?P\d*.\d*.\d*.*)"\s''' match = re.search(pattern, contents) kwargs['version'] = match.group('version') setup(**kwargs) glymur-0.9.1/tests/000077500000000000000000000000001360775562100142165ustar00rootroot00000000000000glymur-0.9.1/tests/__init__.py000066400000000000000000000000701360775562100163240ustar00rootroot00000000000000""" Test suite for glymur high-level functionality. """ glymur-0.9.1/tests/data/000077500000000000000000000000001360775562100151275ustar00rootroot00000000000000glymur-0.9.1/tests/data/0220000800/000077500000000000000000000000001360775562100161625ustar00rootroot00000000000000glymur-0.9.1/tests/data/0220000800/__init__.py000066400000000000000000000000001360775562100202610ustar00rootroot00000000000000glymur-0.9.1/tests/data/0220000800/uuid.dat000066400000000000000000000012771360775562100176310ustar00rootroot00000000000000uuidK=KCզII*(   '?? A@This file was created with the ECW JPEG 2000 SDK build 3.3.0.161 copyright 1998-2005 by ER Mapper. This GeoJP2 header was translated from the following ER Mapper style registration information: fOriginX: 220000.000000 fOriginY: 85000.000000 fCellIncrementX: 1.000000 fCellIncrementY: -1.000000 fCWRotationDegrees: 0.000000 szProjection: LOCAL szDatum: NAD83 glymur-0.9.1/tests/data/__init__.py000066400000000000000000000000001360775562100172260ustar00rootroot00000000000000glymur-0.9.1/tests/data/decompression_parameters_type.txt000066400000000000000000000005411360775562100240260ustar00rootroot00000000000000: cp_reduce: 0 cp_layer: 0 infile: b'' outfile: b'' decod_format: -1 cod_format: -1 DA_x0: 0 DA_x1: 0 DA_y0: 0 DA_y1: 0 m_verbose: 0 tile_index: 0 nb_tile_to_decode: 0 jpwl_correct: 0 jpwl_exp_comps: 0 jpwl_max_tiles: 0 flags: 0 glymur-0.9.1/tests/data/default_compression_parameters_type.txt000066400000000000000000000027661360775562100252340ustar00rootroot00000000000000: tile_size_on: 0 cp_tx0: 0 cp_ty0: 0 cp_tdx: 0 cp_tdy: 0 cp_disto_alloc: 0 cp_fixed_alloc: 0 cp_fixed_quality: 0 cp_matrice: None cp_comment: None csty: 0 prog_order: 0 numpocs: 0 numpocs: 0 tcp_numlayers: 0 tcp_rates: [] tcp_distoratio: [] numresolution: 6 cblockw_init: 64 cblockh_init: 64 mode: 0 irreversible: 0 roi_compno: -1 roi_shift: 0 res_spec: 0 prch_init: [] prcw_init: [] infile: b'' outfile: b'' index_on: 0 index: b'' image_offset_x0: 0 image_offset_y0: 0 subsampling_dx: 1 subsampling_dy: 1 decod_format: -1 cod_format: -1 jpwl_epc_on: 0 jpwl_hprot_mh: 0 jpwl_hprot_tph_tileno: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] jpwl_hprot_tph: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] jpwl_pprot_tileno: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] jpwl_pprot_packno: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] jpwl_pprot: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] jpwl_sens_size: 0 jpwl_sens_addr: 0 jpwl_sens_range: 0 jpwl_sens_mh: 0 jpwl_sens_tph_tileno: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] jpwl_sens_tph: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] cp_cinema: 0 max_comp_size: 0 cp_rsiz: 0 tp_on: 0 tp_flag: 0 tcp_mct: 0 jpip_on: 0 mct_data: None max_cs_size: 0 rsiz: 0 glymur-0.9.1/tests/data/default_progression_order_changes_type.txt000066400000000000000000000007561360775562100257020ustar00rootroot00000000000000: resno0: 0 compno0: 0 layno1: 0 resno1: 0 compno1: 0 layno0: 0 precno0: 0 precno1: 0 prg1: 0 prg: 0 progorder: b'' tile: 0 tx0: 0 tx1: 0 ty0: 0 ty1: 0 layS: 0 resS: 0 compS: 0 prcS: 0 layE: 0 resE: 0 compE: 0 prcE: 0 txS: 0 txE: 0 tyS: 0 tyE: 0 dx: 0 dy: 0 lay_t: 0 res_t: 0 comp_t: 0 prec_t: 0 tx0_t: 0 ty0_t: 0 glymur-0.9.1/tests/data/degenerate_geotiff.tif000077500000000000000000000007631360775562100214520ustar00rootroot00000000000000II*   L  ??U@Ce #      )#    f@/IA/IAEquirectangular MARS|GCS_MARS|glymur-0.9.1/tests/data/edf_c2_1178956.jp2000066400000000000000000000430471360775562100176220ustar00rootroot00000000000000 jP ftypjp2 jp6 -jp2hihdrcolrEjp2cOQ/` \@@HHPHHPHHPHHPHHPd%Creatad bx OpenJPEG version 1.2.0 ESS ]@@HHPHHPHHPHHPHHPS ]@@HHPHHPHHPHHPHP~MFZdY}gc9]60[*)gMu*ڗ4/Y)DwjJ46xWIVDr%^r Kw((8d/i6ΫCȼE;cQ P9)6X0oDh Yb ;@E[|\-LtHJ&ůҰn裡 ~~HG"1@ A+P[q-|<28f)!Hby5v$𣃓8Rt+*wR"TfM*#P i<!.[:h.`W7ܠ7=u`R_}zuOy2*e^vukW[RxvBiJ%$T5NMTWe IgOI^|kE cV.c`naV"9Q vPsyB/%rΥuy6fztEGlr6`@J﮽spa5|9P9tM>9*NPH fu|\ߐWEekn1*Z;ԆF>?%K 2tbS^EVF˺B;:gqܠ>J@c0wh;.h n~hCL#;p ÇV[k5{v8_qdإ=ʙfPj#9Vm1̇ui}p8FZv9uqSxFa`Xy:Ï`x $O5#`RW 4 xXOm#7TeM:ͳe+׈HI?qc` y>r9u}^Tg'D(}QB{Υ'p;0l?G+|%uM2DI8$Te0!ɇkI5~\{zptw3%(\-u pdP?'l cy&ɀZ 3_&L.˲]R|\1?^aP#DURl6a=:vouy"|w7An3t=Y,z2+?F%C&!GtK;1$G7qmZ7R qL!j15~YU&.7]@c~'<}X U1]?@Ę`=蓮Ҡ~V8 Q&z){S'Hf7,D>!7 Ԡf3U~&M$"8Fz'ˬ-LNh(C䢺@jo#AC?%ְrjzt\mg/%2/t_!!aN<*;8d]'u=7[Bu]jsͤ]xU7"ͪ+!ep7Ѯ)--mdąԄ.}QB<Fhpm5*z|F#J+H"[pA(ROCYĶ>89]Ww$ͧ3-ʤB-8j'N#0K[nFypIqxX9%6Abt۱۵/zh:"3:!vX.(J<Pj¬8mp(׉dm7-P7`NJ$/N(.>Bz5c}ܪ: cĶ"m";-6G$d7OPCOJ@F6Go؋,֪HG^0zi?syԑ@] b h8xW hc X)f+OtPp(}cZ TsM?Rz:T;y#6t^npPz.Cn]Gy3 :sAf4ǿfLwWFWyWb[6;D8Kp~0G7Cib-ˤ)O"EIݮ> 8U p)Si߿IMݫ¥Te־ţ8]YEK#rMӗyZ 3b8Kv3р&\' 5P[ tAG!\X~~5ʂ0\e&bvgǷ c'B"rAE'v Ѻ9UlM0ڀu4l(Y)_`0oݼiUao|R1:Fc$i0(z#/WP31OÀ@V:y,nf(ube/dOs} a+"YDJ9`BhwJ%x $JXbbj/@h> 2}W)W<{Іu+Ar"#<2e*5\#'" ![̏L;Y"Bd?D:h֢{Oe-`؋X|R,Se"0xQd$\ͱ^f\EmڙĻ&2[~J6nVdnj !}y.Jǀ* ӜJvg)xOZUv0OCw3$rո:e'򂄼${]yObe<6U|=@-5Ϗd5F>6գY~[m#P ENS._jur?2ÇXPH)i8!P-i|úฺxãj;>l. BW=<+GQj(3Y+&]Psr!Œ>09 i* bɳo~;R'<{j&eJ׬Hf AKVK<]h fN](+; :S4!x3S}&Fl F<ݤE),}# X2Ҳe6Ԗq%"nyCrS"qlR%UOR{k⤹/@Q/9<XnHGb355-W?|W19NُC"`@ ecA籩0>dޝٴw0IF}:mzAk,*Z/ZX[ΆBSTgxʁ,Vrc U&`mT7N,ǥAm3t|mIT`E2 Czn@v@ùNt5[%UIHۦxƉ+%;gyJ]zQ "{FZѼ^Ӆb|sH=j|sq{Q^*E_˦BYx0N/Yk jκjJ )_sA=B3Un֮_I١'%z /,,*lő3P=h @,/%N,;@VT/G9+]EeC?+ ːMNr"c l4[[KgY_;)v?rnJ!ny۝V*pFc5XϘMXj˪ܯڂ#Ogu$أG$'1u ^Z58]2D Xq!B&{a#S+\XM!t˗Ïr:jh%Tg)IIwCF{&C86U66Tu_^ב/Y|AkV3Wz>7iTP0kug[ŮQ!N"LlX0% Tm>. 3:6kh'a*⾜6n `Ev9Pu@@%ŕ`kės3t}?M$ZR̊ aIZN%]ɌF:mĢ"E!?PQ2́2! RLj_ ) ǒ?J#Bݼ$Á\rVQ|Gw Ɓdbmݑ8GaV(HM֯~őTk!Jfyfr[Ich1Tbݪ*YUJؔhKW- O׻ F\B?|ݜ}@ɋ6[8.nT:ԑa,6IӖ::4`%ٿz ~a`3%2gVH>Ǖmf uNjRSsV<>d_ST݃9r9;5Wdmm#k;Xooh"mژXLze.C`p'Эr޴>zʖAX@,)/SiIyT,;TSݙ}Clviyn!3"fl#|0;/X')Ma"ok;ekL:[C} %Ǚ,)zI)D)FX1Ҋ@!Pn/`so JO /7JЅ7Ni#Q-?a%k]`_Г\ #t%vA3k%[Hhs7BZ[B+X<U6ǣ,"[`h#81R[ F )dZ5l_h:nzXfѕ9 ljUr.UwJt`12p],<>U0 h1 )Uc%ըdPǍ Q{ޯn2"( 34 аWK\_i|pו,& 25DfNJD`YFD3\!:䅁zҴ2b6r3LIx'f$E"$ީtjϕx7$ >w KyE$TCy#"td5Bl*ߪsM[3.ut a(y{ D`#7s95] Jr߃* $I3|ӆ鵨Mē)lf6ChTlU](S@#-+L `@x5<􁉇co,%4JiY=)1/ś<#b =ZzFԶ7~aONf0sĩFit&jcWTI,/#y +,#jD?7#6Y|34ׯK{d&巁+r۳WG|7W8s^yVO4Gzxnc 9÷M=+h?%SG:ysYm~~څŖh]/B .($fe(I ޲p,ϖ;=>G^go$iz>2U fu6-EQXZ`D<6VwunN 3Fpezw&F-* 2),˅wB\rT,pûSSmIΒUE>s*u#=NLC,ҫ%D͡IΘq(NH䧝vÑ~~g_T2"nN=煮{+nT6 8sb"aS2Bϧ'%/,wqGZf\MEc8Ӽ^v1b`w~ாw$bP1vntt%idz)n 6=r! fCqǕŬ9d?"ڴwrRyr=c ,Ѕ;SW^4&hP0EɦS2i䪭4U uFoK6՛ 0SB0A_SiJCUO:{HxQxKPNG"Pm:^&6zΞЌ/CybXm^exMEJX}mm"qrʆUk9`ҋ Q] .^8xɟ<i`w+byI>*Ɵ}De,]Kv/$5c)o*nd7&Te-[F[X(CCτwʸVKv;,4Nfb֏$^CHLň`×hT()xT3wB?Tj\:$V'\dE&5-#MS&bh'B .akCQf5iCr") Ћ#&Se[ ܰ.lNcf%`NZhIm%aKiMARQ~:Rh!"Bg!+[&l1_ۿDbϣ?ϼ<>}m^>=nELnͼ#SB̛ٯ^5]#yY8xp;h6Z@uʍ50LDut@W;FU.Fm'lW\i2*J'u@dKvG՚}aم"HG;pL;lN!_N3;W]M./i\f2e$&rgA.(Q*Dx>/"o Br }Tme^F3 )rkw0pP|7@ T%~I_;-՛bK L0`SOlHu%to&-\A=b/&8yT. ?ᒕwX2*!o[X|Fh'L% ).oCk+4u#ոwڸC'/]*N?@a%]F ǘ 2ѧ&{Xve:{W!c ؃) ħgn}&%+P:mVs(dH9RZ'J?"ٴ7o(DK;&]E^dCqTn%}n1iY69r"A[t23pּWY sg3l`Dv$JK[²#j q<P/n";d>P)H*Ҙ0A'q5ijH;e4+LxoaYhhn9o Ҝ2xeV^uSZÙ f'ŤO>%ᗕ&_% v)$ܻ)L89ܾ|п] 5N9mBr܏T$܍1N;Lth7C(zdo sB R.kfK' %K]A!J#4,:/CӜX,es:ʨ5'@(TWWhGb%Үd\ =uŸ!|!J4!)&_w56(B;A Ϸ:vī>u(ċrԉ[s/0s_ TO, ȥHpsJ0yj(JƝ_<Izt=YLR}Z}HZ*%˚\}7H[Bؕك+Sn]^Y84pʹI pdvy¨oy:er(,Ëc oCʱ-v(/:Ҽ</sf((1ѹ9 Fhz;P~0̓?Kd *U#uV AHpI;>ohni[=/=Oe/~,QߪOB{?j,(2pEeHjUb0 磠„G;]*6+d@v"="_Ђwyn?;}%\ttO/,1N1vԮ74O&L 6B,$C"GՉFoa3sDL[]XSU gBګ7mx|ec^@ࠥg_d_ܨIN,v_xǖ)rJˤJ-AhIKb"9CYm =uKl)n0kc\;1c#l즱 QRJ'kBX_u^koP dTm"D;|; 'TޔJΡ]ԍE"Gjο,Y%xΖ' ; T.֙P3.. bQΥu_}+k 11UC%#6tdx>>^VbuWh~z 4F&a*bц4C{io8wa{H.5f$չ7wO͆<ګLe ~ыR̐{O[]lճ r<þ{hm~R2eL'hG)x zG%j[;)LlF8Ӭ|򨊏х[Kg.GdRmӵl0A,7N^6IL(2&Cc>yTKZ>)?Αu4]vSӌ qBsW4c-ZblF*K&xAh#vKx[=HϢ A"SG^?L_v| oR{+۪I|G|?6m+_7q|I#'qsS w+Կ鿀vҳi"[_GM{nRyή3喣͍t1xTmp( DxM(z/o/ZA>x!+>Y`Jz8^Phy6[ćO(paRyaEY䱛déʤ!jI 4HXm b408 7Mje B4J~ngkJ{lzDI8Ѱ!'&KR׸x?`!(}d?SlL,idY:oJe聻hpӳm'KyllCYNhf=-6(lc%:!u܃4 Hr>_GNޢ`Q#?ry>,6٠` Ō-fy ي =-"sTzU'HWc_&n#)S BMѬB迖[%dv @ l:eY7Y?ibn}sDRS|> ѵp!'[5|a>D-&N<S;-|R_dfM.S񞳖kuNmBwl 1xZުlʷc,%YJ1ɸAF(-N%9żς PRN/ɶGu[\nTeDј)QH*UF>6t J oɒi! vI/}wˌSm*9Z\l̜69-l|??)w( Z+ºvAɯfVr[`idy(L{?3bp>GP.+?,ZH ԞקZcY# t|s(g }(LصPBVr-ʚ7i("3@*A6DI"a @mQ($3JtJW5s~%ɋ uP2 ת0(L[5!4JsDZ{ wNb4c.GЎ~{}6;ɰ;8$s;1-RP$+A/;vk99jϼhpq\$mHɃWsyXDZIgqw1j 2w3u&PwEŌ*Fi~0^}eComŪ,)6M 6v*1 G]ٺxD<=:SU~<ǫbd}N!e^Cw3B)i변ƋB6:J GVS$a=f _ߺѣӔKtQ}6`%)xY4~53_OLnGZ'Ht"@8)0u/l!?Z`}k.KaU:Lq;neAq7͟n/AhbЧל/=yAgqb٩ GYOwKgP(-EiS7k>u.1 rOk݀S X5^kWU{:`L*5ů$p#Bj$R?aJ5:UW<\urN&:,³ku(zO]F(GPDXɼ`2[sѠIRAF;O+ϔەvUuēBls (6nIGvTF 9IwW> Ce`@ e|(I yFvTho,UV u|H_3$J$"ZlD WUt>5}Ndj6$lkE+Zq? FZ&2}qM̾IT <48o)vZj3ȇS2M쁎7 '`ba'Ք1"n„Ma<,!vɦId1aEn?m]I0oٷ[9yzWL;Qƾ$x!F R+{up<4G8k5גg@^p6zE)!n3H:z ~S%y6HȑX'9Ӡ'y\\Fүi3N=e[PI~"8$$u}E뭎rcEk!"@.B(A1x}.3J1p)(\t\#$}AA,129Wu?#7^}F슰 W. _s 4GIԂ0B??\P+eO*]sHk/Xʥ$2%y0:y _(nٷ` #>ԋѬ\P c7⭷:yTgnga,inS~GT LG5u'`rbwC02ٖG"ѪDz2 ۅF2r{u7>?3~I}fHyZzBpl3 /9Q U頛iF>X].zFX['{}i-mHyly2|4O!pgb]ZyXP6')LY-P/foC_g(];bB ]K0t gN?!}e, )l>9}H0螜2tvW$z,1[q{.o.H p)1PJjf޾GPv?Г X\}yKvͼ{EAũ8 Kו܁|F9OBS1c Ub)&` ]㻿R;n4za+a&Za9v ]MX/T:uB#:b9Xp t08½HKBC6sa*i^9N)x!c"04jFfè$b]q,9Β3tx0d )RPaBwⱻh1q)ue}{}SXuKro1X3֏vA*-Xm'5H'+ V c|}CG Z=P?|Ēf@n!O vhs yx^qN"ۡE~Sֲ}GDl p4Zء^2m}G҅;\&p?4$"FjDIIr CdKmT2 zΘ6>X 9Y.f9ɓ0m%g\Wy.HsqΰdHҸ"ŇaVQKZ{r &0s q8')O&CߡЅ˚ۓ<[,H-p;aĹ纚&O Р帳ь7͇Ryjagi["*9w;r/%USE0O8^ry*IX[Ed(w7R(m#HRagSsI'&=ǴZˢJ cɀcGI{amF usbq8&[S drnM7DlrRO^7(7`蟓_^ 2i *\dKDzi%s۳=#Ѯ^:.vRhۃI/a4;ynv9~rTAS͖yuF~ztJM@ 1t2NbEEg~%iV5pF>چPw`_ˉTS RO(d.\Vd+v)e OA*5LH[*gA(z3zSjqv0FTĖI ve+X?2mJi tptg6%n*jb0=r+K}3=ؾi$* ȸoBs;uB_|liEr g4`M}U bk3m2& pwPz;䝚,m|&Dt-{xS0M4:8n?Kd4s:Ń9{BS-K@[ʣmT"[i.qz(pc+(/p_R{04i\sUݷo'ힽ{nBpsF'b`V1D`{A%]RSt7tT tP<`9glymur-0.9.1/tests/data/encoding_declaration.xml000066400000000000000000000033511360775562100220060ustar00rootroot00000000000000 withheld 1 1 1830 1830 x y 300030 4299990 60 0 0 -60 gmljp2://codestream/0 Record Interleaved glymur-0.9.1/tests/data/file1_xml.txt000066400000000000000000000006311360775562100175500ustar00rootroot00000000000000 2001-11-01T13:45:00.000-06:00 Professional 120 Image glymur-0.9.1/tests/data/file1_xml_box.txt000066400000000000000000000007141360775562100204220ustar00rootroot00000000000000XML Box (xml ) @ (36, 439) 2001-11-01T13:45:00.000-06:00 Professional 120 Image glymur-0.9.1/tests/data/geotiff_uuid.txt000066400000000000000000000023221360775562100203400ustar00rootroot00000000000000UUID Box (uuid) @ (149, 523) UUID: b14bf8bd-083d-4b43-a5ae-8cd7d5a6ce03 (GeoTIFF) UUID Data: Coordinate System = PROJCS["Equirectangular MARS", GEOGCS["GCS_MARS", DATUM["unknown", SPHEROID["unnamed",3396190,0]], PRIMEM["Greenwich",0], UNIT["degree",0.0174532925199433]], PROJECTION["Equirectangular"], PARAMETER["latitude_of_origin",0], PARAMETER["central_meridian",180], PARAMETER["standard_parallel_1",0], PARAMETER["false_easting",0], PARAMETER["false_northing",0], UNIT["metre",1, AUTHORITY["EPSG","9001"]]] Origin = (-2523306.125000000000000,-268608.875000000000000) Pixel Size = (0.250000000000000,-0.250000000000000) Corner Coordinates: Upper Left (-2523306.125, -268608.875) (137d25'49.08"E, 4d31'53.74"S) Lower Left (-2523306.125, -268609.125) (137d25'49.08"E, 4d31'53.75"S) Upper Right (-2523305.875, -268608.875) (137d25'49.09"E, 4d31'53.74"S) Lower Right (-2523305.875, -268609.125) (137d25'49.09"E, 4d31'53.75"S) Center (-2523306.000, -268609.000) (137d25'49.09"E, 4d31'53.75"S) glymur-0.9.1/tests/data/geotiff_uuid_proj6.txt000066400000000000000000000024401360775562100214610ustar00rootroot00000000000000UUID Box (uuid) @ (149, 523) UUID: b14bf8bd-083d-4b43-a5ae-8cd7d5a6ce03 (GeoTIFF) UUID Data: Coordinate System = PROJCS["Equirectangular MARS", GEOGCS["GCS_MARS", DATUM["unnamed", SPHEROID["unnamed",3396190,0]], PRIMEM["Reference meridian",0], UNIT["degree",0.0174532925199433, AUTHORITY["EPSG","9122"]]], PROJECTION["Equirectangular"], PARAMETER["standard_parallel_1",0], PARAMETER["central_meridian",180], PARAMETER["false_easting",0], PARAMETER["false_northing",0], UNIT["metre",1, AUTHORITY["EPSG","9001"]], AXIS["Easting",EAST], AXIS["Northing",NORTH]] Origin = (-2523306.125000000000000,-268608.875000000000000) Pixel Size = (0.250000000000000,-0.250000000000000) Corner Coordinates: Upper Left (-2523306.125, -268608.875) (137d25'49.08"E, 4d31'53.74"S) Lower Left (-2523306.125, -268609.125) (137d25'49.08"E, 4d31'53.75"S) Upper Right (-2523305.875, -268608.875) (137d25'49.09"E, 4d31'53.74"S) Lower Right (-2523305.875, -268609.125) (137d25'49.09"E, 4d31'53.75"S) Center (-2523306.000, -268609.000) (137d25'49.09"E, 4d31'53.75"S) glymur-0.9.1/tests/data/goodstuff_codestream_header.txt000066400000000000000000000031551360775562100234120ustar00rootroot00000000000000File: goodstuff.j2k Codestream: SOC marker segment @ (0, 0) SIZ marker segment @ (2, 47) Profile: no profile Reference Grid Height, Width: (800 x 480) Vertical, Horizontal Reference Grid Offset: (0 x 0) Reference Tile Height, Width: (800 x 480) Vertical, Horizontal Reference Tile Offset: (0 x 0) Bitdepth: (8, 8, 8) Signed: (False, False, False) Vertical, Horizontal Subsampling: ((1, 1), (1, 1), (1, 1)) COD marker segment @ (51, 12) Coding style: Entropy coder, without partitions SOP marker segments: False EPH marker segments: False Coding style parameters: Progression order: LRCP Number of layers: 1 Multiple component transformation usage: reversible Number of decomposition levels: 5 Code block height, width: (64 x 64) Wavelet transform: 5-3 reversible Precinct size: (32768, 32768) Code block context: Selective arithmetic coding bypass: False Reset context probabilities on coding pass boundaries: False Termination on each coding pass: False Vertically stripe causal context: False Predictable termination: False Segmentation symbols: False QCD marker segment @ (65, 19) Quantization style: no quantization, 2 guard bits Step size: [(0, 8), (0, 9), (0, 9), (0, 10), (0, 9), (0, 9), (0, 10), (0, 9), (0, 9), (0, 10), (0, 9), (0, 9), (0, 10), (0, 9), (0, 9), (0, 10)] glymur-0.9.1/tests/data/goodstuff_with_full_header.txt000066400000000000000000000074501360775562100232630ustar00rootroot00000000000000Codestream: SOC marker segment @ (0, 0) SIZ marker segment @ (2, 47) Profile: no profile Reference Grid Height, Width: (800 x 480) Vertical, Horizontal Reference Grid Offset: (0 x 0) Reference Tile Height, Width: (800 x 480) Vertical, Horizontal Reference Tile Offset: (0 x 0) Bitdepth: (8, 8, 8) Signed: (False, False, False) Vertical, Horizontal Subsampling: ((1, 1), (1, 1), (1, 1)) COD marker segment @ (51, 12) Coding style: Entropy coder, without partitions SOP marker segments: False EPH marker segments: False Coding style parameters: Progression order: LRCP Number of layers: 1 Multiple component transformation usage: reversible Number of decomposition levels: 5 Code block height, width: (64 x 64) Wavelet transform: 5-3 reversible Precinct size: (32768, 32768) Code block context: Selective arithmetic coding bypass: False Reset context probabilities on coding pass boundaries: False Termination on each coding pass: False Vertically stripe causal context: False Predictable termination: False Segmentation symbols: False QCD marker segment @ (65, 19) Quantization style: no quantization, 2 guard bits Step size: [(0, 8), (0, 9), (0, 9), (0, 10), (0, 9), (0, 9), (0, 10), (0, 9), (0, 9), (0, 10), (0, 9), (0, 9), (0, 10), (0, 9), (0, 9), (0, 10)] SOT marker segment @ (86, 10) Tile part index: 0 Tile part length: 115132 Tile part instance: 0 Number of tile parts: 1 COC marker segment @ (98, 9) Associated component: 1 Coding style for this component: Entropy coder, PARTITION = 0 Coding style parameters: Number of decomposition levels: 5 Code block height, width: (64 x 64) Wavelet transform: 5-3 reversible Precinct size: (32768, 32768) Code block context: Selective arithmetic coding bypass: False Reset context probabilities on coding pass boundaries: False Termination on each coding pass: False Vertically stripe causal context: False Predictable termination: False Segmentation symbols: False QCC marker segment @ (109, 20) Associated Component: 1 Quantization style: no quantization, 2 guard bits Step size: [(0, 8), (0, 9), (0, 9), (0, 10), (0, 9), (0, 9), (0, 10), (0, 9), (0, 9), (0, 10), (0, 9), (0, 9), (0, 10), (0, 9), (0, 9), (0, 10)] COC marker segment @ (131, 9) Associated component: 2 Coding style for this component: Entropy coder, PARTITION = 0 Coding style parameters: Number of decomposition levels: 5 Code block height, width: (64 x 64) Wavelet transform: 5-3 reversible Precinct size: (32768, 32768) Code block context: Selective arithmetic coding bypass: False Reset context probabilities on coding pass boundaries: False Termination on each coding pass: False Vertically stripe causal context: False Predictable termination: False Segmentation symbols: False QCC marker segment @ (142, 20) Associated Component: 2 Quantization style: no quantization, 2 guard bits Step size: [(0, 8), (0, 9), (0, 9), (0, 10), (0, 9), (0, 9), (0, 10), (0, 9), (0, 9), (0, 10), (0, 9), (0, 9), (0, 10), (0, 9), (0, 9), (0, 10)] SOD marker segment @ (164, 0) EOC marker segment @ (115218, 0) glymur-0.9.1/tests/data/issue142.j2k000066400000000000000000001205341360775562100171230ustar00rootroot00000000000000OQ/88   Rw\#"b77II1}!}!}tttdKakadu-v6.2.1U`2"<.2s 2"XQ/*|ag7$Cs!#gCg7C!#Cg7$Cs!#gCg7C!#Cp\FI +F5/UPh5 Pմ)!`,sV\^@|"fݷd9͟$$k(D0 #ӹ2BGc0mɔ;{nNL0 #rreǀaۓ( $$v<ܜ@a!#G܋Jxf\ @3g Z#{-BxcS Ia Ѽk)Ąfaw!z7a<8axG:]/F>ǘ ao!z7a<8}0c Ѽk)ăF[/F>ǘ ao0ľ)2<=_SQ Gs)w`Fyb_a>Gs)w`Fyb_a>Gs)w`Fyb_a>Gs)w`Fyb_a>Gs)w`Fyb_a>Gs)w`Fyb_a>Gs)w`Fyb_a>Gs)wNX6A–e|ęjN4N<hxl?QG%N<hxl?QG%N<hxl?QG%N<hxl?QG%N<hxl?QG%N<hxl?QG%N<hxl?QG%N<hxl?QG'vԭ T>(" ʆf|k /6F5F}eCp^3>cFvAU#þA/1Ḱ#; эw*AaYP ϘahƻH ﬨnKgv`H4c] aA@XwT7%3;Xiy$gd1R0 ,;*43 p|PD x^l kEeEtawBHdCwAO@zdCwA⋪\D7t1\D7tO8%]R!\Pħ=R!yQE.k" Jy5 ?.sY|Ʈ(bSsY}cW1)Tn>q |QuKȆ5qCKȆ0V$Bky0#˔wUaBa@wa~lUM~.p5 )fϑ5WQ5)3g+ G|>G]D͟#X~ЬP1Fl[u_#6|aBa@wa~lUM~.p5 )fϑ5WQ5)3g+ G|>G]D͟#X~ЬP1FluyG+hSYMiPKk}1; zPq(Sfϴ;Lk}1; zPq(Sfϴ;Lk}1; zPq(Sfϴ;Lk}1; zPq(Sfϴ;Lk}1; zPq(Sfϴ;Lk}1; zPq(Sfϴ;Lk}1; zPq(Sfϴ;Lk}1; zPq(SUjYomf+w20+oaSYhBE8SqW2v: p 1H`6NÕ[NVaf5 p;L^7rp) ڌ,ƴs"nGs)+;Vn8[Q֎t$[ Èe0`Wex'aí+j0΄aq̦ ld9XumFcZ9Бl7#\m| +kGB:N BZ!n CI_xZ݊b|⽥jt`Hr~k֫mئ+ +Q殇O6,G&jP V݊b|⽥jt`Hr~k֫mئ+ +Q殇O6,G&jP V݊b|⽥jt`Hr~k֫mئ+ +Q殇O6,G&jP V݊b|⽥jt`Hr~k֫mئ+ +Q殇O6,McAwGlVU?*5Ʋ 6 /.Ю+uK߭۽_:_-Α_KsWd:E-ΐ&K\<11@1Lkj9Udɠt7Hdɠt7Hdɠt7Hdɠt7Hdɠt7Hdɠt7Hd(Gj6eձCVJBDg\R#:G/>Ւ9y?`θϴ5d)Fu8^}%!O"3r Y) ~p#hjH;{{>x99^R NjהGC觃u/ SX: )yJ[}rsVo->x99^RE<Ճ %C{;/nW<$el|ƭE_I E41nWW)E41nW~&el|ƭE_֚QAYշh]el|ƭE_אFQFoqC\,#vÃ()hB)K0:(K7xoK`:맊mEAQ[&TOw>)<#:LSqulqO ɑZ-$M koIt-KYa(y|݌f%6hKIf bHi@{'j|@ Ƙ W"y9`Li{'j|@ Ƙ W"y9`Li{'j|@ Ƙ W"y9`Li{@7(:X?NtĴ<}+@"ȆWǩ5ƶnMQP> dh# zE'+,NWXH9^br"zE'+,NWTqm W JEUHK"5ȣ(T@V&EbmQXTV&EbiɠGܚcj/W!DEroCm6_\"+}EroCm6_\"+}EroCm6 FEW{>ʅ6sd-@ B&ht{}=O|@{=>t{}=B4a剁剁剁剁剁剁剁剁剁剁剁剁剁剁剁V«hc+nv<@bGc+nv<@bGc+nv<@bGc+nv<@bGc+nv<@bGc+nv<@bGc+nv<@bGc+nv<8 c`ٴxgk 'mVvxgk 'mVvxgk 'mVvxgk 'mVvxgk 'mVvxgk 'mVvxgk 'mVvxgk E4wwpȄqSiL F*7[削c>2"YZv܎xi3Ц"qA0G.H1MlF(?Pl [ԉcC(.X#qIG!쁨$ <<ʞG+Ѐ<|0~@]n  Ķ9GyGyGyGyGy7m 0, 0, 0, 0,iе=@%ix I`NkbsX#F'519`NkbsX#ŐL#Ǒ ͘BzcQ5Ȫ4dPna2]8 *HQ*/ G'7'7'7'7'7'7'7'7'7'7'7'7'7'7-d,1%&@DnQ %&>>>!fHYϤw?B -TD€<ey}AÎHfffffffffffffT A* (yPiCʃJTP҇<4A* (yPiCʃJTP܊zYe`JCntΒxz|QҘnst;1)N)/~<|0~@]n  Ķ9GyGyGyGyGy7m 0, 0, 0, 0,iе=@%ix I`NkbsX#F'519`NkbsX#ŐL#Ǒ ͘BzcQ5Ȫ4dPna2]8 *HQ*/ G'7'7'7'7'7'7'7'7'7'7'7'7'7'7-d,1%&@DnQ %&>>>!fHYϤw?B -TD€<ey}AÎHfffffffffffffT A* (yPiCʃJTP҇<4A* (yPiCʃJTP܊zYe`JCntΒxz|QҘnst;1)N)/~j92}k4lep5쀼"L1ku|7|7|.=z=+v'[ium.մV][Kium.մf=0PC 0PC 0PC 0d{.5kϼןy>^}y5kϼןy>^}Ԥ1~q&1N\ZZC0//////P~\ճ~~~~~ᄰ| Qq`|2qk4lep5쀼"L1ku|7|7|.=z=+v'[ium.մV][Kium.մf=0PC 0PC 0PC 0d{.5kϼןy>^}y5kϼןy>^}Ԥ1~q&1N\ZZC0//////P~\ճ~~~~~ᄰ| Qq`|2qx,-F nb^*E?-KMZTATAY]]\'[ium.մV][Kium.մۏs9q,-F nb^*E?-KMZTATAY]]\'[ium.մV][Kium.մۏs9q0Wۏs]dsEK Wۏs]dsEK M#P*1~qBL,,"Ƞ,P# z >bGA:Ȏu": Dt'YN#dGA:Ȏu": Dt'Yf+i#'U)!O WT`` Hl`^////// נ8"Ƞ,P# z >bGA:Ȏu": Dt'YN#dGA:Ȏu": Dt'Yf+i#'U)!O WT`` Hl`^////// נ8Z<_xP>?K`1)&PNQ&8Nk ______~1)&PNQ&8Nk ______~<1z<_xKiS1z<_xKiSx,-F nb^*E?-KMZTATAY]]\'[ium.մV][Kium.մۏs9q,-F nb^*E?-KMZTATAY]]\'[ium.մV][Kium.մۏs9q0Wۏs]dsEK Wۏs]dsEK <ۏsqdy"""""""""""""ۏsqdy"""""""""""""PP' d+3va&'MR5 " "}otu^R򗔼/)yK^R򗔼4P' d+3va&'MR5 " "}otu^R򗔼/)yK^R򗔼4~1ۏsqd|ۏsqd|9Z<_xP>Z<_xP><1z<_xKiS1z<_xKiSj92}k4lep5쀼"L1ku|7|7|.=z=+v'[ium.մV][Kium.մf=0PC 0PC 0PC 0d{.5kϼןy>^}y5kϼןy>^}Ԥ1~q&1N\ZZC0//////P~\ճ~~~~~ᄰ| Qq`|2qk4lep5쀼"L1ku|7|7|.=z=+v'[ium.մV][Kium.մf=0PC 0PC 0PC 0d{.5kϼןy>^}y5kϼןy>^}Ԥ1~q&1N\ZZC0//////P~\ճ~~~~~ᄰ| Qq`|2qx,-F nb^*E?-KMZTATAY]]\'[ium.մV][Kium.մۏs9q,-F nb^*E?-KMZTATAY]]\'[ium.մV][Kium.մۏs9q0Wۏs]dsEK Wۏs]dsEK M#P*1~qBL,,Z<_xP>?K`1)&PNQ&8Nk ______~1)&PNQ&8Nk ______~<1z<_xKiS1z<_xKiSx,-F nb^*E?-KMZTATAY]]\'[ium.մV][Kium.մۏs9q,-F nb^*E?-KMZTATAY]]\'[ium.մV][Kium.մۏs9q0Wۏs]dsEK Wۏs]dsEK <ۏsqdy"""""""""""""ۏsqdy"""""""""""""PP' d+3va&'MR5 " "}otu^R򗔼/)yK^R򗔼4P' d+3va&'MR5 " "}otu^R򗔼/)yK^R򗔼4~1ۏsqd|ۏsqd|9Z<_xP>Z<_xP><1z<_xKiS1z<_xKiS߹<-'V ƭOS'3Z'͸Hr&_7v9|;gM~|O>OW1իC53ꬔL6E[x,cD X]k}}I%f?B V^Jۏ'0(WۏH}20IP1̠d =Ş)qkii1rGՓDW#7fj⋥poupĀۏ'8Pmd}7#> a:/)yK^S$0Y9S)p3NDG.vrc$RR?miƷ؛ᇳ^ ڸ F "(_I?6'1L%;>PA1ȢWqwp @ fۏ'w0Z<_iw?IP1U;]j*Rŀ1z<_-iv <.X8sJzRwV!bw!bwV!bw!bb0VH}Q!^+rm4 '>`0a8 .TpN sF 1t)FJpfy)gdm_yͳrS6/IN = ^1!:0 xK0q=lg4`B8|B\!hP*Z'zJ^mq@WD!^ZR>(DV8e/(55XƱFX2HcRqcX^Q#U,kK$jŪȌݬP@GA]gG"3b9F-NGѥ3bJfgX9F#C k}an(&p1iw6GѤ(gJsC*1,v^Z{g:Zv4q!O* 0B8>VHZ >7+n!}^ o=XVmC3z ćgx1a[u ϣcy*¶oAGUlT%?}=5=Dx-u=Q_-u=Q_q%OxZz%&JG~ćd-xoZٓūx}|VX@b@7)мW,iH&cJA4/0R yXҐM 5rƔh^bIKLeCxd>Mg;su Dmr1TIkNӨ)nAȜ-P/sRݢ8[N^̥E"p@ϙKvDm:{2r$P}tAI!ӑ\NCJqG!ӑ\NCJqK9h;lp}S}>,p}SK9h;#tWRKӑ\N[ q XX@j- [GS U^J#~)*e/%BEkuߊd KPxo2QlZ|<7RT-nqLT[)*j@7~ǭp¶FD4p~` 0!EQ m/B&h,+n/Qza4CAg[vzУ  8? ۰ ^MYV݀Z~PN{1DYة(}se@3q6040G'NHN9!:rBt Ӓ$'NHN9, bEBEBEBEBEBEBEBEBEBEBEBEBEBEB9E6EuF1OTyH.oƅB~ĐZok@v8tZok@v8tZok@v8tZok@v8tZok@v8tZok@v8tZok@v8tZolDEA41 ĐUA3I䐎 Pi~0A8!I `$qqB@HK$) Ɨ IS#/2G_)$Ld.4HRH \i~0A8!I `$qqB@HK$) Ɨ IS"G /"ǃ^ 9m\A׬l~b|x5؅ z6!qǃ^ 9m\A׬l~b|x5؅ z6!qǃ^ 9m\A׬l~b|x5؅ z6!qǃ^ 9m\A׬l~b|x5؅ z6=Y姘Ty>Q7HTy>Q7HTy>Q7HTy>Q7HTy>Q7HTy>Q7HTy>Q7HTy>Q7HTy>Q7HTy>Q7HTy>Q7HTy>Q7HTy>Q7HTy>Q7HTy>Q7HTy>Q6";c6ʼn4V{Cp,Aw{L`SO*49 3|x8$O`woN;--}p9I-%n@#i%IJv Èb $xNqA7 4ZY;1^ \B+rܻ.˻rܻ/p7hm+O{wNA wA!N"}A!N"}A!N"}A!N"}A!N"}A!N"}A!` rx@!c`t_< vwA!c`t_< vwA!c`t_< vwA!c`t'txЈ}&@1,C qոVQոXqոXոQc q# q;GtV!Lw.B][; wAun2d'OոN qMbXւ7 .QQQQQM5Կ Bp'$g$ʲŬZŬZŬZŬZŬ5O{~D|g Z!Tu:ei))f8᤬{wns(Y1˪P#ܺ?˪P#ܺ?˪P#ܺ?˪P#ܺ?˪P#ܺ?˪P#ܺ?˪P#~N9|4Q_' r>(hCEO(|PG/↊9|4Q_' r>(hCEO(|PG/e)[][m]WA6.gU{˪=tlqyu]B+rܻ.˻rܻ/p7hm+O{wNA wA!N"}A!N"}A!N"}A!N"}A!N"}A!N"}A!` rx@!c`t_< vwA!c`t_< vwA!c`t_< vwA!c`t'txЈ}&@1,C qոVQոXqոXոQc q# q;GtV!Lw.B][; wAun2d'OոN qMbXւ7 .QQQQQM5Կ Bp'$g$ʲŬZŬZŬZŬZŬ5O{~D|g Z!Tu:ei))f8᤬{wns(Y1˪P#ܺ?˪P#ܺ?˪P#ܺ?˪P#ܺ?˪P#ܺ?˪P#ܺ?˪P#~N9|4Q_' r>(hCEO(|PG/↊9|4Q_' r>(hCEO(|PG/e)[][m]WA6.gU{˪=tlqyu]1OTZj&G7_d'#=T>3/////~~~~~~~C٠1~q}&8S }ʼnU QR>1OTZj&G7_d'#=T>3/////~~~~~~~C^/ko1Oz FF<7.$czGG x/dV\e+)YJVRe+)W_D ^LoG뾑6华QfFІڗ\0bR\1B=G#Oe'dqI8YR{,)=G#Oe' i,wAuj(((((((((((((fui"s%Y PN5xDboohφ°ա͇yŞ8W|cay)yK^R򗔼/)yK^R4%v1Oz FF<7.$czGG x/dV\e+)YJVRe+)W_D ^LoG뾑6华QfFІڗ\0bR\1B=G#Oe'dqI8YR{,)=G#Oe' i,wAuj(((((((((((((fui"s%Y PN5xDboohφ°ա͇yŞ8W|cay)yK^R򗔼/)yK^R4%v̿r2 '1~m&8S }ʼnU QL.1O(&0Q )&-vuێ w_ QL..K^'1~m&8S }ʼnU QL.1O(&0Q )&-vuێ w_ QL..K^W?J1)&8S }ʼnU 1)&8S }ʼnU ?YTf/1~v &sR򗔼/)yK^R򗔼Cv H6EvbcM#H!^W1O~q&d_O`񚫋_____ /1~v &sR򗔼/)yK^R򗔼Cv H6EvbcM#H!^W1O~q&d_O`񚫋_____ E(1~q}&8S }ʼnU QR>1OTZj&G7_d'#=T>3/////~~~~~~~C٠1~q}&8S }ʼnU QR>1OTZj&G7_d'#=T>3/////~~~~~~~C̿r2 '1~m&8S }ʼnU QL.1O(&0Q )&-vuێ w_ QL..K^'1~m&8S }ʼnU QL.1O(&0Q )&-vuێ w_ QL..K^W?J1)&8S }ʼnU 1)&8S }ʼnU j_񿿦 1OzoC7.$czGG x/d޶S3,TAdIVo"XE}a-[o"XE-(CAX nQր4u:]Чx@Ii #ҕ̂D caLt)1C0:fA ˜!S3 caLt)W84wQʍThG;F;F;F;gMDŽ>1OTZj&G7_d'#=T>3/////~~~~~~~C٠1~q}&8S }ʼnU QR>1OTZj&G7_d'#=T>3/////~~~~~~~C^/ko1Oz FF<7.$czGG x/dV\e+)YJVRe+)W_D ^LoG뾑6华QfFІڗ\0bR\1B=G#Oe'dqI8YR{,)=G#Oe' i,wAuj(((((((((((((fui"s%Y PN5xDboohφ°ա͇yŞ8W|cay)yK^R򗔼/)yK^R4%v1Oz FF<7.$czGG x/dV\e+)YJVRe+)W_D ^LoG뾑6华QfFІڗ\0bR\1B=G#Oe'dqI8YR{,)=G#Oe' i,wAuj(((((((((((((fui"s%Y PN5xDboohφ°ա͇yŞ8W|cay)yK^R򗔼/)yK^R4%v̿r2 '1~m&8S }ʼnU QL.1O(&0Q )&-vuێ w_ QL..K^'1~m&8S }ʼnU QL.1O(&0Q )&-vuێ w_ QL..K^W?J1)&8S }ʼnU 1)&8S }ʼnU ?YTf/1~v &sR򗔼/)yK^R򗔼Cv H6EvbcM#H!^W1O~q&d_O`񚫋_____ /1~v &sR򗔼/)yK^R򗔼Cv H6EvbcM#H!^W1O~q&d_O`񚫋_____ E(1~q}&8S }ʼnU QR>1OTZj&G7_d'#=T>3/////~~~~~~~C٠1~q}&8S }ʼnU QR>1OTZj&G7_d'#=T>3/////~~~~~~~C̿r2 '1~m&8S }ʼnU QL.1O(&0Q )&-vuێ w_ QL..K^'1~m&8S }ʼnU QL.1O(&0Q )&-vuێ w_ QL..K^W?J1)&8S }ʼnU 1)&8S }ʼnU d=}χoojoZpTH`ܒm N%3)G/GynR8WQGWf{8hV t%A\@RydTcoԒ. bT"gu1QѢP}afz ?M_# TWi-؄uoux? ?AoO!W0 H1KFѯ;S讼QiJXlUn&@ b'S3 T.(`K5;E4+=DŽ>yP;T1LSw> \jg4 E'Mm`x wj4N pj2|?Y/1ϹjMZ]( ŻRf\1OjM$|RUn1jف{ MYZBP1ϽjM_HK~Ҝ>1Nh_׫ڐ*~ '_H1K[l5zE|6.mJOW+FDihM[m]V9{JfiTwm#'X NCgz0÷4sٻ#AǿYh'1FjM_HK~1OljM$|\N~~R]  aN1ƒjM_8.cx`_z 2sX8aUfnFX7<"/X7"/FX7<"/X7"/' S\TV^; P} _<|u_N'xk 5#VV I p 2u7N|@X: '\}'x>HB_Y@W`o0H2d}$Y{ F a^&GтE~`f/d}$Y{ F a\WqÁpUV`hz$-*/^B3]~E21w3!}X#;%̇^ Qcs2{ EB3]~E2F;gux&pìjڢ.}^ 0ڶsF~Wg :6Gџ jgux&pìjڐ/}^ 0ڶSF~Wg :6џ o& AA@PvY:5xcb|^'aŘ>9CWqf;{'@PvY:5xcb|^'aŘ>9CWqf;ji:mwHYM[yJq) !x 5S#3EBkGЦFg$|0֏LuI aB/@Z>03=^$/ᆴ} `f{H^7 hTZIyLoOdKӑgj®rp:r>XU@q.NGџ#9 2%3g5aW9D9F|* 8ȗ#ϑՅ\t}3"\>0 ap|`l Tb{\koVc[|b4ƶi5+M11Zimqlfab(d?dY NeA8o_Ab z D@N j%XEBq޾Q*B*6V*PAJP }畔/LA[Wh:i ':u#VBsZtup´nr_#H+sֿ:aZB9 ίkQפu Nu~_zG\0![Wi} f`cģ8l5o#Q`6eT|7(0 z>x| YC vL^ꏆ;%&aVPGy׫(zἎljGɀpk;8o9gЬP@ xnrgX /BAA1=^`c+s{< Lj V,yz Y+ 1[V( <;k5Z#˿멻EZvC9yI?}n':$O uIt<''xOOG[>I=ZIV3;XUp'hYN\ SWvaUe;XUp'hYN\ SWvaUe;XUp'hYN\ SWvaUe;XUp'hYN\ S K2r{w)BozNkT˜^S rayN[/)pY9n 0-f,^S rayN[/)p\'{Idg\zW# Z^ը¼oWjޭFzCVj0$G7Qxޯ"?PեZ+x / a^7H5ixoV ^D~KzW# Z^ը¼oWjޭFzCVj0$G7Qxޯ"?PեZ+x / a^7H5ixoV PԮ]ҵl^P~iAuy"VқO4V :<+k:y9dhiAuy"[O4V :<.#zg4V :<.";4V :<-BiAuy"[<Ӂ[Duy9n1Nnry '\% Sp+sxpH)NiAuy"Z99j [ssVݣz$~FHF[ ([ Uc'_? fZEYhO2q}veUc'_? fZEYhO2q}veUc'_? fZEYhO2q}veUc'_? fZEYhO2q}veUc'_? fZEYhO2q}veUc'_? fZEYhO2q}veUc'_? fZEYi2KgN\W]`"#:[K[ɰ~8η얟Q}m.Q`U]C}m.L>,2LAFudHjx& #:[KS$5 qo)ņ^ 8η C/dg[ivJdab23%2CP1]!|Xe}m.L>,2LAFudHj/ZN.rH?Ɲ̥+f_{^wggZIWX&`gfFDL⽤3ZA{eRӁ[:Z?Ao[ Gz{ ~Ml1O]̠c`#yxjڇ˜˜˜˜ˠ}3|pK;'_Kk?s w?s w?s w?s w?s w?BnPkQL uSwu]E07yQL uSwu]E07yQL uSwu]E07yQL uSwt8i*#)= ,X8g`^ Ux3/qV?X8g`^ ʫ'`VI\${W=+D~JQ%sߨI\${W=+D~JQ4pPcq᧠wŠwŠwŠwŠwŠwŠwŠwŠwŠwŠwŠwŠwŠwŠ-Ige B_Idg+HP#}i=4OM,j 'bWKIؕƨ v%}7.4_M,j 'bWKIؕƨ v%}7.4_M,j 'bWKIؕƨ v%}7.4_M,j}1ϗ{$HgrCLh(W6Kw 7pw 7pw 7vvzW+,og g:t-[9жslB΅ e`lw\Z^5V z8kե^/ixp׫KÆZ^5V z8kե^/ }T.$Bd:<_z/=~E?_z/=KT ִp'hTON ۆ E4 ;B̠2~ݡf73=Bof{v 1 cx3۴,&ghYLnгݡf73=Bof{vWd1O]̠c`#yxjڇ˜˜˜˜ˠ}3|pK;'_Kk?s w?s w?s w?s w?s w?BnPkQL uSwu]E07yQL uSwu]E07yQL uSwu]E07yQL uSwt8i*#)= ,X8g`^ Ux3/qV?X8g`^ ʫ'`VI\${W=+D~JQ%sߨI\${W=+D~JQ4pPcq᧠wŠwŠwŠwŠwŠwŠwŠwŠwŠwŠwŠwŠwŠwŠ-Ige B_Idg+HP#}i=4OM,j 'bWKIؕƨ v%}7.4_M,j 'bWKIؕƨ v%}7.4_M,j 'bWKIؕƨ v%}7.4_M,j}1ϗ{$HgrCLh(W6Kw 7pw 7pw 7vvzW+,og g:t-[9жslB΅ e`lw\Z^5V z8kե^/ixp׫KÆZ^5V z8kե^/ }T.$Bd:<_z/=~E?_z/=KT ִp'hTON ۆ E4 ;B̠2~ݡf73=Bof{v 1 cx3۴,&ghYLnгݡf73=Bof{vWdYw/1~~CmL@]Yǁڞ=Oj{SڞX3%5BvAT6׆>tj :D @ Q$OzR 40Xi))?@cUÒR?|ZXqkXlXqqoZ޵k z, XW-p1O%&@[*3qp (hġ"KxBƆ ͌mdSɰ>*>*>*>*Jco>r;w)SyN;w.(|iRƨ/ w컂v]|.]p_.˸/e˲ w컂v]|/~*/1~~CmL@]Yǁڞ=Oj{SڞX3%5BvAT6׆>tj :D @ Q$OzR 40Xi))?@cUÒR?|ZXqkXlXqqoZ޵k z, XW-p1O%&@[*3qp (hġ"KxBƆ ͌mdSɰ>*>*>*>*Jco>r;w)SyN;w.(|iRƨ/ w컂v]|.]p_.˸/e˲ w컂v]|/~*>gZE3صyTV@2'1O~o&8SỲP #~~~~~~)>~~~~~~~ p)*#)Y%Gx\# XfX;s1OLh u9#>1O~o&8SỲP #~~~~~~)>~~~~~~~ p)*#)Y%Gx\# XfX;sW0%s1~z[֤I`@.ÒM`#lz!&O0zQOL7ptc:$vcFy<T!(<N;≑x|<'$QyŊcBFFNERi<#'V dPb01 1~z[֤I`@.ÒM`#lz!&O0zQOL7ptc:$vcFy<T!(<N;≑x|<'$QyŊcBFFNERi<#'V dPb01 wS;1O]czG+1(&1@ CsX-7|C0//////_______`_rnA@g<^--l1O]czG+1(&1@ CsX-7|C0//////_______`_rnA@g<^--lx1OmqZZ&G7bFx1OmqZZ&G7bF>gZE3صyTV@2'1O~o&8SỲP #~~~~~~)>~~~~~~~ p)*#)Y%Gx\# XfX;s1OLh u9#>1O~o&8SỲP #~~~~~~)>~~~~~~~ p)*#)Y%Gx\# XfX;swS;1O]czG+1(&1@ CsX-7|C0//////_______`_rnA@g<^--l1O]czG+1(&1@ CsX-7|C0//////_______`_rnA@g<^--lx1OmqZZ&G7bFx1OmqZZ&G7bFYw/1~~CmL@]Yǁڞ=Oj{SڞX3%5BvAT6׆>tj :D @ Q$OzR 40Xi))?@cUÒR?|ZXqkXlXqqoZ޵k z, XW-p1O%&@[*3qp (hġ"KxBƆ ͌mdSɰ>*>*>*>*Jco>r;w)SyN;w.(|iRƨ/ w컂v]|.]p_.˸/e˲ w컂v]|/~*/1~~CmL@]Yǁڞ=Oj{SڞX3%5BvAT6׆>tj :D @ Q$OzR 40Xi))?@cUÒR?|ZXqkXlXqqoZ޵k z, XW-p1O%&@[*3qp (hġ"KxBƆ ͌mdSɰ>*>*>*>*Jco>r;w)SyN;w.(|iRƨ/ w컂v]|.]p_.˸/e˲ w컂v]|/~*>gZE3صyTV@2'1O~o&8SỲP #~~~~~~)>~~~~~~~ p)*#)Y%Gx\# XfX;s1OLh u9#>1O~o&8SỲP #~~~~~~)>~~~~~~~ p)*#)Y%Gx\# XfX;sW0%s1~z[֤I`@.ÒM`#lz!&O0zQOL7ptc:$vcFy<T!(<N;≑x|<'$QyŊcBFFNERi<#'V dPb01 1~z[֤I`@.ÒM`#lz!&O0zQOL7ptc:$vcFy<T!(<N;≑x|<'$QyŊcBFFNERi<#'V dPb01 wS;1O]czG+1(&1@ CsX-7|C0//////_______`_rnA@g<^--l1O]czG+1(&1@ CsX-7|C0//////_______`_rnA@g<^--lx1OmqZZ&G7bFx1OmqZZ&G7bF>gZE3صyTV@2'1O~o&8SỲP #~~~~~~)>~~~~~~~ p)*#)Y%Gx\# XfX;s1OLh u9#>1O~o&8SỲP #~~~~~~)>~~~~~~~ p)*#)Y%Gx\# XfX;swS;1O]czG+1(&1@ CsX-7|C0//////_______`_rnA@g<^--l1O]czG+1(&1@ CsX-7|C0//////_______`_rnA@g<^--lx1OmqZZ&G7bFx1OmqZZ&G7bFߡ!RR9Ya9h%N!YfoF-6xd]HzVfj:S0b C˟U;gU ( ͥRUz]H|.x"o.*s KOepI|g\~==J]d6E(Ht!"/1L'|YUӟMShc-R"T * *t|I YSqh$E;t*xϤ1G +g߰$]χVEXq4= MҼ<5D!'Lz>Sص/do aq 1O jM_H |f_+t///kJhQPDVʬcC&1̢+ߟIzV(=znW" h\shJ[3U.xCi<j̓,ז.$S?1NqW51,3V1ljM_V2p!y qP fd///uQrufAP׻px1NL_׫glymur-0.9.1/tests/data/issue186_progression_order.txt000066400000000000000000000015121360775562100231030ustar00rootroot00000000000000COD marker segment @ (174, 12) Coding style: Entropy coder, without partitions SOP marker segments: False EPH marker segments: False Coding style parameters: Progression order: 33 (invalid) Number of layers: 1 Multiple component transformation usage: reversible Number of decomposition levels: 5 Code block height, width: (32 x 32) Wavelet transform: 9-7 irreversible Precinct size: (32768, 32768) Code block context: Selective arithmetic coding bypass: False Reset context probabilities on coding pass boundaries: False Termination on each coding pass: False Vertically stripe causal context: False Predictable termination: False Segmentation symbols: False glymur-0.9.1/tests/data/issue392.jp2000066400000000000000000000006361360775562100171370ustar00rootroot00000000000000 jP ftypjp2 jp2 [jp2hihdr  bpcccolr"cdef#jp2cOQ2 R \@(008008008008008d%Created by OpenJPEG version 2.1.0 π Á @O R :׀ <F"P|>b.=4Yٞ =4Yٞ _)@W֡)@gglymur-0.9.1/tests/data/issue396.jp2000066400000000000000000000006241360775562100171400ustar00rootroot00000000000000 jP ftypjpjp2 Ojp2hihdr colr"cdejp2cOQ) ""t uOuOuOuOuOuOuOuOuOuOuOuglymur-0.9.1/tests/data/issue398.dat000066400000000000000000000005741360775562100172230ustar00rootroot00000000000000|uuidK=KCզII*    4 #  mtr@@TXAWGS 84|@i1lC?@@<ȃ?jqD& K@glymur-0.9.1/tests/data/issue405.dat000066400000000000000000000001201360775562100171730ustar00rootroot00000000000000Pcolr@??֊?glymur-0.9.1/tests/data/issue438.jp2000066400000000000000000000011611360775562100171320ustar00rootroot00000000000000 jP ftypjp2 jp2 Yjp2hihdr Jcolrres resdKKrescKKjp2cOQ)J J R \#"wLwvoongLgLgdPPPEWWWadKakadu-v4.3.2dYKdu-Layer-Info: log_2{Delta-D(MSE)/[2^6*Delta-L(bytes)]}, Lbytes) -54.8, 5.0e+002  ϰUq  ,{]6 0 %l ƪ  \D7ψ|- px>l;1{VK:ZiG!kY vzۢ7Ӽ'ـWs ]YhI4@]_vǮ'(xڷϧۋE*^ɤ%8EhjTL`73V~U /ʤ5O!^Kjכϗ1NS϶PG`Ex*nMsj1 glymur-0.9.1/tests/data/multiple_precinct_size.txt000066400000000000000000000015601360775562100224460ustar00rootroot00000000000000COD marker segment @ (51, 18) Coding style: Entropy coder, with partitions SOP marker segments: False EPH marker segments: False Coding style parameters: Progression order: LRCP Number of layers: 1 Multiple component transformation usage: reversible Number of decomposition levels: 5 Code block height, width: (64 x 64) Wavelet transform: 5-3 reversible Precinct size: ((16, 16), (32, 32), (64, 64), (128, 128), (128, 128), (128, 128)) Code block context: Selective arithmetic coding bypass: False Reset context probabilities on coding pass boundaries: False Termination on each coding pass: False Vertically stripe causal context: False Predictable termination: False Segmentation symbols: False glymur-0.9.1/tests/data/nemo.txt000066400000000000000000000171341360775562100166340ustar00rootroot00000000000000JPEG 2000 Signature Box (jP ) @ (0, 12) Signature: 0d0a870a File Type Box (ftyp) @ (12, 20) Brand: jp2 Compatibility: ['jp2 '] JP2 Header Box (jp2h) @ (32, 45) Image Header Box (ihdr) @ (40, 22) Size: [1456 2592 3] Bitdepth: 8 Signed: False Compression: wavelet Colorspace Unknown: False Colour Specification Box (colr) @ (62, 15) Method: enumerated colorspace Precedence: 0 Colorspace: sRGB UUID Box (uuid) @ (77, 3146) UUID: be7acfcb-97a9-42e8-9c71-999491e3afac (XMP) UUID Data: Google 2013-02-09T14:47:53 1 72/1 72/1 2 HTC HTC Glacier 2592 1456 8 8 8 2 3 1343036288/4294967295 1413044224/4294967295 2748779008/4294967295 1417339264/4294967295 1288490240/4294967295 2576980480/4294967295 644245120/4294967295 257698032/4294967295 1 2528 1424 353/100 0 0/1 WGS-84 2013-02-09T14:47:53 76 0220 0100 1 2 3 0 42,20.56N 71,5.29W 2013-02-09T19:47:53Z NETWORK 2013-02-09T14:47:53 Glymur Python XMP Toolkit Contiguous Codestream Box (jp2c) @ (3223, 1132296) SOC marker segment @ (3231, 0) SIZ marker segment @ (3233, 47) Profile: no profile Reference Grid Height, Width: (1456 x 2592) Vertical, Horizontal Reference Grid Offset: (0 x 0) Reference Tile Height, Width: (1456 x 2592) Vertical, Horizontal Reference Tile Offset: (0 x 0) Bitdepth: (8, 8, 8) Signed: (False, False, False) Vertical, Horizontal Subsampling: ((1, 1), (1, 1), (1, 1)) COD marker segment @ (3282, 12) Coding style: Entropy coder, without partitions SOP marker segments: False EPH marker segments: False Coding style parameters: Progression order: LRCP Number of layers: 2 Multiple component transformation usage: reversible Number of decomposition levels: 1 Code block height, width: (64 x 64) Wavelet transform: 5-3 reversible Precinct size: (32768, 32768) Code block context: Selective arithmetic coding bypass: False Reset context probabilities on coding pass boundaries: False Termination on each coding pass: False Vertically stripe causal context: False Predictable termination: False Segmentation symbols: False QCD marker segment @ (3296, 7) Quantization style: no quantization, 2 guard bits Step size: [(0, 8), (0, 9), (0, 9), (0, 10)] CME marker segment @ (3305, 37) "Created by OpenJPEG version 2.0.0" SOT marker segment @ (3344, 10) Tile part index: 0 Tile part length: 1132173 Tile part instance: 0 Number of tile parts: 1 COC marker segment @ (3356, 9) Associated component: 1 Coding style for this component: Entropy coder, PARTITION = 0 Coding style parameters: Number of decomposition levels: 1 Code block height, width: (64 x 64) Wavelet transform: 5-3 reversible Precinct size: (32768, 32768) Code block context: Selective arithmetic coding bypass: False Reset context probabilities on coding pass boundaries: False Termination on each coding pass: False Vertically stripe causal context: False Predictable termination: False Segmentation symbols: False QCC marker segment @ (3367, 8) Associated Component: 1 Quantization style: no quantization, 2 guard bits Step size: [(0, 8), (0, 9), (0, 9), (0, 10)] COC marker segment @ (3377, 9) Associated component: 2 Coding style for this component: Entropy coder, PARTITION = 0 Coding style parameters: Number of decomposition levels: 1 Code block height, width: (64 x 64) Wavelet transform: 5-3 reversible Precinct size: (32768, 32768) Code block context: Selective arithmetic coding bypass: False Reset context probabilities on coding pass boundaries: False Termination on each coding pass: False Vertically stripe causal context: False Predictable termination: False Segmentation symbols: False QCC marker segment @ (3388, 8) Associated Component: 2 Quantization style: no quantization, 2 guard bits Step size: [(0, 8), (0, 9), (0, 9), (0, 10)] SOD marker segment @ (3398, 0) EOC marker segment @ (1135517, 0) glymur-0.9.1/tests/data/nemo_dump_no_codestream.txt000066400000000000000000000100061360775562100225520ustar00rootroot00000000000000JPEG 2000 Signature Box (jP ) @ (0, 12) Signature: 0d0a870a File Type Box (ftyp) @ (12, 20) Brand: jp2 Compatibility: ['jp2 '] JP2 Header Box (jp2h) @ (32, 45) Image Header Box (ihdr) @ (40, 22) Size: [1456 2592 3] Bitdepth: 8 Signed: False Compression: wavelet Colorspace Unknown: False Colour Specification Box (colr) @ (62, 15) Method: enumerated colorspace Precedence: 0 Colorspace: sRGB UUID Box (uuid) @ (77, 3146) UUID: be7acfcb-97a9-42e8-9c71-999491e3afac (XMP) UUID Data: Google 2013-02-09T14:47:53 1 72/1 72/1 2 HTC HTC Glacier 2592 1456 8 8 8 2 3 1343036288/4294967295 1413044224/4294967295 2748779008/4294967295 1417339264/4294967295 1288490240/4294967295 2576980480/4294967295 644245120/4294967295 257698032/4294967295 1 2528 1424 353/100 0 0/1 WGS-84 2013-02-09T14:47:53 76 0220 0100 1 2 3 0 42,20.56N 71,5.29W 2013-02-09T19:47:53Z NETWORK 2013-02-09T14:47:53 Glymur Python XMP Toolkit Contiguous Codestream Box (jp2c) @ (3223, 1132296)glymur-0.9.1/tests/data/nemo_dump_no_codestream_no_xml.txt000066400000000000000000000011561360775562100241340ustar00rootroot00000000000000JPEG 2000 Signature Box (jP ) @ (0, 12) Signature: 0d0a870a File Type Box (ftyp) @ (12, 20) Brand: jp2 Compatibility: ['jp2 '] JP2 Header Box (jp2h) @ (32, 45) Image Header Box (ihdr) @ (40, 22) Size: [1456 2592 3] Bitdepth: 8 Signed: False Compression: wavelet Colorspace Unknown: False Colour Specification Box (colr) @ (62, 15) Method: enumerated colorspace Precedence: 0 Colorspace: sRGB UUID Box (uuid) @ (77, 3146) UUID: be7acfcb-97a9-42e8-9c71-999491e3afac (XMP) Contiguous Codestream Box (jp2c) @ (3223, 1132296) glymur-0.9.1/tests/data/nemo_dump_no_xml.txt000066400000000000000000000042641360775562100212350ustar00rootroot00000000000000JPEG 2000 Signature Box (jP ) @ (0, 12) Signature: 0d0a870a File Type Box (ftyp) @ (12, 20) Brand: jp2 Compatibility: ['jp2 '] JP2 Header Box (jp2h) @ (32, 45) Image Header Box (ihdr) @ (40, 22) Size: [1456 2592 3] Bitdepth: 8 Signed: False Compression: wavelet Colorspace Unknown: False Colour Specification Box (colr) @ (62, 15) Method: enumerated colorspace Precedence: 0 Colorspace: sRGB UUID Box (uuid) @ (77, 3146) UUID: be7acfcb-97a9-42e8-9c71-999491e3afac (XMP) Contiguous Codestream Box (jp2c) @ (3223, 1132296) SOC marker segment @ (3231, 0) SIZ marker segment @ (3233, 47) Profile: no profile Reference Grid Height, Width: (1456 x 2592) Vertical, Horizontal Reference Grid Offset: (0 x 0) Reference Tile Height, Width: (1456 x 2592) Vertical, Horizontal Reference Tile Offset: (0 x 0) Bitdepth: (8, 8, 8) Signed: (False, False, False) Vertical, Horizontal Subsampling: ((1, 1), (1, 1), (1, 1)) COD marker segment @ (3282, 12) Coding style: Entropy coder, without partitions SOP marker segments: False EPH marker segments: False Coding style parameters: Progression order: LRCP Number of layers: 2 Multiple component transformation usage: reversible Number of decomposition levels: 1 Code block height, width: (64 x 64) Wavelet transform: 5-3 reversible Precinct size: (32768, 32768) Code block context: Selective arithmetic coding bypass: False Reset context probabilities on coding pass boundaries: False Termination on each coding pass: False Vertically stripe causal context: False Predictable termination: False Segmentation symbols: False QCD marker segment @ (3296, 7) Quantization style: no quantization, 2 guard bits Step size: [(0, 8), (0, 9), (0, 9), (0, 10)] CME marker segment @ (3305, 37) "Created by OpenJPEG version 2.0.0" glymur-0.9.1/tests/data/nemo_dump_short.txt000066400000000000000000000004201360775562100210660ustar00rootroot00000000000000JPEG 2000 Signature Box (jP ) @ (0, 12) File Type Box (ftyp) @ (12, 20) JP2 Header Box (jp2h) @ (32, 45) Image Header Box (ihdr) @ (40, 22) Colour Specification Box (colr) @ (62, 15) UUID Box (uuid) @ (77, 3146) Contiguous Codestream Box (jp2c) @ (3223, 1132296) glymur-0.9.1/tests/data/nemo_with_codestream_header.txt000066400000000000000000000131141360775562100233770ustar00rootroot00000000000000JPEG 2000 Signature Box (jP ) @ (0, 12) Signature: 0d0a870a File Type Box (ftyp) @ (12, 20) Brand: jp2 Compatibility: ['jp2 '] JP2 Header Box (jp2h) @ (32, 45) Image Header Box (ihdr) @ (40, 22) Size: [1456 2592 3] Bitdepth: 8 Signed: False Compression: wavelet Colorspace Unknown: False Colour Specification Box (colr) @ (62, 15) Method: enumerated colorspace Precedence: 0 Colorspace: sRGB UUID Box (uuid) @ (77, 3146) UUID: be7acfcb-97a9-42e8-9c71-999491e3afac (XMP) UUID Data: Google 2013-02-09T14:47:53 1 72/1 72/1 2 HTC HTC Glacier 2592 1456 8 8 8 2 3 1343036288/4294967295 1413044224/4294967295 2748779008/4294967295 1417339264/4294967295 1288490240/4294967295 2576980480/4294967295 644245120/4294967295 257698032/4294967295 1 2528 1424 353/100 0 0/1 WGS-84 2013-02-09T14:47:53 76 0220 0100 1 2 3 0 42,20.56N 71,5.29W 2013-02-09T19:47:53Z NETWORK 2013-02-09T14:47:53 Glymur Python XMP Toolkit Contiguous Codestream Box (jp2c) @ (3223, 1132296) SOC marker segment @ (3231, 0) SIZ marker segment @ (3233, 47) Profile: no profile Reference Grid Height, Width: (1456 x 2592) Vertical, Horizontal Reference Grid Offset: (0 x 0) Reference Tile Height, Width: (1456 x 2592) Vertical, Horizontal Reference Tile Offset: (0 x 0) Bitdepth: (8, 8, 8) Signed: (False, False, False) Vertical, Horizontal Subsampling: ((1, 1), (1, 1), (1, 1)) COD marker segment @ (3282, 12) Coding style: Entropy coder, without partitions SOP marker segments: False EPH marker segments: False Coding style parameters: Progression order: LRCP Number of layers: 2 Multiple component transformation usage: reversible Number of decomposition levels: 1 Code block height, width: (64 x 64) Wavelet transform: 5-3 reversible Precinct size: (32768, 32768) Code block context: Selective arithmetic coding bypass: False Reset context probabilities on coding pass boundaries: False Termination on each coding pass: False Vertically stripe causal context: False Predictable termination: False Segmentation symbols: False QCD marker segment @ (3296, 7) Quantization style: no quantization, 2 guard bits Step size: [(0, 8), (0, 9), (0, 9), (0, 10)] CME marker segment @ (3305, 37) "Created by OpenJPEG version 2.0.0" glymur-0.9.1/tests/data/nemo_xmp_box.txt000066400000000000000000000067521360775562100203740ustar00rootroot00000000000000UUID Box (uuid) @ (77, 3146) UUID: be7acfcb-97a9-42e8-9c71-999491e3afac (XMP) UUID Data: Google 2013-02-09T14:47:53 1 72/1 72/1 2 HTC HTC Glacier 2592 1456 8 8 8 2 3 1343036288/4294967295 1413044224/4294967295 2748779008/4294967295 1417339264/4294967295 1288490240/4294967295 2576980480/4294967295 644245120/4294967295 257698032/4294967295 1 2528 1424 353/100 0 0/1 WGS-84 2013-02-09T14:47:53 76 0220 0100 1 2 3 0 42,20.56N 71,5.29W 2013-02-09T19:47:53Z NETWORK 2013-02-09T14:47:53 Glymur Python XMP Toolkit glymur-0.9.1/tests/data/p0_02.j2k000066400000000000000000000140471360775562100163650ustar00rootroot00000000000000OQ)~~R 4S 4\ `@HHPHHPHHPd-Creator: AV-J2K (c) 2000,2001 Algo Vision0 ϊG/#sʄ4Nҩ3̶uh|qM8nKK;Ь8ԀS z)i9?fn'-d8Mݬx0A3r{;^ XQtWA=7"),֑D* ݍWMMHmm`TDBbA _76XyyY Ν͡B2x&'lIv - Ex ܚ|3M}l \;@ 6~$гbP!Yf@gʥBz~q;ńj]md 3K9"gl@0/7Z_q[T3y[o[1XYf Q,.UCPx$';`A_N / >tʑQ EMJ €mL#kшnL*a<'.7eLAYƣ:gH֐ʸHUD!MK*ɺ8|˞U:+EojL8/39PU>{}QR7Y;*1>DJvR e2.iĩ\ x# qeJgCJq93!G-"9FN!  {/7)f3yQ;5 p@ T 1|ͼc2^{[N;kJɂF(}%P *rw+8bL KC/#*I=VfUB(l5Q;^J7cZ`Д5t[) P-Ē4^BB]x8xĶc$y14 B H^SQ&3C { ~2!+\{b8:j1r`Rѕ"͋EMu۵{-6.#ebY^rm`Fpp_PFYfl?v;@MiPy.B;E,cJO 1FhM-* 2nCKLU.jRUwkz|@B:9 ˷1UdZ8߁xghY 2i!u̬ JTnz*ڦOn=DM;ˌ̱G{. ß7j1'X7^6Yai@{?W )_L>0zq"{⽖=s(~s:׭o."x!ʥKK//e+)v#c ɇe+L(|y_JAkcB;0L9 BJ+)[r9F Qp\a I@_]sqnƒ@i"Pْ~g-lf }u~j RzgE؅kB#1Z;Ռ' Wї?,B"f9A hE:? {\KUGY}r!l{@[1ʅ) {VQo 'A4tx+q(Cwah:X%{ .<ϧwY\QSkyi(|iwiO~ky&'N8}-tHc>Ț ޥOuGф.:I qabTm8~,hTտ!}eE]/sa O 8<7[ӫf #4gu`Q8\eRRqCLuSh~Ip(?Gm#r|ʡh<1|Pvs-:$?ɥ{YZG;zAL6(( z$<] 29U9D\*|'$Z]t"CԜZ dҋΑs6$-Hw{*=tӥe1*Ny]8$klTB- #wDW<| daJ1GW6]쨻+ȉ3 A(sB9`RY<_Rք;f, < ҟXX PRGLYNbB9b#3]8\U"l ?s54A}62R9EH,:o{=()x"O q1,OCEΚ$AN/ =/z Y= у| jpj-+&PN5 s< ;Kbw_=fu(I0156ò=j-ocƛ-^/@ͥM Wwi$rj-.g-]4jHw.ePQœp:9Zrey[I2!}u{/si-jıȿB]bM"cMbPedڏaM*3; [n*.y+*lC]/kòPE>1o/U=ٍ2²34oS4"N'F҆(Qmbj*%:jaݞL]Qoh!A&=쏡9ZOj\&X_ͩܿg-%ܧ#9%yecb'_G@j _xK*^a]q}B$YyȧK兌_Sߟd17XFky(*3ȵ0 /|^Efݞ0M..ȕqy`]ךSR#|mI$x}yOu]ЈIL Ms4RG w]{hL换e}z؉ 7hѻVUtZ%?D:M|^Blq4cIv-`wqB"J6s5#v:؏\/voVKDCns\7WEA_:t<oyl6y4G}4^izSTk8N%4AiDBDBz^@yNto(}S೐y6dU.ThDƸZ";FҎ "/|\]H,x9qʋ\¾suv\¶LUN2Dv 2!x|{6N'SVH(.UWۃzk٠E) k" ^A|˱qJ^Gع>*R9E ,_^ y1k?973^ љʢϴÅU%xק"T\~ 8q>&e~LbAtKEribZ DXل@ GkV鳣TA5{آÉo6t9Mx.Yɉ.#8@RUă/ ],`74/Z(CU Ԛ ;θSvhէe.cQshc#4I@,1?18 J+sje'[#cˌK,IfdKh =Tz[bWeh;o$* ,ԎT# }{CQ̅ւYtqMwIcr<lkm"tQ= BQiVf+J},ɲ%ll/!'4!v_}g1vVJy]H(gW dMurU!n[[8,:1> YnP2U%`tmU R@49&TssXO :-G甆hF+gApwgƋuul֢g'1eU*1;e$ =燁.0"{nQzaڟ6, ]hStFe$u iVj=M IZ1"1=kP3HL]tS+9e#ι2)}"ך{w967(Dۈ=S (cJƔpQg4=0Vnv'*":((Y -.ðtH6矉-[mOvKk}{O_͸vv-!bQ0e_?%;@lf橻EGj-A=m+V6A‰ͲJ7ЁAjb*45|wՀ0!;06-wKD%vWnK.?"A¢nv5%>ZJ*62 `7[ќW|i&t-TZLy=D2Y|0Cm+G "дc/{mSOT6+--:6)Еy[/"_V'glymur-0.9.1/tests/data/p0_03.j2k000066400000000000000000000310551360775562100163640ustar00rootroot00000000000000OQ)R \A]@ ((0_ !c.d-Creator: AV-J2K (c) 2000,2001 Algo Visiond8Creator: AV-J2K (c) 2000,2001 Algo Vision TechnologydB(c) 2000,2001 Algo Vision d JOU`E! ^}ð[֗W"w ^;S4wހHUL"mԞBr n]RL7:EO3{3krO殡*zF~vq4/EXjSՂS(=meQiiYE0)aSPdMU,ڨ: = 5 ky# T.yy)sI^[Ya1O/U0V%p͔Ѫa@֜vBߡ,׻ɸ2,k$J;QDܧx1Dx͆1L䯬W=RN +b Ѹöy4'+۾lpZXg@]gø(^kCP\Volld?1FVɆjk MzWVjctTzPY>;~Oz!MRUc5UQF&mhIb%:EK ll>r`#4`?QTC>OSfJWŻ0g: p|^@5B"Sc Z̀BD@(6ZћNK5 n J3;daq>`ȚQ/ K"f'j>'us iS;Qa{1h_-é@ܒk\#"g7ЫlȲ})5{ +dӟTvf=@0@ݢ6EmGFtgey 4F!Z6#\"+ /1HST1:~^$3uD=r4"Wj0FmHL3 oǟ~9CIyrXIF%eΣNB8ם')XN5y35=Á#PKH[% 615r>y!Dm$Zv&>:boە49#GftPQBF Yܮޚ4 $GWu}D*(QLp0i ΚM=[RVF%a3o}VF ʇWH|IU!S )?#yFE 4Z$D`Kɚ4е#ék`tgn=!u0FҠo4EӚO4`Ib.INU9L"i6H^oUS=}wܪ1ݙ'.GA+R9rl<9օ hޫ k#l#Oyca.&)Ɵ6.#Oć`DVFD~%o,8=nSwji0T&}-zw2Y슂, 4_r9 b$BB0ȻC҄,3c9XaGud~-r&\ bD6ڵXB]jIʥ3b$=cr8fP!K/C^ 򃶎y aS.Miїwe^G~:[@am|ʰO(=/0*t_ǥ@X\T) 6gV(k'Y/ H`ۻ2_'mƅHQh@<5EX^d g >' #=y?īѝjJV\gI jNrO7ḘMЦTW<۔w[aDТYH8G}0馞3W:lx!U+IR|8md5_qDh0j$9% MH2'f %kaGK32޷U<@?!便! fA']~|g9| .h+ߍ? CsRv0 z(]J@%;uM|UQv:gWj .k }0n.)šM./]yR8O롇UPRRBp*|˟fh8pk圃 $G? vRX0Y0mz韛><4s LķST_K=9KMȐXXN %7T\!%Sxn@7gxxHzUT 5q'Z2{=Z-Jʴ~i<  mެ9Qͼ/*|@ $%|" d $|=l.dmqEi`Xy b&1?\W'Bo~^- &z;T$ RlU 1F+gӞ>kYo.LR*"lð6," ({AM#\IP4@hQ3ꕜJuRN#wg%GDקx첞r,God=p[ Л]NJ*V„h3vvNG m'$ ;Q =?47o-~ɱ3{W*bP v$)eFi ml' a;_@i`|㣫]S [^abB\!rv>9L`AXju!~zZ q骛G;F܈(_xqCYtubPpD t&=uǧyA(}0.t 5q?_spSx~j.)!; D(G.IQk7fr_+ee6kB%."\P=\vwiH"j[4SwSV5=a0ϴ_@'ZBX h0Zk0XŴUm. 0^0VA}eq1Kc+0|۵/  Q tjba )g>V*)0.áĻW Ez DkUR]467r$j00kY1Q'璂Wߘg5aCCWKKYFa}ƩצGw"7Ӎ2}G@FeM|C]xK\[Jȣ;icX=j@ ך+x)'DyP+ m]=p1eK$Y*#mp{{⢧qU ~SGq030/}6 aH%J\1^FwAl%*ب$U5 xPrէ\&Ҷyφ=R)@!ܾyc>1괈 OaЃL1S mɠ#:Q+EbU6C3䨽#M] v?xHIO 5-<Q'*HKÓ!N#^OѥVQq{?4#ԍ=m6aʅ.3$&>:26r7K=&7ӚzQ*b6F/=~q|dS`u,re^isqirQ&h%n@ Ȧɺ½wQ~߷32c,-CwrC&r{-b6ROw¦k?t%ťPX9_mȉkd΍7N8KUO5*]hi4l ҭ%ф^B‹Es o1[9*P[&?"wpI]q.>y`IoŜSz]4.ALz30hM,6RC]=dTՆз,];5655_{;E ൜,[0joO+moZTV:ĉzI]eZr<$Qmt>KԷ!P(~h:c-ٔڈ:}8 )KEyF)tЯVB_5׋NmٽfWg[}ʼn>gIw?z;x1\ )z~U Eao1*$Rۢ>(IUPhz$&=Yo_+u8^  wڰ&& V( Ezߖ(R;?(*|ikՀjդWnÇp/GAòYGMmP~՞_Xdߐo=j(%FE_D$x3~̜Е~|%Hevg+>R!?CCbaOiL%đtvϙ++,kf^`빻bRWJRTl ZdC܂uZ⤮PޛDuD]\ߗUm#=?&:9nN WSV\<}t4Vqb.Lr,JqL ^ E:x{Bz"Ypݜ$ܘҾdO鱔+Ck,{pPoJُ9D'ec88/wn 4l%DE7xs ׀Aa$O,0&"%/- 3+8K2s,pTW1A~UYhIOSjra]lP?KLt\i/V 9j>G IAUܿUATAKp{?7 xyN g|V4vJ; -?H*AH|>AtH ubH(O3i$F-%N2QS(X#BeWNQFf_ےz?QYd9-I39w|ǜf 0nPIRlxXBlj׹tX)l.8BjD)t  C R8 aCʱ@ f9f:[wfO'™@EA8q8H􇻀ZIZ.Yk@LEvve%NJ>#0D¯g0*ECm[zWJ W1/ ;z w\>X%o}Dtqo}1ycOWCg&cmۆDYգSkYi˹awKjvO1]45ޣ[dd *.(\69E<ƉEtVC3B\-μ:!XWJUɰ^U9N$AAj|[vS[%(*V'l9ZG;4#"qJːEڠW Alr!v`d{I8A4L\nsv˅N1Asi%(K٧2ieoo$kz,UC aKn02X#e( E+6;yZ׃4QsYrlA>SQ)cŜ5 YD4Hۅz\(rW4)ݬ1ZiAWxEG s֌!pfxr#|£kkEj)#-ӦxJK[Z|t:PAjJ AN9B&NbHkOfj zpfZGN6~H3xHAf%Q6TS˺=#π_: ,L&g5%f2rJ:?+adlv9:W,uX3UKC<vx1oѨ[, 3D6T"L"0q(f2꨽)Ԟo.{t~5N{ ~îjKCti~=YGCn+/ݻ Kg:=L B|,ѱ@, 3ם&!ix }!;T,i)v/-䶟L?$d[R"hI*F v3*Tħ "m+_r#n]_l񡖈H2,gCo$^G23SlxOqui~+UKjDo3tr=LfP2&A'~nf-ӞtE> aEM z& HbS[4 /uV(R_蟴3 ڂ5č~̝l#sh+`dC|~Q\~qRd^徤Q%Nq%OWwٸ.t˜qcmAؿZ|_I AԎ^7c\~~Jߵ{G+5"p6$ׄ 8s@"Um~R-)ROM彆=޴n2LgOc]ɐUSI~8)/;U z#l+)_ #'}e4:51 } ȟ{PLձ@ =[JS*QDΒte}|DZ FQ}*G#ܢˆgi0&$@kCOlte|f#!ti,X$5N"$Ƌ,)okQ;*CȝbH{|$n/d+zl_4lzbG3/ q'׋|N-]]&Hsm4-ˈ^v/O@`oMx  GcȻ)+W'8+%hJˤ"b8?*o &'xط!m'41Oo{IcKoa㩓OӾ;x}_ыz)mZi2E:V%x,$&L`n c7&7}!kA\"06)0G2ॕXAJO)\ S L\jxumf iQ W΄x7 ܝvCqZ⽝:hXm ў[Ѻֽ$ˎ8c#i>:@Xaf⬛Unç &=т"(,U2j/8q~p>8_[xg{tRK_e@)ȓ-IHDƐH6o { 0<> S[{aa֍QJ'.c0 #]7P&!_s&uQf}9)D'O<}!m2Kc5ӝWo~$ANY[nn iOrp&Pөx݌-|us* %px]«؞";+Ko?E{m   T0c98 .2ktj( 6X @{ٶ E({ԟji]#8VqQQ75`}}&&vbVg)7[;ޠrTxR:^Z<!( fZKs'\/O|u??J&co蟁1xaquԮ͈^^M2"bm9hbrmBf_whI~$L .h5۸UCΏe&#(P8a$oA/S^xl_6\&>f\~1+8J(s)QHOؐ yġB_#lO%i$K㜭DR*B<^20P̠CJ- F&:YRRA[4[&i1Ja#Ԫ:{ܓ DNPFZ ni"(fV:;}PxC #57t6/"@0'X@TLM^5/"oHK&1 @SBV-s…Ե&#AO q (% z;J=ȿ3L^܇N I6_37Haltz.6r,WA2%6]RszsL(fG: \铂2Ls#HV+or/e#:Fver? r#fOrNG шRG   ֝yf0A1ڗMT~Msx]&XnݸQܷpFY`+cbFp+ ̆^Y<1hqœ"[2pKcA4jj:_c- d礤2NݰF֤Zwy#)QؾtI밗L),~Lڜ[5 r5N' ёR$mY+9b!pEkjp/nwN0ZrJJA=^`Q$ sazSz8F2k-VzMZNvr,&J6=2eͿSL)gJ3Wڬ_Eۂ KjXEeMdn!FiPH!͡4&SL/7ݖr}ş?' {&o-`cܺsF P8z!1Zh$-cf hOph<9r@]`mcڧ? Fd,]Rϫ/W*+痎>$MesydkB_]>c!Mǵ+ b `@pՔ.$&cZ %uӀt_agLw5eDC?K0XurC  wݕ/&ELP]?-_D ||ODQ1J:2È ]3K )5pBȚP7Ƴɰ:&<;~4j)Vrk:b&&P]:?q$חӇd>:"W.!Bị( 3m45uWɔP1\X3*3wPV[=Eo;uAڂ/cvP-~dL̽ 8pR+hqɬ ]1w #u㡕_  @@|O QBL)Sġ'޶03G^Ʊ\=1`CP٣N5fLg%@-XaDY&"ޓy?#6glymur-0.9.1/tests/data/p0_06.j2k000066400000000000000000001020421360775562100163620ustar00rootroot00000000000000OQ2    R \)b::: : 22 2 ** *%"-"1#UTN']*UQRQIIIAAA999111))*.]*U9RSzRJJJBBB:::222**+I]`hhphhphhphhphhphhpS ^ .^ HsY 5g -[ ;{6V0x u43kaIbM 0Wu0@Y!@t:,筜p/yAƔ"s?](AMKNXP/N?30<<EhՕT* i1/Ѐ<߄o`0?v(xx <6+u OЀut~5a>0?)^H|A> ( : B^A> _[O ?/3L:=Y4*X N,'lpfZ&Yś&$`B ›l#?a~00wA~  F* I$B K`yT t{d ,$\ʌ+dX#b)=y 80g.b<1d\\ΓkYm` Hiwp͛ʱ&>ߚtƏv ۏbVο MR€û 0$~X^Nf,Q Α 1[ҹzˆ^_rwj@|C >1@.jwTGܿ[$:'G%|v)b "e54騶h8$'.A 5b!W6A  bKo\;wCbiukD6뱫.u䠜h} *0IV70'(1#ʽxA 5 ΜE MK>]t} {WZs9%hNZmn\>a09~O@  xu15sM>$ @MbqeLzS,kyL;u"uw=0ԅ̗$?.p8]`!i Y&*KIWg޿s+>'ޒ`: XW8(cve@ 1Z@.\W%I=`5f0){O+]F̩@IHP>}y,tRx(ad|gJܬwMy9Կ*(, 4L]X #w:|NZ񵑷O%A lT~]@ǀ4) Pߊ=)XfNSw )ޅmWEPFnCϼA+牥=3{Er#&y`r;.>\-yOa7RBWڑȂ QmT5@}OJ^GsCrxSQAQ ^rrG&:zԿuK-=fj _4AH %$@|hfD;,{D f+G Fk˳FIw0hF(Z.F_Kh N5j.Aa @칪Mi~3 ؓXR5tNA'KΧDCXfBP̙:#tL)ZOi8I ]-2Cy4=hֻӠ{PE~"f6FSt$CdΏR5-gT4G5G(~E.#pcG#pϒ=PDL.+LYMʎ V13+wU4^Pβk;81'io!h &ng< u`t4/'ÙXˬSƶg/ǒEA|acm\~D*!u. /EgcSa$WB@ @ @j:âjh ˒L3 8ɖ!< px_ܤY!7 ;)??*;RP{NCuF?h'ݭWz 9sQw(A g]0)ob>%^+X0v%8=X҅íUH#QqQѬT,C%5{J z^<:M%zæ|Ah0̿D}s8$,h}VC鑴3o4@ #aL9AcQs"Q {&Z!& 7רkBRnI(8kd̦;5Հhe5~4w0^6GqyzFn'dyIr|pEM'8wt8J|> 5w,-2v~FPraiB1j=02 úO=HX_#> .)g`R  IU"9V +W)5-p~>T(qa|jYtN}Tv 4'Rz87eSNeϠ_^FD hv,:jlô?fS%E3Nvnb*"nWء.HuNJ8AO&2W'GJ-Ζ<8:rE G( Aw ꖷu+xSj{tNÑ( +XAN9OF8>λfRLK^,IZSWȐJضW L*Kx]%x%m:\I_$vd"iߊNߍu.MK# 8~ف8Sܚ}G{SZ)dFzCJzO1Kו/`dc"RMDVgy #B1PڄWOq O 2kxɌ{Hx׻ ;W H!(Ooo'6PzV?4qaVnދ!e+ Ϣ5z?Q{.-! [wmR,pT -,H:ftTʚXZ8Q=mD,QW47Ff_T|vxDŽ? Ƌ_aCk3Wԛ̸C$$SIsULJWZS .gnT[wFfg1Ns7#FDAU=V8dzZ w ETEdyșNS>3 +*cIС$bHP𚂮 =_a=Ay(]J:p?;g`!]R czޙii4^C wI,ux1꽙XH3SPco!#ߓ^Txߗ V=*z&&IϏ@)co mux/~XպFܜٻF.6Cʒȝ*s W./@A\KBnKkx}"W.Ȕ$iǫy|_O 4kNHo

| Lr 0N.NSF/E_rT76nsRJ\|Qn糯!(^'U1zu&y|ݕ4Oqw8[mo[敿iQaT͍Wur pYIммʘc$ua{:NAR?#:"w["8w֧i;=#ϪZbfClIP~DWPzK㕸wlh)˝jMb GjʰȴC_ˏX>fH+x nhy"MbF*2!1)Ԟ}O~XZi"f_@:!> bQ BH#Gaqú: ;v'=XT͢kR*6Nu0zз>x ߼s# NqҡNS&D]gMJc^i:i}6A"Nk;c+vyT.~%+ ns?{V*) ?}:/[]álP5^ #` t?ߜؠIFI+.o ;=~άI=- 2҉t7B C2?`ؽkދjGKOXHAMMe6}gHvtzp\Fjۤ~6!׸hj~DzGdqZ;0#挍f->NӘag(Ml 7n}=f%*oZϰH EACNqW<>` ҞV+}zLq2JKXSkI \ v^0*mqv>J48|ZN~ω6O| ' a`?w>l=z R2$NAkk_b"&oKy~I/[y^'e}Į*gM4N xwUn:)Aa2JgU-?WT')˷bnM DTi6gY8+,gGOʌJ8B{f[yHvw: } HsbY}IITG¥?ߵ{*KV򷷪c>K7~7|cx mY'C*#Bzy6aWĢ;n]B>Z*Ǒ ֏M 9A2VL=y!|CrOwczD|X/*yGA/skm+ /)ɬrCIB(8.u *پ¤~ʼn.\Ov4%7IQ޶ˈ~*92U*Fx+Sm.`C ,H"1:EaZ^N 5 kwR%0Ucr"onx#4;@)KMèLzߝu*<4ܖ ⤙- _[I5gv& KL (ۇRۻ ^tj\wlG޲:Ar2ekSqŖs:i++jRtFbMn1VnZ BGwQ)n+Hm˷XB6b[Ē59~~9EڮR j}ٿ]Hd--m[6|k(s6uj=QXONʥݞw_q=0ltVrY9Տ`Ŭ ;n!dW^|m%_K%\"v柮a wAOhACaNȨ͸I%Ux1y\0:I DXƍo/Vyй E}Ls 8\:H t0YqGb8Armta8╥`uf YW]4P3[nS⇿9 ?1뼪?zOAc7OZ#PL/RQ7O4${C[}IZat$/.vՇgU2%_q9EC@Őyo iOa<$/[i#B f`WGq{)}&I]Zw:1_e%gz/8:DCOzi!)2dɬjB䩅'#U5-Δ@@TlYS]k Q_@|}!&LS L)qe`K! y^yk? xwyLF9bԄjf!Q4%{B~ WܬV8/iν'!I#ʋ>ȈI+Z*co c=0&GlVS'oiy3ݺ5$eɿe2R_ laVr^G{hLy=C:8&X$;f%rU{T Ȅpk",Ge7WYZp7S_$LR)~+dzDzg,=1/hAzgS;VНmm= 3 .0Yr;q $Iً%:CʤG@y-I|֪Q UAo| ܡؾF!'HP8SPgS&ӕHˎ=k9T: (7 ]ȷ:3K@>Y P$cMpcJ~ )"%rĂp|Dcb(lBxYVYR  qpb(çҘ]dd$F:!!Unʴ&u܂B+z :G!Imw +53X$54 "XG;+b>I`h.b.cBő*~ON?Cu+#l|%AFxtCMU[?^Ҋ/]a`Pۿ6!GCh_߹yi{s<YՅbKcB-ե`(kެnє7X{vr J$$5eZD]NNvy0miX4-GnsgSoGa7<k!93aVN ŵdJz5+&z!:kkCY&/4k:<ọvmRXg>ʱ@orx" P=mɫx<ģKWg%} B;@H:"&K#Ɣb-3ICwN&c5J^asׄ.E]|X_523W6?U9=+~7 iGłPثy4«cJS d3:^X8lnW~bΠPՄ4Ҧ6SveN)mlA:iDW [˥1M>s{5n{Bi 0D i0Nr2_!{R8!ojku{rƕBlϫmZD|&JJY{YWthDo&>QsH"i1RWOS1 L}yFJI1΃#.Vvk }QYmuq)(dCm;f`fIIFۓ h}kg#! ;>EI6oZSokq~δRul}N($V9/8+qx `tZy?&J;92e7 q zı0j|O@odllKZv| YƳkũ5K̪o:cv\H@Th4=^+r*` ]NX elrh]@敚 %]p~Ζq_TNǃ3:D!'?hK8pnMJL\"cY%$<<ǿo!kb0k;j6sk%Y#}sRB6Ro) Œ E`3iO+`}mN8bM{R4*xlcT8R,n)[MˈLG?fB0D(qؚ'݈qj)qnc?v%36덚Fz 0p 4=[W>GPq6w+7B).:SMtBl {k8j7w$2ijk[_$\ѯqP@2Av)fA%ƋZvM|(Y|9tb+5sa̔ h%B±cEt[a=gY C !gu<,J-AX4L|]ENƄ}M$2wT ` t@,oJ|2MJtX)$\;LvjB쾯q T6 e?o$֥>|4IgčA~$l9BKZZK)Lv^ .8ذk1&j_7d8zuu_Nc @b!tHHga`+ۃ¸ϊJ3J)&qO#+epfpNj,^}+ $n_qm@vxq>7$+C:56S%ǭ"uwlb[j$ i08I8'J>-O7 Sgpqyx=8_CҥA$VrT*TN-4&,nϘB 9f1l@@ߋ1uƤNڎc(qvE~2:ziT:fJ,g3cG6P KZՆk6a w)ս4M㵲ܿpVu_sPN]FQ/;H;r|{p)iFn?c^Vf HhτA"i@ qQ.CEоٷe6f_'tƵ*j|E[R8ܲAEH~h ;6'E v)UL:~8'_楛x쀲<`dQO(tQ9[ܾX>T('WcW+TaE~iH^7XVHl7'r.oBKɿ@MG@&0&m=r+8\4AyY/KU`-DzEUaK%^S-_!H?_1]E?D P9na6 m= |HbH rW;> -,XP+s`xMH绣KhG+Fz3u[X3)BV} uaV~?Hƈ"s_tRbߴ%;)V\/ /\_N10/R@w^cﳡ!G!.$R]ȱҗİ^'ka 1u0 J-\GR/4; ?JW `K%Dr#<2Fǻ99G|4J#=>:|N3,Ҏ7">~)1.Ȍ>K[rSXl:u2}D?Zĕ]2M|/?Q!vHT>ಮ&;WI$# K,YαސUYvxㆾZ17յ;:{r :~ PX\o)kt0{~46(|:UH_t:QsFF&k!.9lΜDo[V&E4H(|#7Hףd2dT}a$/ +_ [EQҵ}'x@4f߱Z66NqP噇PSo Yvl~ 0Y˳K0mY3=TBHPXy#3BAZ(9&c?!c<&~Z.׏C{S< 0Xik4/9FJM  x ox~6awF:U/=}g$^ qmD82j rVح؎ɲxYqL!9BAF Gkig42;1x'붓HV* Xi}oYgBBݱJbr475Ȅ~ -S)\ n֔@fFũ6,d.4IÈ- GKʲ%Nc*{>) ˕`Q. 'eyLe.1t빃?]"?ϵf6Q NFYl zyJN{Js짐N(v:S֦͊ng~!ob : b>J'<⼣؜>U`r@{pP依X֬ܝn2]Bɍ.C=oJM}j $gGU a;_RԊ9%k= ym^NVFϩ. b`-TO= x@B@_ !c/Hm)_WOs6v2qa)JDQrH5#O8f K){K (r2nhot#+nr,U_s8u4QUt_ۿ^z1Q3;_ݨ;~shϽ1@ 45ǓBDM֜{GGf\̻h8Q-R6ȫBWCyҬo b"(9O{d܅KVsEnLFYvߚAxA37+͘ o Y{ATƆx!KݡuJ;|N {BzCy܎a' =ЧJ˾NV 8FzN /{ ΍7\4zV{":oDFl؍+#b=%ɏZJK"U*1xXXATOG1K+]l-?r|}hyNDuIWjTPH" paiGQD:}^ѻ B!ܐ܃483Id l+5 cZ*x[9Yؚh_y={ЊTIKZ"cVAf&>ؿ8=f/ػ~lSl#(ƺM"_bɱ 'gǃYZTfA^pCT"^€U9T8շb|6a0ӕZ7F;OpKu8^iˢ&v]vЫ1iQmw*׈l8@pz=z3NN7ݍ8ÑTN#E J酧m-f$U|RgS)t1S4[ݗe#,۟ܶz}Zݚ},p]Yǣ~4 )<|?0eJFy*rOBw>Q^oV>]RۨĹTX1fLe|TZP[Iف:ȕT&MyKOhc{RS2ւ8ycR&a `ENq2;H*W ¬qx,J0̠ Bimk,Չ'NspQ%j1(Ym +yM$$Ȳ1]5 _pstcQ mC ~:',Џ FuP"|[kRtaj"%SMe*47rYG{+}?rQ/-u¶z:A6Q?Ϫ{\*/CK_%E!3V3I -k~ŽQ6ģ:a9"K@zGG UP貊d?Tƴj ow]L6]d|րk`mGXi\)_H-^QJ\5+*o}NA J8Q|;+s ^i0ڻ (bpU4('^1n2Lm*BkĎGnKIƨ#F)8vс_$n:nZ"dX8PBhbx+ ij;e,"dNqҲN5^MFڨMAYZ`, XΗMn-sK*$t σ4b.oǎc^'ZޛlMx$7 4}ELg 7vPrfA]&xvATcYH>J?Q/eNMˇM$Q u䏣*ԩɭ.1-~QyCmJlb-b۔l'_|{G / _IxiSV*6TT>h_}\p.-"$1kFx;dxZފz@kM5auru-XV9cuM$/jQ{]ɚ`66uTwl㎍,uԩqi&-4HUO;/N#]q(>1(˳^ /p^ 1(frix%QE.`URLK.)sc ˨#$qSp`_Aq/ Xq=ߙ|2Ūq$I0Jް/H-{A (:|xY.,h!u6 3kGaJΰk}7bk洛AdkUG|/8;'\ [rN'-ɺ8dZl?9!'h{+8˵}rf]GfZ.F39zLi[rJUq z˺=85CD.Y`<­{6OR Y$RR#eà3a#@맽kɀRm釮w/`Uˍc%r?9E?oXvc: Ш (UXn~>~>p?; ~>>{_oE,\Tb)67' :)җU.ݯhlگ>w3o&XvI5A"DΡ_: "z u.K-0Hp9+)z6:AlZęn_H9@2d˺>`wѐfX:-PW[WZ0>B6 *# @ X1k[oϿ%"Bd4}L;AϠ]mA?kZԣltcl>zy͵g Beq7{+=j f%%4 b#3Y7کDIx6WX{#j1}ヒM 8UӔD `M?t58׈I;mẄ́O;"h ue~1ʾr6!B LH_ƒ5 &héo5&D|U:F>кI4~Q`NQH|;WrCS$A1zQ EEoz 4hW4 4_r(h(^;BCp~ &YU=;/@!F ӯ[K=ƅ42)|?UمоYpE>KXwh#^Hu;+CNT`JD~%;h1znǠЀ*T㡜5.-Eg"b1k_8w %?t"B:,puV̑lյpb,:6 '6; DQLd;3moH+b [Uw$簀t/t O84[SwK]>wq>>AG8?a vٯ@!T0GWܢR- tk?0֟kJ( O%$Һǔg*Մ,y- 㼞+~u0u}3ZG(H!l:qa!v-(Ґ%ŹDxOx ={ɛDC>H%oW8'-\5Fԣ)l狚9[DId e:ETJo`Mb8QafZsQP"i͗&DW\Xw$#aUWU<ڈvҳۖWZ` m[@Zv}9*|@_#r x&'ǀh){7%<),EIͳwֆg=@4|^ h+gΰ=?p+Qj: Q3n%OlsLTѝǮ/C%E$I3_+R> |}m$&F)qW@B.|o ,m,Hep_bM|`}Ih-ѵl)`a7XttDf)lRÀPb"uل(!a 8Q߷CjbtQ2e9?"dHZpD fZϐE(pЙwp'o,~UZwɀꅩ,^sd7AҴ L9@cW1gxt)2x|CO_ . Deyjc\E`3$μd3l:_ꧏkmy&::#~m}B!=` Wk JlzDlQQ)6XxQTrg8Z:Yi 8{SՏ#uO/TdmHHÂ<ʦkUeƐ]a>sk4Q# 6}ͯE }>3 Ivf4DP"$Hp>kJ? c!CqI9;Dd:Yy>C!foc}\KzY[wG UnOzNiq{cﶈb+RjƘWX[G:P T&?dmnJHʂ{ Vr4H2Qp~"ݼ*sAìQ^v>iqDzJQI]E($$0das'$E`9U'jnrZJ7C~ 39{qTe0():0wd Yb]i-4B/]0w{\n{_ԭۜTOd4AޚwWs|B~;\bP%OSjf=IAdv`9W+apԕBnl$cnqEjg7Y0!_ fMɔb3DLGSt/Ot9*{)rL۰o(9)*UUe֜y]Ж6ۤ 8{@_$ R^>іv䷵H _AT%ct||"ڞM idApϹUm$&[(ƸztGAt%i 2۴xe`ZgG}lZ3欚˱T8U2,Xw9 ZvaW͡jP(Y4lcK/xX䎱- >s\[T(0(hL&A.qL'qiWd'htcmQRPx6#aɜXY+hBi!9rd%|ܲe"MRڃt 6c^jcx\-E坐#;޺ޛfDA_GJ0A,5jQs@ٱo0v{I O2HLP$F"~/w8C(> 2AL\. +u-n_B0=EH:XΠ{KL72E1QTb]6M9GQdkm36ܔ(5 ?oA~8vA* 3wJ7C) ϛ'Ț1߇1>䔱9 cې&uM?_|)0;Lir.O C*WMY:Ivo˛ַ$-7bm`{Vh<_Jf ֔FCS˰z&UarYW#q^jz,ڗ3~Z0,/N$.Fi5B| eR4)\{RL +3t -zlxZ>R ? 4?S#fDu'S0y6{K5Qr"@ uRPc4 ׺$3~";{{M/4K䝲bVCʜ=S76 =+ q<=2rOy49~O=˃W@5@&)iH!͛o "'0gJL)^9St%7D .dJd:s |sx=H9 *nr\V1#!+-0T7NZ(g4I>PTl'ܒ "#*ǹ}$BO:Pz>[fSHYd D@[d-*nY]={_qIGF)ՙiMǾv@%3*5U12YR.1,  RٵU.i.Ŭs\E^@`Dyj"MN2So/MGLu%A~;=ފw& :uAZ0kfUz½j8EHt&z8vcIfTd&=_^# AZ24հcx߳SExG߼=#7t?a=)Y:ސ>b@r@Q*|<؃M:bTX seʩ;9Zxۧ :E[hogk߸&Q>0T9^ϰXj#E r=.Vus@ (ޕkNmTˈhf4Yd{LK~1 LͧKq\=݈z_ت<񃱥wd_7{Ss/v j#s4E} \5V!vv04C\=[K)ϣz\F"qX7rV,ZX\QKM?{B}V[pQ <AiUy^[QVxOކsD8u *}fJR@qB:zo('-878 0$~]y>ԥ0.ڗw\T#{paYF| L7_F.r3B26j޾|+4~-6Epw4.hVxS~I[b|'͵Q\#!"uby&76?s =wcfw*"w 7Ni;%{\1ܓC~3@#4nF'`1j<4E؁Se#7 59`̒ 8;u!ywd$B~W|{]%MrG'p v]vxj=T#?6'Ѡ_w(~8|oL#ߥ?D&X4CV9b&*oԜC~jq# WCw:2ȉ54 ܓOSAp৕s#l MMo$-"`[} =ϝNev*LEUgF^ˀ'wRZOݧK%19]6ZGL3/IB'uP͓FztA}% _q;8qM'Ci焕Dl`}fš -Wc[ eNNxޛt 'bs:ur/ 8J Nw}-~MyifD$#o3'lyӛ(0Xn\h8Ez=l0hB+dN1_Jο[ Ī.)%h;ʏa)FzcȀ8I>]g?ⵟF\2u숌ݻmm\~f)=g_c勧qUsC!JM>Je-*k_ްO;n.Vxfz5<.6`g.}%"WG]MT8'KIq\Hs!g@SOuvf֐ť/]~Bڿs;uW[ܚʰw](q_|AB+R:j[Xx,{}-Ι {N|}"op_&+ b!dm%`M%ee`4OT?1s=ZsV 5,SY,K,]v-{p &Pݪ|6Av&`wͳ1[Ҭc;&΁kuɩxd Z=cZ$Iv\˂Y4H-{3(E7^*8;P`'+b붿GtHn9Y WM󾬰>[_=>|rYޞ,N&;T ~f K)u3(7䅕 M&/܃p{9g k" |7dGďfhIR!wB $^\'VE/T γd0+BC<u-vuVŝvl\)pflx.M5 @)7;ʼnQH^2W_UceĴ&iD܀8Mx".E8b&ASk=:}9ۻej9x0{-<+>.5wYGp@7p~<đ':~*!q!IxbLbs( =*hM.WL+|_V! alw`PϕnÌ%A$( pxP*+,LGˇ* Ģ7.5z2*\Z@i3'a6vjz8d# ᤧC$k_ISM_B;G -j3QA"S wНnМ"%ޟU>XjD p!%qxF|}&]9yY{*9h /OI=秜a5=["TLҴ}nNX?ws?}ӓiob w#j}\LST7pʋn8iLG&ڗ# w'ʖPu(%7q|[ 5^y} 9 L>sNv,* ٲDj 6o\&ٿSKM,ɵdJ.v.O F `V Fٰ"JAA!_)H 7pa( v,DeG,8_hk3a9T5 vud(3nLeɃqn@Y,.Y>`܎[E(HzҬ!R\$Bg4ۮ*_}V-` 'Ohc dNnC.ؿvtv{Z#_BѾ%5'pAnKM qs7iԎK mqfmS^*3p6g9٬ғZ=4rَH!=/d7~PzQn~A[| YM5NR]:&WH~71ʒoTj@@3E\ޱdЍaȝ b^]3-H:tm{#7bЩe691R`耔ˀ1u `8@9 IL1ls%x;8= G_-e:(inw!'lk|?i/ARXӸḊ"cf1P+תnsV+Y M~FuUk;Tdvט1;{~6S3yH c"S^ H[*A2$c$nyoR6:cg%s>>򊶑Ы-JtT+ˆ"IχB8eәW ஸ1` <|֗2#J=\P*)zQeC4GȤob3 =wM ~ZP-^`*V (μ]ʀy*z5-T>Ȱ~H#vɩN٦XT7_eUUj!jwe*]&_P[HG`vb m$™C'Fw9xf qKrCbOQQd'-~%ʺ։#wL?+`:6$H*3E\Wqܖw@PFWJ|vAJC[.tU >$MEY1^TBDYۤ7Wo3$D 45;W՘V$[d?kmAW)7yٲцӉZ`WCie!q̯YtcV-b`xYl_5' V]yڐ$qu!31}V#jpcWuypb_J$d䏈s2؇)G=yNc>risI^&!ASwKƸ8y':s'0u+ 9k~Ϗyw<->MlFWIBX8*_f!6_ڲy}F"h+_, 08cԉH%Hi*{{s9QmcSŠ#,~3_Ԇfgy @v'Yl@^ei8隸Jn( zEsH Xa[:k(-F&+:9VoM. qAC8f I[=/5<,%0^ :TZW'-,S?}ͫҍ;;ظ|æxzUHqN~[FJZHN^諌*oP,TTqfEݩ-nl/,L*Cߛ 6ĺ,]Nۖ-+t&Z;EUhboi./@Hiw¥ QڒZ/}Ը\()EQaPAIJV\S]G„-\N'6Da,%ۼΌoVױUȿ2Y]7|Ǹx9яeW`/1mTO0lun ޸.n EUR6Ve(l14 TS[_MFe/i̒K-λ`aTƤ%L-)?$ O>89FvE\|.`褚~6a@b Oɴ$,}v_ eњP1EٳA0k֠ӄ~uG-Vv&‡3殂B8V־ MPb ~'4ڵ\Ko dq1F_>DFs^[)ߜb`: ,b%4>{hG9%_+04q{0 ZToh:[ YR6KfyRC1fO&WU>˛9`$-DxZp JoQLV859 T\:$v\tF3x] zdhu; P3\K=[}d{pps"G`[j$ILHL?pZܻpn؃Xf0f+1д="MN.pBm_Zsy.4J|n(jYcN˂;l_:Nv%C>7?9;DPǘKFfj^M7E!lGщp}RYDPoaSAS4Ki͂0Fj5ѶASLz/lmhpSc>'/qP,z*mxDX kO?m-cWjd( O?{N](ʜGy . 4jˋvܑ8)\C@ vB޸*䲝Yd(XHpaj̻l#J_K擎hfmU6tmT#v`sI&ĶsK֞٠l| E) @ӷgEƯ;l,:7e?P_Gb5:ֳM(籵 RJ}W}TW^=E'¶yK&yaB(oHZ>nUcѐsO4j`U> ޛ@t2cOqZF{ti,k\Д鶒J2dkJl-a\>(rvS0wU`;#MD#C,0BYFڠds ̓90z d9q@{RnAvrQ=w90fPNZj>WǷrdH~k;“\n2,KH0w*r)kvEj3971=U7}j=gLK(|LV%4o~Qy<^=8nܣ9Ҩ8sh ͕3{(9"(W}ew%i6SG[LD.v t;4(UW {IYP̯nz1F05ET)A7h!˛'8X?MXl&XfIJf@a]C{t(8>qa,M}|c XQmc>ɿ,u8 Sxtujk~r@gf)R~z^ UHڅe8ҟʂaj ?'\Dk=GʐWЋ>(1'2kH 1.CExl״.@MeGf]k#?rT0zT`AqLZJe8`XGg'" \ĉfKf8!8IF+NRul1 >1-Ht'Evfbt>}3ŵbG&r|>xfM3Zn3\U:{(øHhϡK)nNjgj}åhRm& -Etofڊ$R]9T[lT\` @GD7 5UtwmɼS_m`dJufg`S˫vjb_༗7F9eC9?WW/ w'^לˉ׊D﯊aζo(PpW锪cP:cKlkΛ)/q\Fy.@z=22ɱnXN4JboAAdL˿)O c 7 36|Ǫ[BSDp3\zhfz8Hn5M!Xdaʹ?$h0;9~ ۲|X/0Ӆ{fyO{4m]# %N#BΓ^` {W( Թ{ )6FL0;be Xcd/s.\ ̛O@/j Wkc:7.u9k႖8s~i}l0,ye`aE~n1?Zq۸:󗩯:`pddzEXNPCsPndVC|~#"fRePc9Bmúe(4 ϧ&#'?:J%Dl:msXQ K{2qoH-f6&;k>vAn@;4*DX {b̨=-jQEtb酂9wi13cn/net84| Vw:g5u7z"HVs~AWR8ĺLJJsJy ˇ1}#ck]ew|g,7%L>,6@hy ?y ~wo=N38 0@=uK(Pz= p!Okk1˹/1b2"PdaOD2KQ|S5s:<@CSPh@ 67sm$a4=B,U,J"J*Kt<2[`LnX?4urOTΈ~uWup.e (&[#3^Dˊ)C_s hGdQ͛23k piu54ͦO?mQ gfMnr3~rBjبJ_v&Q_D`W+WwPS9>R_lỌ=k .'S!ag.u0/ xs5 .,v*' '' !XanƗbAQ hX3k#il]Pzoyc e,S>OɌ1(ld68x2Mx(UU4>]"9Xw}6N @/,xƳȭ^bMFs+h,{2O!֬W۴'BڱJy??p p Y  A) "}:hؓW=NvҐ1!x8HBhPR>FqҩwoVWs1 tˊdwб/G5j+ sv ȝNTɇ;S jNiw{š[.pDa:fwjFcFwh] n4ᏦͧQ P raeXa d?XUS$ӧ,}UwH .$:[ ($3-̃NԾ ̌wf}`h0i(` *߰0`j&)()ֱTSnzL>ȉ wN$8?LD,x睦N6]qNO̽NGqP1!ikY"x15Z-+zJ'q@prաc9/@0i:{tzݝCKěl5\5̷}ǗɵN%`>ב/e9 ^[-k"tuG l{8S:kqz`\ɧw.c`uRf ,? ? ,t*9vo_F6]a|8D}EE =sn\7*C_*cuc}-$A`%v:9/~退vJU'/ ¸p(<K1Z؀5^PT)X3% :XNý|:HhF%评T2v<{4?Xm LZ?,r6e~8,z!4j]oD<"Chkf樺!V}UERұ)No\xL%0dd-LAha\ͪ(@!9;"}=%Zo P( לN|atj"[w%1Py$zعDt6|Xe[{PP$ #bP0I_ {`-DtDPե!-xU7Moglymur-0.9.1/tests/data/p1_06.j2k000066400000000000000000000064341360775562100163730ustar00rootroot00000000000000OQ/ R (\bww5w5wLoooX X X___`d-Creator: AV-J2K (c) 2000,2001 Algo Vision ]amCA8@?`@}@}@ }@N~&hfJCuW= 7H{[0sz}EB=uNw K NG} :-;   Wٽ N.Q:0x`C a/>B@}@ RoC=zUNuNi.Q F-J& ;afA`>P@Ah(@}@~>pP4 `A}P(sf%C";}W Њ{^aNOlCNh{ C-   ̖&wj !puNq aB@A@ | }@}@@>pP0>@>pР(:y T8apFsd[W9C̕C+ EoCSCK3sl<W  ܛdG a7A@P(}@ @e/6dse.;}=lesy;q aB>`A>hh@@}@~@ @As@{OEc5K~k L_3iC"k ѐa>O LVrƭ9ns **[Pu/J^2 a6A~}!~}@zn* =fJyuV@T:i$vuNw a7A}A} A>h :jw7 wK~f$ WwF)X?SCA~~[N/7w j$juӐDA&  a^A}@}@P(?`}@  H>uNi.se.e. ج-1<OF:.]rleOq5 Vȇ?<y  ;qO G a/>B@}@ RoC=zUNuNi.Q F-J& aBA~`}@~`}@ym =[ s =huV@T[1>:j    a&B@:~_ДNdݭ Oq62SW̋[+4cݪ a.A@A`>P @z"6uNi$yO}z#9 @yCC a9A@>p, H A@}@P4 먕[$ ؼ _W7r(A 72 cٗLsf[S3 Љ" `Uk a.A}!Ac}@~%FfJ$uW,{:}:$#uNw a%A;v{CX h CCDoCN$wYglymur-0.9.1/tests/data/p1_07.j2k000066400000000000000000000010711360775562100163640ustar00rootroot00000000000000OQ,  RS "\@@HHPd-Creator: AV-J2K (c) 2000,2001 Algo Vision ϴ r(ϴ߀(&.ϴ߀(Fϴϴ tϴ߀x ϴ ϴ  ϴ  hH  ; f h$>@{Ў r4 h@#  f ,m f glymur-0.9.1/tests/data/p1_07.txt000066400000000000000000000012421360775562100165150ustar00rootroot00000000000000COC marker segment @ (64, 11) Associated component: 1 Coding style for this component: Entropy coder, PARTITION = 1 Coding style parameters: Number of decomposition levels: 1 Code block height, width: (64 x 64) Wavelet transform: 5-3 reversible Precinct size: ((2, 2), (4, 4)) Code block context: Selective arithmetic coding bypass: False Reset context probabilities on coding pass boundaries: False Termination on each coding pass: False Vertically stripe causal context: False Predictable termination: False Segmentation symbols: False glymur-0.9.1/tests/data/sgray.icc000066400000000000000000000006401360775562100167340ustar00rootroot00000000000000mntrGRAYXYZ acspAPPL-desc}cprt@(wtpthbkpt|kTRCdesc#Artifex Software sGray ICC ProfiletextCopyright Artifex Software 2011XYZ TXYZ curvglymur-0.9.1/tests/data/simple_rdf.txt000066400000000000000000000006321360775562100200150ustar00rootroot00000000000000 Simple value Suse Fedora glymur-0.9.1/tests/data/text_GBR.jp2000066400000000000000000000723271360775562100172350ustar00rootroot00000000000000 jP ftypjp2 jp2 jpxbjpx mrreq@ @ ,:  AvKAqG,ѡE8Tgq;EtPNƩ7~CW%8sjp2hihdr;colr0appl mntrRGB XYZ   acspAPPLappl-appl gXYZchad,dscmHwtpt<rTRCPrXYZ`bXYZtdescocprt8gTRCPbTRCPXYZ (6sf32 B&lmluc nlNL(daDK.nbNO&2enUS&XkoKR~zhCNplPL,svSE&2esES&frFU(jaJP$zhTW>ruRU"TdeDE,vfiFI(itIT(ptBR&Algemeen GBR-profielGenerel GBR-beskrivelseGenerisk GBR-profilGeneric GBR Profile| GBR \ |fn GBR cϏeNUniwersalny profil GBRPerfil GBR GenricoProfil Gnrique VBRN, GBR 000000u( GBR r_icϏ1I89 ?@>D8;L GBRAllgemeines GBR-ProfilYleinen GBR-profiiliProfilo GBR GenericoXYZ RcurvXYZ Zus4XYZ tM=descGeneric GBR ProfileGeneric GBR ProfiletextCopyright 2007 Apple Inc., all rights reserved.res resc  uuid:  AvKAquuidG,ѡE8Tgq;uuidEtPNƩ7~2uuidCW%82nejp2cOQ/R \@@HHPHHPHHPHHPHHP E S1G`w0⿆fÀ8 = V p _'@^ꛀ@3C     O  $ă  % \.NmaO,ٸ# U( lng( lngˀA_iմA_iմ"? w w     DG ڌ ڌYtᏙ@uԀ AF eL.@T.Dx9@@J         ljFR.8~h\|!2 Z.*q)OŕTUTa~(p$w&P.u@={`YTFs5'z x i% '+Uipcc AZp ug007>z,_`怾0@NO8 耀 U     τǟ WxA?*P)τǟ WxA?*o)>PqOȼ?WoOrT ]">@:03 a;)g[#rJ>(e}?Yl'i'jQ" oiC8>gz_P[">p @xGM_zaP[" ѯ8Z - τy(j-i>INx:0ThHa!togbma~0PfӬ4~oa+0@ Yªo}ϸӀ         )*@aRF֭Nv1T͙JMEN>Bpt`D֭Nv1E7ap&+* Ĉ]ۢu7aUoP+k $rRZs\Eo' RBL. dE//0܀ـ      p9+0x a͌42O5%8w 9+0x a͌42O5ّFH?JN5qX+]߸#e2>y`Y/dnaW \3)M+KNqY"g=f|Wn\6w+x&w"H+pudSBqve>RQ}M=7ܛ#:!$i4\Q&i3MS#@28{zB=GTvJrmH|X,7<э||'cl.)ٴIUi[K;8Ul.ncrD׼#.UѽM!FsfP|}}ο ?-hlN*#8At+1PSz2G/"!tx#兞P5^skz^1ed>1nT!=s0iwR[g~.-%\skz^1e,AF^\O&m4o<,AʗS`|CAzh65 R1\ P <(u86Fk S}cb6e`3  WX,Lhg9[" _q:>!tc.ISm~~NU!]]%;)^G5zbbTw1wB.Cj.kQm>kO5z 3OW8"tv")%|dpmNp\ ZzZ1X_e=         m¼9LNg0tD8tK9,gՁ< (IZTQ/}-; 񮏆=zj^ ZCɲ"+ \;Xg._w)ZiY'Ӂ۶}V裢_rz*BR"֑~Djz>礞PnЋfCp@7:tЗ׺f8TۨΉ>9(ѥ4ܸsS. δ)?h:w)n!5quϋ|Cp@7Nx\LȦ#ŀ|/ eI-XxC$FZٖ Ϸ*=ߔ288_c |"f鹩gU+ Èk(đ[}>f鹩^f錷)]tdUQHK&x`^ͼ{GπȋO [p3b Sthf<􏌄X_E.O׵2sRKYP" >}} _ 3GRKrU{-J(:ա.aZd5 f R| Mcc諗CisU5݁AE1sd:SΝ}3B:/<-2.E3eLf2p1{sʠuH775DTc"]:f3GRKrU{-J(:ա.aZd5 f R| Mcc諗CisU5݁AE1sd:SΝ}3B:/<-2.E3eLf2p1{sʠuH775DTc"]:f4C͆OFI[@. ׬ Ot%)G0-0LD⦭afEa-Cs:EKdQ>I?3e6`x4C͆OFI[@. ׬ Ot%)G0-0LD⦭afEa-Cs:EKdQ>I?3e6`xNFɎ ?>7&0 3ib$C4&B[mMW]DXNFɎ ?>7&0 3ib$C4&B[mMW]DX:MY!c]84o ?fÀ'Jzgc%i&9DJ BS_.uÀ'Jzgc%i&9DJ BS_.uOhۖ'߀     !l$B˚%6!ìC"_zb@E_ n%'6 aro6Ds9 pFh@릱p4DBmFclI/6ƽI&`yrZ=V F+! W*2);J+eH> :xʺ>nxR8o)Tv*ɱv3.b*u} W*+?'~Ƥjq6k0D)';,"X1*8HO:^!?ΤM &qY3H m;;zL֛M")Ww;]yGP^7MFvw!dm>b(4Ɯ< j1__cSכq"';ƿF>2A|P4? $+˫9 &Ks'1r O` |;aT Ô!Z+[.Z(И3zc-`ϑ,Z+qGd$}dIމBR8^ n.w0dXCY/dTrU܅E \%BjSwL!ˡ<`G΀ Lz#DL=!+wr MV?!;G.!%BjSwXQ̜zˆ |O40'_9gm2Kh']K6[ʤy4 /(xwv7a~cb$QuPREOHV%u1~<׸Ti[ꛃW|V}'uT0;$BheW>!" 1'/9{ZP?ha#< iy-|aIYE,3>+CyiG< Íı5}MρY,ħGaCL\؜ZKc;9SVg|UDz,X=y| 65uղ'ZKc;9SVg| wYunj2𨔪7ٸDvz(X?9lay -DLY-6k>wϾ{*P{!O:071:i8p'=sĘ(`N9y3T[kx %.\@_uY.)7few) |(r=t j';կ qPՉRQ՚OZŏ?KٌL\lD.س= uue4@x ߎ#JC6 N!j      χMsˊi'[c}UәN^+ K1yiTJr-[vu{h]KJY>\ZIS>SƩbOx7y,ҲJڝ6,Tޭ 1QMy/e^~jXV!>ɒχEsˊi'[c}U5O*M>^(]OXIG5 Q)WʦSXm;0!ooTqEҮ3K҅w6<pL|jXV!>ɒË.fJ /dWFiǦa.Jwf0pKIاwV`>;z|e ĵ rDX7JlkSJ 'OgͧD濽Y/-M"TIlN 0ñJ < ;=a`A BeiU+ݨN#w?U;MHA !41qXlkg3puB#ɗv<8|Ü>87K]lc?lAl LJ9nxkF}"NBsH<\LKH|'Vb wFCcd1حǪσDO)yZ1x'β/u@@`n N5lܛ=6E:@PĨN5TqzU9.ȁ@wKʓ4BC[WsFdr鄈@r`ZF\~gj> wFCcd1حǪ >T4uc3s/Fyh*%3?wY.v~(~LEra)ofLs&1[BmG SfV~^So }\ׇYn;#`AU3Hp#IGY6׾i}yhT$yF3@i&܀xM dː+wϿl$Ɍch:>ф-"tu >T4uc3s/Fyh*%3?wY.v~(~LEra)ofLs&1[BmG SfV~^So }\ׇYn;#`AU3Hp#IGY6׾i}yhT$yF3@i&܀xM dː+wϿl$Ɍch:>ф-"tuKD oD@Ev^,nj$5tzU^UwlG9e1BNfc܁KcyGM6i-%(ZeiW>$:ߔD@?ɠ68n;$ؕ'"fTc~}DKD oD@Ev^,nj$5tzU^UwlG9e1BNfc܁KcyGM6i-%(ZeiW>$:ߔD@?ɠ68n;$ؕ'"fTc~}Dx-RI w 5Z S0eF;g T&E90QgR$aE+6ޭ)pʵ 1/+vn9߼D<@T 'S'7XzA0 _\sA?O5*UEF 1 3l./gPL@.mu(0KTDWE7"!}Y'Kcx-RI w 5Z S0eF;g T&E90QgR$aE+6ޭ)pʵ 1/+vn9߼D<@T 'S'7XzA0 _\sA?O5*UEF 1 3l./gPL@.mu(0KTDWE7"!}Y'Kc@ \I#ÍtOE=~zV[vd{L"V"6 @,$ ʇpHO^`Na/Vr!CW̼!& pvu;,XW_Ý$-ΖHחl+gHs]D~`vޖ+ T?a^,@ZC?%Ō#ҵ{/SI\*y9#jM݉bDyI&Pݧ)p!`$R\P!PZ ς|6@'7KkEH~!lGU"wj,HJzkEp⺎JQ GzX7UGJpl-x"^jo˥_ѻ9cj~Ne t\%#/ô-`(7KkEH~!lGU"K&mEp|E/p##-a) APɴ 6}8AN0Qx $Iăc,&L.^]@n3*M3EH-buIA P ‚(4S9Lմ9OP)X*8v&Aޣtw[Ob XtVJF|WwB./NyJFױz|KәՅ[gvXÍA'Pa j3JBvjOtn0CC548K-%i&5ᇃڦqzןA鳩&/o\6&OYb #(.KO?;S/XĖ1DjGy'H٧wU>d[CP?i,troSÌz6d%ƀkdKt, m E7=-> ewr# Cvr $xTJ %$zIP?WN_MGȾ +uݡu:HbVɦ9]/9 %         Z _,Nz7[rB\r69M}}9b{IAD2k/9U6W X*gὤ:K 2=ޑu!jxH'@x=fx'*t01%zzCP^,No}QR)n'l'b=pо.T^z]?l6m*B&0,XI+ F DD龖4VӀ2 ܭ +Or$O,d8rF!k;Pvhtf9fN3w1=Yӵ9t[4@ⅸ ީ̱; RZZӮKs-Lyƙ 5;i!1vb-C]E⍬óԅh;Fx84o*NRgW?]r`Mn vP,x|*z 0%/<#d=3ۦɑv+eazed(*?j[Ml.}m4Oo#o;gLoAksb◖_i?7(rakGVߵ[/yf$Uk>r `T&=7ӄLf;5[БmBGM'xெhŠxc#ڐ \|ʾ(V2߷^#lZ'DBvU0"; ?Ѭe`LX}N2L,whvJ_]?'"6 Qm1*ӊRϰ[ V"I8-}X%dX3\NWCtqޱ|7]4ŌM UF4hR&+<*<(QxĸbNCHƜ_qY]})p+y%*JX(IDxrt#If_|9+|Q<*YLi[汭6u*4:I}dE)q&J&3{ɸݜ-ƓBQm5+G ͷEʝ ST#.J{O&h WY<ư d}O'JD8W&S|EIczf6ĵB/d(;0WKLMn;\OFP]̀)Aem0[as4Óx51E-47F RٰMVa,NvK5v[Bq*b$+9(v1) | tۂqn|~C1:bKH[ad{YeFXx.Ύ~yVA! [VZuJ]-DPVty%E 8RCvg WZe']N I%]Z+p֯oimPXӨB (R!(ægY |֩=krRTs$ v#28d ?>I=-kvaLLwIv>'T%MM}s2xn] 5lw4oi3Y, =SI֗VG,Or/Z~o-R }nku*1μwOLHx֜i0.pKEk lO]B-Z0'.4%zz\H%_e!eN~e<7ȅ/+.̗`R O Eԉ?w6O Ck]@1& -jtj+Uz9ΉU75R3y.gb G)i);֢u(~]*ŋ#Z4U58!g Q|B\K;Kk6\8={|`$Ii8pp ^0v O`˧ņVBɀtG Fl(l%,+%glru@z#m-p!pNR4EL" >3 dv\"+K 9WK}ր [ }Q=NDbbOz"=9Sh)غ4MD p#܅x>HPpS7`GJYp#]Da      r~ P,MHɿtX$b,(:K 02ۻ0n^pY)n 2s'Bgm$as('hgD`؁]M!ވGG/#4MX7Y@=25޲Quz b)g2[t_wˆ[f98d $2uyC  havk7w2^lNOȪZSA@8"G_3z1LvyEK g,,la:˂$$E\롹x;?UlscW_H-sk CnZ,~:UԮ z$9v /ϮOUS$hsSQA<Ř)m vPbY.QE ʤAo$qeLptȎa#4M2 #vDK =~}=&RO&6Y\ZY+ׄ]~n/jE frէW%oo(AfP$,͇/Qz(i+໱<2q.,Kˆ9COu$˂$$E\롹x;?UlscW_H-sk CnZ,~:UԮ z$# n&mлI%3DrTʤAo$qeLptȎa#4M2 #vDK =~}=&ROiP KAO<* AN .4/jE frէW%oo(AfP$,h::w[ CBCpо3z5d=ߟ^&Twjp>%$=G̅ȖHOCΆdɊݡuXN6;R뱢-v#yHꗶ'd$r~G+tG۩f0vH[y= te> P('Jd+Cڂ>\?7A>AXy޷eaxkas_^0 yVP6ʗp'C(O_Pp#T'fǺPaC*#VB0FSHv߾v3=eٞk@dWs-lTx^bB.y"$ ,Kb<7o |h>2`Xy޷eaxkas_^0 yVP6 Os1Z#W!MǺPaC*#VB0FSHv߾v3=eٞkh][:wArO@.y"$ ,Kbm%8$cVwL&Vi^Zˁ"mګiVhFk=^2a_`hE`h&6 +o7JpύK{ $5$ߞ3<6ē'8ƜU4^oPQ6wKQ 4Wj޷MKk'XF^kx }USzs,! <iMw]Nr QTo~FB@G ~Vm7KSۃ>m%8$cVwL&Vi^Zˁ"mګiVhFk=^2a_`hE`h&6 +o7JpύA@$|g&nL`H f\ăЕ|&dK(y9A}w&<[f9ĖƠ;˔SQ:2Q=.ZkAi*`O$5HGIeںÇ֋>f0H/{ YMYEZϷT)] uB?'ikUi} p vɃ]@*.X!.hƣikQ;(fHn^*$jo0:f0H/{ YMYEZϷT)] uB?'ikUi} p vɃ]@*.X!.hƣikQ;(fHn^*$jo0:vUc Je_T1ul@"TN\r4]$7QRE H1nd Yȓш͒ZmH$ 0.V+QrFu0Id9B^L9@z`'`B]Qf'yi:y U{MF-K;@]8KӧwYxମX&hU@oEq vUc JeWUoV6mm~l a믗^Z@i-̳(dVu*SUS1(,KlS5*d_>0uhHI#)Qf6t 3&t 4RS`A")Kqbz\9WpS]4`w$`qLV#_.7|cc+ S@ =`n43=/C9zxZ4Zo_v]a'q#^%U?&`dV\)\"&;t='8T wiS\d1Rǜ*:ۚ)%*"%pEzCYZ0| 25|g|0#ꔱʀ\q>m+H.Qǩ,ڻdL?«qw6/ԝ:ߕ8 Mc+:u^\!ؤYmdC3H8U:E+JCu]_Xx1WfENYf ԓ!::C5 5^XWS- 'Kk8_ S\Ft9jk{v;*֪8`<He|&o9I:hOJ8ÂF6'6R^ 5qF)~Gz[}6H?3du䋲8KmzE"`ǭHѱ_VfI۱IuM^ݠWL5Y:]8N$8xls]Xs5\\X>.pQ68p¡^F %8hC*w <U620C۩dpA DKʞjV1E<8mE- vZsAKXm/6`KsIWYxz92AMH2͹ j=?B48n@ o.\^r3JCD0ox Mz p;|%G%ƣ b@7ONwLb8<_|63\LlX$%&ߪj)Vå5 ò K`'S$'zi %?(MTܳ$hR -o(W71VAtvCr7ԇD!!P01-=TiX+V|{=i4װ-簓x-0:Ж CU{2\R:SbsN=DjZ$@[F*[o`d ?]΀ ~g›`|)~ &2Ai&tl &5fsd}*\䪟o$#Wΐhw؊j/9@C,:^0yVAv+ iG MCOcV]d@.;5za\mtZeZhb`x` KYMnTSӗH\X.bR=/a[(s$m#2dV%.S )[o2yY>4&!lV(X$>Er[;i" øWPr@qӆc?s1V"-#~[| B"uf\7cv"_t3Z-._ [2a ô$n_Wbҫ?wx/QsnZ[gM^򍥙'wI ~g@@,vc%bRg(6d𺲼|C_- 't?qIiPA&vŇbp2U#Tvf;Q[!Y%b蠞ģ9ۚˬeM"Uv {W"f|Mx^j9 7)ϒR'Nv P`Z϶}!' Kլx)п7* $g\m>9^ $*I|a#.7w7G}uiqar/pV!, k"jX%H3NA0-bҩkV3:^qL"`8yˏ  \t<]HYf}Ù?߬tK ʅU:U;)2 Hgⱃ,f󨺉AGptp /R!%rp0=32qF /FyQCPCƫ? ]c_S6 .~sŧJ;S0P"8/Qh')EtaiuCVW#$r)>bWP/)_HM>W@+0DoK F>VdbY% 5yᅘ4J/_ꆪxC7,SzyCf/tA Q-f|_v$=Z?ObrH5+$B "<[{E^^p=:uY⌙ ᷷HJ6D" IT_pNffV썹1hi 8(?pj\Z:KʍoxqOa{MPq%EѦ{/k6\@QS/-+mHw/`K ˈ$Sj*2J} $+t3ӂ `~Y*;N%Hu:        glymur-0.9.1/tests/data/text_GBR_rreq.txt000066400000000000000000000013741360775562100204040ustar00rootroot00000000000000Reader Requirements Box (rreq) @ (40, 109) Fully Understands Aspect Mask: 0xffff Display Completely Mask: 0xf8f0 Standard Features and Masks: Feature 001: 0x8000 Deprecated - contains no extensions Feature 005: 0x4080 Unrestricted JPEG 2000 Part 1 codestream, ITU-T Rec. T.800 | ISO/IEC 15444-1 Feature 012: 0x2040 Deprecated - codestream is contiguous Feature 018: 0x1020 Deprecated - support for compositing is not required Feature 044: 0x810 Compositing layer uses Any ICC profile Vendor Features: UUID 3a0d0218-0ae9-4115-b376-4bca41ce0e71 UUID 47c92ccc-d1a1-4581-b904-38bb5467713b UUID bc45a774-dd50-4ec6-a9f6-f3a137f47e90 UUID d7c8c5ef-951f-43b2-8757-042500f538e8 glymur-0.9.1/tests/data/text_gbr_34.txt000066400000000000000000000016301360775562100200140ustar00rootroot00000000000000Colour Specification Box (colr) @ (179, 1339) Method: any ICC profile Precedence: 2 Approximation: accurately represents correct colorspace definition ICC Profile: {'Size': 1328, 'Preferred CMM Type': 1634758764, 'Version': '2.2.0', 'Device Class': 'display device profile', 'Color Space': 'RGB', 'Connection Space': 'XYZ', 'Datetime': datetime.datetime(2009, 2, 25, 11, 26, 11), 'File Signature': 'acsp', 'Platform': 'APPL', 'Flags': 'not embedded, can be used independently', 'Device Manufacturer': 'appl', 'Device Model': '', 'Device Attributes': 'reflective, glossy, positive media polarity, color ' 'media', 'Rendering Intent': 'perceptual', 'Illuminant': array([ 0.96420288, 1. , 0.8249054 ]), 'Creator': 'appl'} glymur-0.9.1/tests/data/text_gbr_35.txt000066400000000000000000000021561360775562100200210ustar00rootroot00000000000000Colour Specification Box (colr) @ (179, 1339) Method: any ICC profile Precedence: 2 Approximation: accurately represents correct colorspace definition ICC Profile: OrderedDict([('Size', 1328), ('Preferred CMM Type', 1634758764), ('Version', '2.2.0'), ('Device Class', 'display device profile'), ('Color Space', 'RGB'), ('Connection Space', 'XYZ'), ('Datetime', datetime.datetime(2009, 2, 25, 11, 26, 11)), ('File Signature', 'acsp'), ('Platform', 'APPL'), ('Flags', 'not embedded, can be used independently'), ('Device Manufacturer', 'appl'), ('Device Model', ''), ('Device Attributes', 'reflective, glossy, positive media polarity, color media'), ('Rendering Intent', 'perceptual'), ('Illuminant', array([ 0.96420288, 1. , 0.8249054 ])), ('Creator', 'appl')]) glymur-0.9.1/tests/fixtures.py000066400000000000000000000121351360775562100164430ustar00rootroot00000000000000""" Test fixtures common to more than one test point. """ # Standard library imports import pathlib import shutil import tempfile import unittest # 3rd party library imports try: import gdal _HAVE_GDAL = True except ModuleNotFoundError: _HAVE_GDAL = False import numpy as np # Local imports import glymur # Require at least a certain version of openjpeg for running most tests. if glymur.version.openjpeg_version < '2.2.0': # pragma: no cover OPENJPEG_NOT_AVAILABLE = True OPENJPEG_NOT_AVAILABLE_MSG = ('A version of OPENJPEG of at least v2.2.0 ' 'must be installed.') else: OPENJPEG_NOT_AVAILABLE = False OPENJPEG_NOT_AVAILABLE_MSG = None class TestCommon(unittest.TestCase): """ Common setup for many if not all tests. """ def setUp(self): # Supply paths to these three shipping example files. self.jp2file = glymur.data.nemo() self.j2kfile = glymur.data.goodstuff() self.jpxfile = glymur.data.jpxfile() # Create a temporary directory to be cleaned up following each test, as # well as names for a JP2 and a J2K file. self.test_dir = tempfile.mkdtemp() self.test_dir_path = pathlib.Path(self.test_dir) self.temp_jp2_filename = self.test_dir_path / 'test.jp2' self.temp_j2k_filename = self.test_dir_path / 'test.j2k' self.temp_jpx_filename = self.test_dir_path / 'test.jpx' def tearDown(self): shutil.rmtree(self.test_dir) class MetadataBase(TestCommon): """ Base class for testing metadata. This class has helper routines defined for testing metadata so that it can be subclassed and used easily. """ def verify_codeblock_style(self, actual, styles): """ Verify the code-block style for SPcod and SPcoc parameters. This information is stored in a single byte. Please reference Table A-17 in FCD15444-1 """ expected = 0 masks = [ 0x01, # Selective arithmetic coding bypass 0x02, # Reset context probabilities 0x04, # Termination on each coding pass 0x08, # Vertically causal context 0x10, # Predictable termination 0x20, # Segmentation symbols ] for style, mask in zip(styles, masks): if style: expected |= mask self.assertEqual(actual, expected) def verify_filetype_box(self, actual, expected): """ All JP2 files should have a brand reading 'jp2 ' and just a single entry in the compatibility list, also 'jp2 '. JPX files can have more compatibility items. """ self.assertEqual(actual.brand, expected.brand) self.assertEqual(actual.minor_version, expected.minor_version) self.assertEqual(actual.minor_version, 0) for cl in expected.compatibility_list: self.assertIn(cl, actual.compatibility_list) def verifySizSegment(self, actual, expected): """ Verify the fields of the SIZ segment. """ for field in ['rsiz', 'xsiz', 'ysiz', 'xosiz', 'yosiz', 'xtsiz', 'ytsiz', 'xtosiz', 'ytosiz', 'bitdepth', 'xrsiz', 'yrsiz']: self.assertEqual(getattr(actual, field), getattr(expected, field)) def mse(amat, bmat): """Mean Square Error""" diff = amat.astype(np.double) - bmat.astype(np.double) err = np.mean(diff**2) return err def load_test_data(name): basename = name + '.txt' path = pathlib.Path(__file__).parent / 'data' / basename # Have to use str for python < 3.6 with open(str(path), mode='rt') as f: return f.read().rstrip('\n') DECOMPRESSION_PARAMETERS_TYPE = load_test_data('decompression_parameters_type') id = 'default_compression_parameters_type' DEFAULT_COMPRESSION_PARAMETERS_TYPE = load_test_data(id) id = 'default_progression_order_changes_type' DEFAULT_PROGRESSION_ORDER_CHANGES_TYPE = load_test_data(id) FILE1_XML = load_test_data('file1_xml') FILE1_XML_BOX = load_test_data('file1_xml_box') if _HAVE_GDAL: if gdal.VersionInfo() < '3': GEOTIFF_UUID = load_test_data('geotiff_uuid') else: GEOTIFF_UUID = load_test_data('geotiff_uuid_proj6') else: # Most likely Cygwin? GEOTIFF_UUID = None GOODSTUFF_CODESTREAM_HEADER = load_test_data('goodstuff_codestream_header') GOODSTUFF_WITH_FULL_HEADER = load_test_data('goodstuff_with_full_header') ISSUE186_PROGRESSION_ORDER = load_test_data('issue186_progression_order') MULTIPLE_PRECINCT_SIZE = load_test_data('multiple_precinct_size') NEMO = load_test_data('nemo') NEMO_DUMP_NO_XML = load_test_data('nemo_dump_no_xml') NEMO_DUMP_NO_CODESTREAM = load_test_data('nemo_dump_no_codestream') data = load_test_data('nemo_dump_no_codestream_no_xml') NEMO_DUMP_NO_CODESTREAM_NO_XML = data NEMO_DUMP_SHORT = load_test_data('nemo_dump_short') NEMO_XMP_BOX = load_test_data('nemo_xmp_box') SIMPLE_RDF = load_test_data('simple_rdf') TEXT_GBR_34 = load_test_data('text_gbr_34') TEXT_GBR_35 = load_test_data('text_gbr_35') TEXT_GBR_RREQ = load_test_data('text_GBR_rreq') P1_07 = load_test_data('p1_07') glymur-0.9.1/tests/test_callbacks.py000066400000000000000000000041341360775562100175500ustar00rootroot00000000000000""" Test suite for openjpeg's callback functions. """ # Standard library imports ... from io import StringIO import warnings import unittest from unittest.mock import patch # Local imports ... import glymur from . import fixtures @unittest.skipIf(fixtures.OPENJPEG_NOT_AVAILABLE, fixtures.OPENJPEG_NOT_AVAILABLE_MSG) class TestSuite(fixtures.TestCommon): """Test suite for callbacks.""" def test_info_callback_on_write_backwards_compatibility(self): """ SCENARIO: write to a J2K file while in verbose mode EXPECTED RESULT: verify messages from the library """ j = glymur.Jp2k(self.jp2file) with warnings.catch_warnings(): # Ignore a library warning. warnings.simplefilter('ignore') tiledata = j.read(tile=0) with patch('sys.stdout', new=StringIO()) as fake_out: glymur.Jp2k(self.temp_j2k_filename, data=tiledata, verbose=True) actual = fake_out.getvalue().strip() expected = '[INFO] tile number 1 / 1' self.assertEqual(actual, expected) def test_info_callback_on_write(self): """ SCENARIO: write to a JP2 file while in verbose mode EXPECTED RESULT: verify messages from the library """ j = glymur.Jp2k(self.jp2file) tiledata = j[:] with patch('sys.stdout', new=StringIO()) as fake_out: glymur.Jp2k(self.temp_jp2_filename, data=tiledata, verbose=True) actual = fake_out.getvalue().strip() expected = '[INFO] tile number 1 / 1' self.assertEqual(actual, expected) def test_info_callbacks_on_read(self): """ SCENARIO: the verbose attribute is set to True EXPECTED RESULT: The info callback handler should be enabled. There should be [INFO] output present in sys.stdout. """ jp2 = glymur.Jp2k(self.j2kfile) with patch('sys.stdout', new=StringIO()) as fake_out: jp2.verbose = True jp2[::2, ::2] actual = fake_out.getvalue().strip() self.assertIn('[INFO]', actual) glymur-0.9.1/tests/test_cinema.py000066400000000000000000000115211360775562100170630ustar00rootroot00000000000000""" Module for tests specifically devoted to cinema profile. """ # Standard library imports import unittest import warnings # 3rd party library imports import numpy as np # Local imports import glymur from glymur import Jp2k from glymur.codestream import SIZsegment from . import fixtures class CinemaBase(fixtures.MetadataBase): def verify_cinema_cod(self, cod_segment): self.assertFalse(cod_segment.scod & 2) # no sop self.assertFalse(cod_segment.scod & 4) # no eph self.assertEqual(cod_segment.prog_order, glymur.core.CPRL) self.assertEqual(cod_segment.layers, 1) self.assertEqual(cod_segment.mct, 1) self.assertEqual(cod_segment.num_res, 5) # levels self.assertEqual(tuple(cod_segment.code_block_size), (32, 32)) def check_cinema4k_codestream(self, codestream, image_size): kwargs = {'rsiz': 4, 'xysiz': image_size, 'xyosiz': (0, 0), 'xytsiz': image_size, 'xytosiz': (0, 0), 'bitdepth': (12, 12, 12), 'signed': (False, False, False), 'xyrsiz': [(1, 1, 1), (1, 1, 1)]} self.verifySizSegment(codestream.segment[1], SIZsegment(**kwargs)) self.verify_cinema_cod(codestream.segment[2]) def check_cinema2k_codestream(self, codestream, image_size): kwargs = {'rsiz': 3, 'xysiz': image_size, 'xyosiz': (0, 0), 'xytsiz': image_size, 'xytosiz': (0, 0), 'bitdepth': (12, 12, 12), 'signed': (False, False, False), 'xyrsiz': [(1, 1, 1), (1, 1, 1)]} self.verifySizSegment(codestream.segment[1], SIZsegment(**kwargs)) self.verify_cinema_cod(codestream.segment[2]) @unittest.skipIf(fixtures.OPENJPEG_NOT_AVAILABLE, fixtures.OPENJPEG_NOT_AVAILABLE_MSG) class WriteCinema(CinemaBase): @classmethod def setUpClass(cls): cls.jp2_data = glymur.Jp2k(glymur.data.nemo())[:] def test_cinema2K_bad_frame_rate(self): """ SCENARIO: The cinema2k frame rate is not either 24 or 48. EXPECTED RESULT: ValueError """ with open(self.temp_j2k_filename, mode='wb') as tfile: with self.assertRaises(ValueError): Jp2k(tfile.name, data=self.jp2_data, cinema2k=36) def test_NR_ENC_X_6_2K_24_FULL_CBR_CIRCLE_000_tif_17_encode(self): """ SCENARIO: create JP2 file with cinema2k profile at 24 fps EXPECTED RESULT: JP2 file has cinema2k profile The openjpeg test suite used the following input file for this test, input/nonregression/X_6_2K_24_FULL_CBR_CIRCLE_000.tif """ # Need to provide the proper size image data = np.concatenate((self.jp2_data, self.jp2_data), axis=0) data = np.concatenate((data, data), axis=1).astype(np.uint16) data = data[:1080, :2048, :] with warnings.catch_warnings(): # Ignore a warning issued by the library. warnings.simplefilter('ignore') j = Jp2k(self.temp_jp2_filename, data=data, cinema2k=24) codestream = j.get_codestream() self.check_cinema2k_codestream(codestream, (2048, 1080)) def test_NR_ENC_X_6_2K_24_FULL_CBR_CIRCLE_000_tif_20_encode(self): """ SCENARIO: create JP2 file with cinema2k profile at 48 fps EXPECTED RESULT: JP2 file has cinema2k profile The openjpeg test suite used the following input file for this test, input/nonregression/X_6_2K_24_FULL_CBR_CIRCLE_000.tif """ # Need to provide the proper size image data = np.concatenate((self.jp2_data, self.jp2_data), axis=0) data = np.concatenate((data, data), axis=1).astype(np.uint16) data = data[:1080, :2048, :] with warnings.catch_warnings(): # Ignore a warning issued by the library. warnings.simplefilter('ignore') j = Jp2k(self.temp_j2k_filename, data=data, cinema2k=48) codestream = j.get_codestream() self.check_cinema2k_codestream(codestream, (2048, 1080)) def test_NR_ENC_ElephantDream_4K_tif_21_encode(self): """ SCENARIO: create JP2 file with cinema4k profile EXPECTED RESULT: JP2 file has cinema4k profile The openjpeg test suite used the following input file for this test, input/nonregression/ElephantDream_4K.tif """ # Need to provide the proper size image data = np.concatenate((self.jp2_data, self.jp2_data), axis=0) data = np.concatenate((data, data), axis=1).astype(np.uint16) data = data[:2160, :4096, :] with warnings.catch_warnings(): # Ignore a warning issued by the library. warnings.simplefilter('ignore') j = Jp2k(self.temp_j2k_filename, data=data, cinema4k=True) codestream = j.get_codestream() self.check_cinema4k_codestream(codestream, (4096, 2160)) glymur-0.9.1/tests/test_codestream.py000066400000000000000000000137051360775562100177630ustar00rootroot00000000000000# -*- coding: utf-8 -*- """ Test suite for codestream oddities """ # Standard library imports ... try: import importlib.resources as ir except ImportError: # pragma: no cover # before 3.7 import importlib_resources as ir from io import BytesIO import struct import unittest import warnings # Local imports ... import glymur from glymur import Jp2k from . import fixtures, data class TestSuite(unittest.TestCase): """Test suite for ICC Profile code.""" def setUp(self): self.p0_03 = ir.path(data, 'p0_03.j2k') self.p0_06 = ir.path(data, 'p0_06.j2k') self.p1_06 = ir.path(data, 'p1_06.j2k') self.issue142 = ir.path(data, 'issue142.j2k') self.edf_c2_1178956 = ir.path(data, 'edf_c2_1178956.jp2') def test_tlm_segment(self): """ Verify parsing of the TLM segment. In this case there's only a single tile. """ with ir.path(data, 'p0_06.j2k') as path: j2k = Jp2k(path) buffer = b'\xffU\x00\x08\x00@\x00\x00YW' b = BytesIO(buffer[2:]) segment = j2k.codestream._parse_tlm_segment(b) self.assertEqual(segment.ztlm, 0) self.assertIsNone(segment.ttlm) self.assertEqual(segment.ptlm, (22871,)) def test_ppt_segment(self): """ Verify parsing of the PPT segment """ with ir.path(data, 'p1_06.j2k') as path: j2k = Jp2k(path) c = j2k.get_codestream(header_only=False) self.assertEqual(c.segment[6].zppt, 0) def test_plt_segment(self): """ Verify parsing of the PLT segment """ with ir.path(data, 'issue142.j2k') as path: c = Jp2k(path).get_codestream(header_only=False) self.assertEqual(c.segment[7].zplt, 0) self.assertEqual(len(c.segment[7].iplt), 59) def test_ppm_segment(self): """ Verify parsing of the PPM segment """ with ir.path(data, 'edf_c2_1178956.jp2') as path: with warnings.catch_warnings(): # Lots of things wrong with this file. warnings.simplefilter('ignore') jp2 = Jp2k(path) c = jp2.get_codestream() self.assertEqual(c.segment[2].zppm, 0) self.assertEqual(len(c.segment[2].data), 9) def test_crg_segment(self): """ Verify parsing of the CRG segment """ with ir.path(data, 'p0_03.j2k') as path: j2k = Jp2k(path) c = j2k.get_codestream() self.assertEqual(c.segment[6].xcrg, (65424,)) self.assertEqual(c.segment[6].ycrg, (32558,)) def test_rgn_segment(self): """ Verify parsing of the RGN segment """ with ir.path(data, 'p0_06.j2k') as path: j2k = Jp2k(path) c = j2k.get_codestream() self.assertEqual(c.segment[-1].crgn, 0) self.assertEqual(c.segment[-1].srgn, 0) self.assertEqual(c.segment[-1].sprgn, 11) class TestCodestreamRepr(unittest.TestCase): def setUp(self): self.jp2file = glymur.data.nemo() def tearDown(self): pass def test_soc(self): """Test SOC segment repr""" segment = glymur.codestream.SOCsegment() newseg = eval(repr(segment)) self.assertEqual(newseg.marker_id, 'SOC') def test_siz(self): """Test SIZ segment repr""" kwargs = {'rsiz': 0, 'xysiz': (2592, 1456), 'xyosiz': (0, 0), 'xytsiz': (2592, 1456), 'xytosiz': (0, 0), 'Csiz': 3, 'bitdepth': (8, 8, 8), 'signed': (False, False, False), 'xyrsiz': ((1, 1, 1), (1, 1, 1))} segment = glymur.codestream.SIZsegment(**kwargs) newseg = eval(repr(segment)) self.assertEqual(newseg.marker_id, 'SIZ') self.assertEqual(newseg.xsiz, 2592) self.assertEqual(newseg.ysiz, 1456) self.assertEqual(newseg.xosiz, 0) self.assertEqual(newseg.yosiz, 0) self.assertEqual(newseg.xtsiz, 2592) self.assertEqual(newseg.ytsiz, 1456) self.assertEqual(newseg.xtosiz, 0) self.assertEqual(newseg.ytosiz, 0) self.assertEqual(newseg.xrsiz, (1, 1, 1)) self.assertEqual(newseg.yrsiz, (1, 1, 1)) self.assertEqual(newseg.bitdepth, (8, 8, 8)) self.assertEqual(newseg.signed, (False, False, False)) class TestCodestream(fixtures.TestCommon): """Test suite for unusual codestream cases.""" def test_reserved_marker_segment(self): """ SCENARIO: Rewrite a J2K file to include a marker segment with a reserved marker 0xff6f (65391). EXPECTED RESULT: The marker segment should be properly parsed. """ with open(self.temp_j2k_filename, 'wb') as tfile: with open(self.j2kfile, 'rb') as ifile: # Everything up until the first QCD marker. read_buffer = ifile.read(65) tfile.write(read_buffer) # Write the new marker segment, 0xff6f = 65391 read_buffer = struct.pack('>HHB', int(65391), int(3), int(0)) tfile.write(read_buffer) # Get the rest of the input file. read_buffer = ifile.read() tfile.write(read_buffer) tfile.flush() codestream = Jp2k(tfile.name).get_codestream() self.assertEqual(codestream.segment[3].marker_id, '0xff6f') self.assertEqual(codestream.segment[3].length, 3) self.assertEqual(codestream.segment[3].data, b'\x00') def test_siz_segment_ssiz_unsigned(self): """ssiz attribute to be removed in future release""" j = Jp2k(self.jp2file) codestream = j.get_codestream() # The ssiz attribute was simply a tuple of raw bytes. # The first 7 bits are interpreted as the bitdepth, the MSB determines # whether or not it is signed. self.assertEqual(codestream.segment[1].ssiz, (7, 7, 7)) glymur-0.9.1/tests/test_colour_specification_box.py000066400000000000000000000176521360775562100227150ustar00rootroot00000000000000# -*- coding: utf-8 -*- """ Test suite specifically targeting ICC profiles """ # Standard library imports ... from datetime import datetime try: import importlib.resources as ir except ImportError: # pragma: no cover # before 3.7 import importlib_resources as ir import struct import tempfile import unittest import warnings # Third party library imports import numpy as np # Local imports import glymur from glymur import Jp2k from glymur._iccprofile import _ICCProfile from glymur.jp2box import ( ColourSpecificationBox, ContiguousCodestreamBox, FileTypeBox, ImageHeaderBox, JP2HeaderBox, JPEG2000SignatureBox, InvalidJp2kError ) from glymur.core import SRGB from . import fixtures, data class TestColourSpecificationBox(fixtures.TestCommon): """Test suite for colr box instantiation.""" def setUp(self): super(TestColourSpecificationBox, self).setUp() j2k = Jp2k(self.j2kfile) codestream = j2k.get_codestream() height = codestream.segment[1].ysiz width = codestream.segment[1].xsiz num_components = len(codestream.segment[1].xrsiz) self.jp2b = JPEG2000SignatureBox() self.ftyp = FileTypeBox() self.jp2h = JP2HeaderBox() self.jp2c = ContiguousCodestreamBox() self.ihdr = ImageHeaderBox(height=height, width=width, num_components=num_components) self.icc_profile = ir.read_binary(data, 'sgray.icc') def test_bad_method_printing(self): """ SCENARIO: An ICC profile is both too short and has an invalid method value. EXPECTED RESULT: Warnings are issued. Printing the string representation should not error out. """ with ir.path(data, 'issue405.dat') as path: with path.open('rb') as f: f.seek(8) with warnings.catch_warnings(): # Lots of things wrong with this file. warnings.simplefilter('ignore') box = ColourSpecificationBox.parse(f, length=80, offset=0) str(box) def test_colr_with_out_enum_cspace(self): """must supply an enumerated colorspace when writing""" j2k = Jp2k(self.j2kfile) boxes = [self.jp2b, self.ftyp, self.jp2h, self.jp2c] boxes[2].box = [self.ihdr, ColourSpecificationBox(colorspace=None)] with open(self.temp_jp2_filename, mode='wb') as tfile: with self.assertRaises(InvalidJp2kError): j2k.wrap(tfile.name, boxes=boxes) def test_missing_colr_box(self): """jp2h must have a colr box""" j2k = Jp2k(self.j2kfile) boxes = [self.jp2b, self.ftyp, self.jp2h, self.jp2c] boxes[2].box = [self.ihdr] with open(self.temp_jp2_filename, mode='wb') as tfile: with self.assertRaises(InvalidJp2kError): j2k.wrap(tfile.name, boxes=boxes) def test_bad_approx_jp2_field(self): """JP2 has requirements for approx field""" j2k = Jp2k(self.j2kfile) boxes = [self.jp2b, self.ftyp, self.jp2h, self.jp2c] colr = ColourSpecificationBox(colorspace=SRGB, approximation=1) boxes[2].box = [self.ihdr, colr] with open(self.temp_jp2_filename, mode='wb') as tfile: with self.assertRaises(InvalidJp2kError): j2k.wrap(tfile.name, boxes=boxes) def test_default_colr(self): """basic colr instantiation""" colr = ColourSpecificationBox(colorspace=SRGB) self.assertEqual(colr.method, glymur.core.ENUMERATED_COLORSPACE) self.assertEqual(colr.precedence, 0) self.assertEqual(colr.approximation, 0) self.assertEqual(colr.colorspace, SRGB) self.assertIsNone(colr.icc_profile) def test_icc_profile(self): """basic colr box with ICC profile""" colr = ColourSpecificationBox(icc_profile=self.icc_profile) self.assertEqual(colr.method, glymur.core.ENUMERATED_COLORSPACE) self.assertEqual(colr.precedence, 0) self.assertEqual(colr.approximation, 0) icc_profile = _ICCProfile(colr.icc_profile) self.assertEqual(icc_profile.header['Version'], '2.1.0') self.assertEqual(icc_profile.header['Color Space'], 'gray') self.assertIsNone(icc_profile.header['Datetime']) # Only True for version4 self.assertFalse('Profile Id' in icc_profile.header.keys()) def test_colr_with_bad_color(self): """ SCENARIO: A colr box has an invalid colorspace. EXPECTED RESULT: An InvalidJp2kError is raised when attempting to write the box. """ with self.assertWarns(UserWarning): # A warning is issued due to the bad colorspace. colr = ColourSpecificationBox(colorspace=-1, approximation=0) with tempfile.TemporaryFile() as tfile: with self.assertRaises(InvalidJp2kError): colr.write(tfile) def test_write_colr_with_bad_method(self): """ SCENARIO: A colr box has an invalid method value. EXPECTED RESULT: InvalidJp2kError """ with warnings.catch_warnings(): warnings.simplefilter('ignore') colr = ColourSpecificationBox(colorspace=SRGB, method=5) with tempfile.TemporaryFile() as tfile: with self.assertRaises(InvalidJp2kError): colr.write(tfile) class TestSuite(unittest.TestCase): """Test suite for ICC Profile code.""" def setUp(self): self.buffer = ir.read_binary(data, 'sgray.icc') def test_bad_rendering_intent(self): """ The rendering intent is not in the range 0-4. It should be classified as 'unknown' """ intent = struct.pack('>I', 10) self.buffer = self.buffer[:64] + intent + self.buffer[68:] icc_profile = _ICCProfile(self.buffer) self.assertEqual(icc_profile.header['Rendering Intent'], 'unknown') def test_version4(self): """ ICC profile is version 4 """ leadoff = struct.pack('>IIBB', 416, 0, 4, 0) self.buffer = leadoff + self.buffer[10:] icc_profile = _ICCProfile(self.buffer) self.assertEqual(icc_profile.header['Version'], '4.0.0') self.assertTrue('Profile Id' in icc_profile.header.keys()) def test_icc_profile(self): """ SCENARIO: The ColourDefinitionBox has an ICC profile. EXPECTED RESULT: Verify the ICC profile metadata. """ with ir.path(data, 'text_GBR.jp2') as path: with self.assertWarns(UserWarning): # The brand is wrong, this is JPX, not JP2. j = Jp2k(path) box = j.box[3].box[1] self.assertEqual(box.icc_profile_header['Size'], 1328) self.assertEqual(box.icc_profile_header['Color Space'], 'RGB') self.assertEqual(box.icc_profile_header['Connection Space'], 'XYZ') self.assertEqual(box.icc_profile_header['Datetime'], datetime(2009, 2, 25, 11, 26, 11)) self.assertEqual(box.icc_profile_header['File Signature'], 'acsp') self.assertEqual(box.icc_profile_header['Platform'], 'APPL') self.assertEqual(box.icc_profile_header['Flags'], 'not embedded, can be used independently') self.assertEqual(box.icc_profile_header['Device Manufacturer'], 'appl') self.assertEqual(box.icc_profile_header['Device Model'], '') self.assertEqual(box.icc_profile_header['Device Attributes'], ('reflective, glossy, positive media polarity, ' 'color media')) self.assertEqual(box.icc_profile_header['Rendering Intent'], 'perceptual') np.testing.assert_almost_equal(box.icc_profile_header['Illuminant'], np.array([0.9642023, 1.0, 0.824905]), decimal=6) self.assertEqual(box.icc_profile_header['Creator'], 'appl') glymur-0.9.1/tests/test_config.py000066400000000000000000000265371360775562100171110ustar00rootroot00000000000000"""These tests are for edge cases where OPENJPEG does not exist, but OPENJP2 may be present in some form or other. """ # Standard library imports ... import contextlib import imp import os import pathlib import platform import sys import unittest from unittest.mock import patch import warnings # Local imports ... import glymur from glymur import Jp2k from . import fixtures @contextlib.contextmanager def chdir(dirname=None): """ This context manager restores the value of the current working directory (cwd) after the enclosed code block completes or raises an exception. If a directory name is supplied to the context manager then the cwd is changed prior to running the code block. Shamelessly lifted from http://www.astropython.org/snippet/2009/10/chdir-context-manager """ curdir = os.getcwd() try: if dirname is not None: os.chdir(dirname) yield finally: os.chdir(curdir) @patch('glymur.config.glymurrc_fname', lambda: None) class TestSuitePathToLibrary(fixtures.TestCommon): """ Test the path determined for the openjp2 library. This test suite assumes NO rc config file, so we have to force that code path to not run in case we are actively using it. This should not be a problem in CI environments, just development environments. """ def setUp(self): super(TestSuitePathToLibrary, self).setUp() def tearDown(self): """ Do the normal tear-down, but then make sure that we reload the openjp2 library normally. Otherwise a bad library configuration might contaminate the next test. """ super(TestSuitePathToLibrary, self).tearDown() imp.reload(glymur) imp.reload(glymur.lib.openjp2) @patch('glymur.config.platform.system') @patch('glymur.config.sys.version', 'Anaconda') @patch('glymur.config.sys.executable', '/opt/anaconda/bin/python') def test_anaconda_on_mac(self, mock_platform_system): """ SCENARIO: the platform is Anaconda on mac. EXPECTED RESULT: the path of the openjp2 library is under the anaconda root. """ mock_platform_system.return_value = 'Darwin' actual = glymur.config._determine_full_path('openjp2') expected = pathlib.Path('/opt/anaconda/lib/libopenjp2.dylib') self.assertEqual(actual, expected) @unittest.skipIf(platform.system() == 'Windows', 'nonsensical on windows') @patch('glymur.config.platform.system') @patch('glymur.config.sys.version', 'Anaconda') @patch('glymur.config.sys.executable', '/usr/bin/python') def test_windows_path(self, mock_platform_system): """ SCENARIO: the platform is Anaconda on windows, even though we are not actually running on windows. EXPECTED RESULT: the path of the openjp2 library is an Anaconda DLL """ mock_platform_system.return_value = 'Windows' actual = glymur.config._determine_full_path('openjp2') expected = pathlib.Path('/usr/bin/Library/bin/openjp2.dll') self.assertEqual(actual, expected) @patch('pathlib.Path.exists') @patch('glymur.config.sys.version', 'not anaconda') @patch('glymur.config.platform.system') def test_macports(self, mock_platform_system, mock_path_exists): """ SCENARIO: the platform is MacPorts. EXPECTED RESULT: the path of the openjp2 library is in /opt/local """ mock_platform_system.return_value = 'Darwin' mock_path_exists.return_value = True actual = glymur.config._determine_full_path('openjp2') expected = pathlib.Path('/opt/local/lib/libopenjp2.dylib') self.assertEqual(actual, expected) @patch('glymur.config.sys.version', 'not anaconda') @patch('glymur.config.find_library') @patch('glymur.config.platform.system') def test_via_ctypes(self, mock_platform_system, mock_find_library): """ SCENARIO: the platform is not anaconda and not MacPorts. The ctypes module finds the library. EXPECTED RESULT: the path of the openjp2 library is on standard system paths """ mock_platform_system.return_value = 'not darwin' mock_find_library.return_value = '/usr/lib/libopenjp2.so' actual = glymur.config._determine_full_path('openjp2') expected = pathlib.Path('/usr/lib/libopenjp2.so') self.assertEqual(actual, expected) @patch('glymur.config.glymurrc_fname', lambda: None) class TestSuite(fixtures.TestCommon): """ This test suite assumes NO rc config file, so we have to force that code path to not run in case we are actively using it. This should not be a problem in CI environments, just development environments. """ @patch('glymur.config.sys.version', 'not anaconda') @patch('glymur.config.find_library') @patch('glymur.config.platform.system') def test_not_via_ctypes(self, mock_platform_system, mock_find_library): """ SCENARIO: the platform is not anaconda and not MacPorts. The ctypes module does NOT find the library. EXPECTED RESULT: the path of the openjp2 library is None """ mock_platform_system.return_value = 'not darwin' mock_find_library.return_value = None actual = glymur.config.glymur_config() self.assertIsNone(actual) @unittest.skipIf(platform.system() == 'Windows', 'nonsensical on windows') @patch('glymur.config.platform.system') @patch('pathlib.Path.home') def test_config_dir_on_windows(self, mock_pathlib_path_home, mock_platform_system): """ SCENARIO: the XDG_CONFIG_HOME environment variable is not present, the os.name *IS* 'nt'. Don't bother running on windows because that's what we are trying to test from other platforms. EXPECTED RESULT: the path to the configuration directory should be under the home directory """ mock_platform_system.return_value = 'Windows' expected_path = pathlib.Path('/neither/here/nor/there') mock_pathlib_path_home.return_value = expected_path with patch.dict('os.environ', values=()): # Just make sure XDG_CONFIG_HOME is not present. actual = glymur.config.get_configdir() self.assertEqual(actual, expected_path / 'glymur') class TestSuiteOptions(unittest.TestCase): def setUp(self): glymur.reset_option('all') def tearDown(self): glymur.reset_option('all') def test_reset_single_option(self): """ Verify a single option can be reset. """ glymur.set_option('print.codestream', True) glymur.reset_option('print.codestream') self.assertTrue(glymur.get_option('print.codestream')) def test_bad_reset(self): """ Verify exception when a bad option is given to reset """ with self.assertRaises(KeyError): glymur.reset_option('blah') def test_bad_deprecated_print_option(self): """ Verify exception when a bad option is given to old set_printoption """ with self.assertRaises(KeyError): with warnings.catch_warnings(): warnings.simplefilter('ignore') glymur.set_printoptions(blah='value-blah') @unittest.skipIf(fixtures.OPENJPEG_NOT_AVAILABLE, fixtures.OPENJPEG_NOT_AVAILABLE_MSG) class TestSuiteConfigFile(fixtures.TestCommon): """Test suite for configuration file operation.""" def setUp(self): super(TestSuiteConfigFile, self).setUp() # Setup a config root for glymur. self.config_root = self.test_dir_path / 'config' self.config_root.mkdir() self.glymur_configdir = self.config_root / 'glymur' self.glymur_configdir.mkdir() self.config_file = self.glymur_configdir / 'glymurrc' def tearDown(self): """ Do the normal tear-down, but then make sure that we reload the openjp2 library normally. Otherwise a bad library configuration might contaminate the next test. """ super(TestSuiteConfigFile, self).tearDown() imp.reload(glymur) imp.reload(glymur.lib.openjp2) def test_config_file_via_environ(self): """ SCENARIO: Specify the configuration file via an environment variable. EXPECTED RESULT: The openjp2 library is loaded normally. """ with self.config_file.open('wt') as f: f.write('[library]\n') # Need to reliably recover the location of the openjp2 library, # so using '_name' appears to be the only way to do it. libloc = glymur.lib.openjp2.OPENJP2._name line = 'openjp2: {0}\n'.format(libloc) f.write(line) new = {'XDG_CONFIG_HOME': str(self.config_root)} with patch.dict('os.environ', new): imp.reload(glymur.lib.openjp2) Jp2k(self.jp2file) def test_config_file_without_library_section(self): """ SCENARIO: A config directory is specified via the environment variable, but the config file does not have a library section. EXPECTED RESULT: Just don't error out. """ with self.config_file.open('wt') as f: f.write('[testing]\n') f.write('opj_data_root: blah\n') new = {'XDG_CONFIG_HOME': str(self.config_root)} with patch.dict('os.environ', new): imp.reload(glymur.lib.openjp2) # It's enough that we did not error out self.assertTrue(True) def test_config_dir_but_no_config_file(self): """ SCENARIO: A config directory is specified via the environment variable, but no config file exists. EXPECTED RESULT: openjp2 library is still loaded from default location, but a warning is also issued. """ new = {'XDG_CONFIG_HOME': str(self.config_root)} with patch.dict('os.environ', new): imp.reload(glymur.lib.openjp2) self.assertIsNotNone(glymur.lib.openjp2.OPENJP2) @unittest.skipIf(platform.system() == 'Windows', 'Symlinks require elevated privs on Windows, GH#505') @unittest.skipIf(platform.system() == 'Linux' and sys.prefix == '/usr', 'Difficult to run on Linux unless Anaconda, GH#496') def test_config_file_in_current_directory(self): """ SCENARIO: A configuration file exists in the current directory. EXPECTED RESULT: openjp2 library is loaded normally. """ existing_library = glymur.lib.openjp2.OPENJP2._name # Make a soft link from a fake library directory to the existing # location. new_lib_dir = self.test_dir_path / 'lib' new_lib_dir.mkdir() new_library_path = new_lib_dir / 'libopenjp2.dylib' new_library_path.symlink_to(existing_library) with self.config_file.open('wt') as f: f.write('[library]\n') f.write(f'openjp2: {new_library_path}\n') with chdir(self.glymur_configdir): # Should be able to load openjp2 as before. imp.reload(glymur.lib.openjp2) actual = glymur.lib.openjp2.OPENJP2._name expected = new_library_path self.assertEqual(actual, expected) glymur-0.9.1/tests/test_jp2box.py000066400000000000000000001453501360775562100170430ustar00rootroot00000000000000"""Test suite specifically targeting JP2 box layout. """ # Standard library imports ... import doctest try: import importlib.resources as ir except ImportError: # pragma: no cover # before 3.7 import importlib_resources as ir from io import BytesIO import os import pathlib import re import shutil import struct import tempfile from uuid import UUID import unittest import warnings # Third party library imports ... import lxml.etree as ET import numpy as np # Local imports ... import glymur from glymur import Jp2k from glymur.jp2box import ( ColourSpecificationBox, ContiguousCodestreamBox, FileTypeBox, ImageHeaderBox, JP2HeaderBox, JPEG2000SignatureBox, BitsPerComponentBox, PaletteBox, UnknownBox, InvalidJp2kError ) from glymur.core import COLOR, OPACITY, SRGB, GREYSCALE from glymur.core import RED, GREEN, BLUE, GREY, WHOLE_IMAGE from . import fixtures, data from .fixtures import MetadataBase from .fixtures import OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG def docTearDown(doctest_obj): # pragma: no cover glymur.set_option('parse.full_codestream', False) def load_tests(loader, tests, ignore): # pragma: no cover """Run doc tests as well.""" if os.name == "nt": # Can't do it on windows, temporary file issue. return tests tests.addTests(doctest.DocTestSuite('glymur.jp2box', tearDown=docTearDown)) return tests @unittest.skipIf(OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG) class TestDataEntryURL(fixtures.TestCommon): """Test suite for DataEntryURL boxes.""" def test_wrap_greyscale(self): """A single component should be wrapped as GREYSCALE.""" j = Jp2k(self.jp2file) data = j[:] red = data[:, :, 0] # Write it back out as a raw codestream. file1 = self.test_dir_path / 'file1.j2k' j2k = glymur.Jp2k(file1, data=red) # Ok, now rewrap it as JP2. The colorspace should be GREYSCALE. file2 = self.test_dir_path / 'file2.jp2' jp2 = j2k.wrap(file2) self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.GREYSCALE) def test_basic_url(self): """Just your most basic URL box.""" # Wrap our j2k file in a JP2 box along with an interior url box. jp2 = Jp2k(self.jp2file) url = 'http://glymur.readthedocs.org' deurl = glymur.jp2box.DataEntryURLBox(0, (0, 0, 0), url) boxes = [box for box in jp2.box if box.box_id != 'uuid'] boxes.append(deurl) with open(self.temp_jp2_filename, mode='wb') as tfile: jp22 = jp2.wrap(tfile.name, boxes=boxes) actdata = [box.box_id for box in jp22.box] expdata = ['jP ', 'ftyp', 'jp2h', 'jp2c', 'url '] self.assertEqual(actdata, expdata) self.assertEqual(jp22.box[4].version, 0) self.assertEqual(jp22.box[4].flag, (0, 0, 0)) self.assertEqual(jp22.box[4].url, url) def test_null_termination(self): """I.9.3.2 specifies that location field must be null terminated.""" jp2 = Jp2k(self.jp2file) url = 'http://glymur.readthedocs.org' deurl = glymur.jp2box.DataEntryURLBox(0, (0, 0, 0), url) boxes = [box for box in jp2.box if box.box_id != 'uuid'] boxes.append(deurl) with open(self.temp_jp2_filename, mode='wb') as tfile: jp22 = jp2.wrap(tfile.name, boxes=boxes) self.assertEqual(jp22.box[-1].length, 42) # Go to the last box. Seek past the L, T, version, # and flag fields. with open(tfile.name, 'rb') as fptr: fptr.seek(jp22.box[-1].offset + 4 + 4 + 1 + 3) nbytes = (jp22.box[-1].offset + jp22.box[-1].length - fptr.tell()) read_buffer = fptr.read(nbytes) read_url = read_buffer.decode('utf-8') self.assertEqual(url + chr(0), read_url) @unittest.skipIf(OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG) class TestChannelDefinition(fixtures.TestCommon): """Test suite for channel definition boxes.""" @classmethod def setUpClass(cls): """Need a one_plane plane image for greyscale testing.""" j2k = Jp2k(glymur.data.goodstuff()) data = j2k[:] cls.planes_dir = pathlib.Path(tempfile.mkdtemp()) # Write the first component back out to file. cls.one_plane = cls.planes_dir / 'one_plane.j2k' Jp2k(cls.one_plane, data=data[:, :, 0]) # Write the first two components back out to file. cls.two_planes = cls.planes_dir / 'two_planes.j2k' Jp2k(cls.two_planes, data=data[:, :, 0:2]) # Write four components back out to file. cls.four_planes = cls.planes_dir / 'four_planes.j2k' shape = (data.shape[0], data.shape[1], 1) alpha = np.zeros((shape), dtype=data.dtype) data4 = np.concatenate((data, alpha), axis=2) Jp2k(cls.four_planes, data=data4) @classmethod def tearDownClass(cls): shutil.rmtree(cls.planes_dir) def setUp(self): super(TestChannelDefinition, self).setUp() j2k = Jp2k(self.j2kfile) codestream = j2k.get_codestream() height = codestream.segment[1].ysiz width = codestream.segment[1].xsiz num_components = len(codestream.segment[1].xrsiz) self.jp2b = JPEG2000SignatureBox() self.ftyp = FileTypeBox() self.jp2h = JP2HeaderBox() self.jp2c = ContiguousCodestreamBox() self.ihdr = ImageHeaderBox(height=height, width=width, num_components=num_components) self.ihdr1 = ImageHeaderBox(height=height, width=width, num_components=1) self.ihdr2 = ImageHeaderBox(height=height, width=width, num_components=2) self.ihdr4 = ImageHeaderBox(height=height, width=width, num_components=4) self.colr_rgb = ColourSpecificationBox(colorspace=SRGB) self.colr_gr = ColourSpecificationBox(colorspace=GREYSCALE) def test_cdef_no_inputs(self): """channel_type and association are required inputs.""" with self.assertRaises(TypeError): glymur.jp2box.ChannelDefinitionBox() def test_rgb_with_index(self): """Just regular RGB.""" j2k = Jp2k(self.j2kfile) channel_type = [COLOR, COLOR, COLOR] association = [RED, GREEN, BLUE] cdef = glymur.jp2box.ChannelDefinitionBox(index=[0, 1, 2], channel_type=channel_type, association=association) boxes = [self.ihdr, self.colr_rgb, cdef] self.jp2h.box = boxes boxes = [self.jp2b, self.ftyp, self.jp2h, self.jp2c] with open(self.temp_jp2_filename, mode='wb') as tfile: j2k.wrap(tfile.name, boxes=boxes) jp2 = Jp2k(tfile.name) jp2h = jp2.box[2] boxes = [box.box_id for box in jp2h.box] self.assertEqual(boxes, ['ihdr', 'colr', 'cdef']) self.assertEqual(jp2h.box[2].index, (0, 1, 2)) self.assertEqual(jp2h.box[2].channel_type, (COLOR, COLOR, COLOR)) self.assertEqual(jp2h.box[2].association, (RED, GREEN, BLUE)) def test_rgb(self): """Just regular RGB, but don't supply the optional index.""" j2k = Jp2k(self.j2kfile) channel_type = [COLOR, COLOR, COLOR] association = [RED, GREEN, BLUE] cdef = glymur.jp2box.ChannelDefinitionBox(channel_type=channel_type, association=association) boxes = [self.ihdr, self.colr_rgb, cdef] self.jp2h.box = boxes boxes = [self.jp2b, self.ftyp, self.jp2h, self.jp2c] with open(self.temp_jp2_filename, mode='wb') as tfile: j2k.wrap(tfile.name, boxes=boxes) jp2 = Jp2k(tfile.name) jp2h = jp2.box[2] boxes = [box.box_id for box in jp2h.box] self.assertEqual(boxes, ['ihdr', 'colr', 'cdef']) self.assertEqual(jp2h.box[2].index, (0, 1, 2)) self.assertEqual(jp2h.box[2].channel_type, (COLOR, COLOR, COLOR)) self.assertEqual(jp2h.box[2].association, (RED, GREEN, BLUE)) def test_rgba(self): """Just regular RGBA.""" j2k = Jp2k(self.four_planes) channel_type = (COLOR, COLOR, COLOR, OPACITY) association = (RED, GREEN, BLUE, WHOLE_IMAGE) cdef = glymur.jp2box.ChannelDefinitionBox(channel_type=channel_type, association=association) boxes = [self.ihdr4, self.colr_rgb, cdef] self.jp2h.box = boxes boxes = [self.jp2b, self.ftyp, self.jp2h, self.jp2c] with open(self.temp_jp2_filename, mode='wb') as tfile: j2k.wrap(tfile.name, boxes=boxes) jp2 = Jp2k(tfile.name) jp2h = jp2.box[2] boxes = [box.box_id for box in jp2h.box] self.assertEqual(boxes, ['ihdr', 'colr', 'cdef']) self.assertEqual(jp2h.box[2].index, (0, 1, 2, 3)) self.assertEqual(jp2h.box[2].channel_type, channel_type) self.assertEqual(jp2h.box[2].association, association) def test_bad_rgba(self): """R, G, and B must be specified.""" j2k = Jp2k(self.four_planes) channel_type = (COLOR, COLOR, OPACITY, OPACITY) association = (RED, GREEN, BLUE, WHOLE_IMAGE) cdef = glymur.jp2box.ChannelDefinitionBox(channel_type=channel_type, association=association) boxes = [self.ihdr, self.colr_rgb, cdef] self.jp2h.box = boxes boxes = [self.jp2b, self.ftyp, self.jp2h, self.jp2c] with open(self.temp_jp2_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): j2k.wrap(tfile.name, boxes=boxes) def test_grey(self): """Just regular greyscale.""" j2k = Jp2k(self.one_plane) channel_type = (COLOR,) association = (GREY,) cdef = glymur.jp2box.ChannelDefinitionBox(channel_type=channel_type, association=association) boxes = [self.ihdr1, self.colr_gr, cdef] self.jp2h.box = boxes boxes = [self.jp2b, self.ftyp, self.jp2h, self.jp2c] with open(self.temp_jp2_filename, mode='wb') as tfile: j2k.wrap(tfile.name, boxes=boxes) jp2 = Jp2k(tfile.name) jp2h = jp2.box[2] boxes = [box.box_id for box in jp2h.box] self.assertEqual(boxes, ['ihdr', 'colr', 'cdef']) self.assertEqual(jp2h.box[2].index, (0,)) self.assertEqual(jp2h.box[2].channel_type, channel_type) self.assertEqual(jp2h.box[2].association, association) def test_grey_alpha(self): """Just regular greyscale plus alpha.""" j2k = Jp2k(self.two_planes) channel_type = (COLOR, OPACITY) association = (GREY, WHOLE_IMAGE) cdef = glymur.jp2box.ChannelDefinitionBox(channel_type=channel_type, association=association) boxes = [self.ihdr2, self.colr_gr, cdef] self.jp2h.box = boxes boxes = [self.jp2b, self.ftyp, self.jp2h, self.jp2c] with open(self.temp_jp2_filename, mode='wb') as tfile: j2k.wrap(tfile.name, boxes=boxes) jp2 = Jp2k(tfile.name) jp2h = jp2.box[2] boxes = [box.box_id for box in jp2h.box] self.assertEqual(boxes, ['ihdr', 'colr', 'cdef']) self.assertEqual(jp2h.box[2].index, (0, 1)) self.assertEqual(jp2h.box[2].channel_type, channel_type) self.assertEqual(jp2h.box[2].association, association) def test_bad_grey_alpha(self): """A greyscale image with alpha layer must specify a color channel""" j2k = Jp2k(self.two_planes) channel_type = (OPACITY, OPACITY) association = (GREY, WHOLE_IMAGE) # This cdef box cdef = glymur.jp2box.ChannelDefinitionBox(channel_type=channel_type, association=association) boxes = [self.ihdr, self.colr_gr, cdef] self.jp2h.box = boxes boxes = [self.jp2b, self.ftyp, self.jp2h, self.jp2c] with open(self.temp_jp2_filename, mode='wb') as tfile: with self.assertRaises((OSError, RuntimeError)): j2k.wrap(tfile.name, boxes=boxes) def test_only_one_cdef_in_jp2h(self): """There can only be one channel definition box in the jp2 header.""" j2k = Jp2k(self.j2kfile) channel_type = (COLOR, COLOR, COLOR) association = (RED, GREEN, BLUE) cdef = glymur.jp2box.ChannelDefinitionBox(channel_type=channel_type, association=association) boxes = [self.ihdr, cdef, self.colr_rgb, cdef] self.jp2h.box = boxes boxes = [self.jp2b, self.ftyp, self.jp2h, self.jp2c] with open(self.temp_jp2_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): j2k.wrap(tfile.name, boxes=boxes) def test_not_in_jp2h(self): """need cdef in jp2h""" j2k = Jp2k(self.j2kfile) boxes = [self.ihdr, self.colr_rgb] self.jp2h.box = boxes channel_type = (COLOR, COLOR, COLOR) association = (RED, GREEN, BLUE) cdef = glymur.jp2box.ChannelDefinitionBox(channel_type=channel_type, association=association) boxes = [self.jp2b, self.ftyp, self.jp2h, cdef, self.jp2c] with open(self.temp_jp2_filename, mode='wb') as tfile: with self.assertRaises((RuntimeError, OSError)): j2k.wrap(tfile.name, boxes=boxes) class TestFileTypeBox(fixtures.TestCommon): """Test suite for ftyp box issues.""" def test_bad_brand_on_parse(self): """ SCENARIO: The JP2 file file type box does not contain a valid brand. EXPECTED RESULT: RuntimeError """ with ir.path(data, 'issue396.jp2') as path: with warnings.catch_warnings(): # Lots of things wrong with this file. warnings.simplefilter('ignore') with self.assertRaises(InvalidJp2kError): Jp2k(path) def test_brand_unknown(self): """A ftyp box brand must be 'jp2 ' or 'jpx '.""" with warnings.catch_warnings(): warnings.simplefilter('ignore') ftyp = glymur.jp2box.FileTypeBox(brand='jp3') with tempfile.TemporaryFile() as tfile: with self.assertRaises(InvalidJp2kError): ftyp.write(tfile) def test_cl_entry_unknown(self): """A ftyp box cl list can only contain 'jp2 ', 'jpx ', or 'jpxb'.""" with warnings.catch_warnings(): warnings.simplefilter('ignore') # Bad compatibility list item. ftyp = glymur.jp2box.FileTypeBox(compatibility_list=['jp3']) with tempfile.TemporaryFile() as tfile: with self.assertRaises(InvalidJp2kError): ftyp.write(tfile) def test_cl_entry_not_utf8(self): """A ftyp box cl list entry must be utf-8 decodable.""" with open(self.jp2file, mode='rb') as f: data = f.read() # Replace bytes 28-32 with bad utf-8 data data = data[:28] + b'\xff\xff\xff\xff' + data[32:] with open(self.temp_jp2_filename, mode='wb') as tfile: tfile.write(data) tfile.flush() with self.assertWarns(UserWarning): Jp2k(tfile.name) class TestPaletteBox(fixtures.TestCommon): """Test suite for pclr box instantiation.""" def test_writing_with_different_bitdepths(self): """Bitdepths must be the same when writing.""" palette = np.array([[255, 0, 255], [0, 255, 0]], dtype=np.uint16) bps = (8, 16, 8) signed = (False, False, False) pclr = glymur.jp2box.PaletteBox(palette, bits_per_component=bps, signed=signed) with open(self.temp_jp2_filename, mode='wb') as tfile: with self.assertRaises(InvalidJp2kError): pclr.write(tfile) def test_signed_components(self): """ Palettes with signed components are not supported. """ b = BytesIO() # L, T b.write(struct.pack('>I4s', 20, b'pclr')) # Palette is 2 rows, 3 columns ncols = 3 nrows = 2 b.write(struct.pack('>HB', nrows, ncols)) # bits per sample is 8, but signed bps = (np.int8(7), np.int8(7), np.int8(7)) bps_signed = (x | 0x80 for x in bps) b.write(struct.pack('BBB', *bps_signed)) # Write the palette itself. # buffer = np.int8([[0, 0, 0], [127, 127, 127]]) b.write(struct.pack('BBB', *buffer[0])) b.write(struct.pack('BBB', *buffer[1])) # Seek back to point after L, T b.seek(8) with self.assertRaises(InvalidJp2kError): PaletteBox.parse(b, 8, 20) class TestAppend(fixtures.TestCommon): """Tests for append method.""" def test_append_xml(self): """Should be able to append an XML box.""" with open(self.temp_jp2_filename, mode='wb') as tfile: shutil.copyfile(self.jp2file, tfile.name) jp2 = Jp2k(tfile.name) b = BytesIO(b'0') doc = ET.parse(b) xmlbox = glymur.jp2box.XMLBox(xml=doc) jp2.append(xmlbox) # The sequence of box IDs should be the same as before, but with an # xml box at the end. box_ids = [box.box_id for box in jp2.box] expected = ['jP ', 'ftyp', 'jp2h', 'uuid', 'jp2c', 'xml '] self.assertEqual(box_ids, expected) self.assertEqual(ET.tostring(jp2.box[-1].xml.getroot()), b'0') def test_only_jp2_allowed_to_append(self): """Only JP2 files are allowed to be appended.""" with open(self.temp_j2k_filename, mode="wb") as tfile: shutil.copyfile(self.j2kfile, tfile.name) j2k = Jp2k(tfile.name) # Make an XML box. XML boxes should always be appendable to jp2 # files. the_xml = ET.fromstring('0') xmlbox = glymur.jp2box.XMLBox(xml=the_xml) with self.assertRaises(RuntimeError): j2k.append(xmlbox) def test_length_field_is_zero(self): """L=0 (length field in box header) is handled. L=0 implies that the containing box is the last box. If this is not handled properly, the appended box is never seen. """ baseline_jp2 = Jp2k(self.jp2file) with open(self.temp_jp2_filename, mode='wb') as tfile: with open(self.jp2file, 'rb') as ifile: # Everything up until the jp2c box. offset = baseline_jp2.box[-1].offset tfile.write(ifile.read(offset)) # Write the L, T fields of the jp2c box such that L == 0 write_buffer = struct.pack('>I4s', int(0), b'jp2c') tfile.write(write_buffer) # Write out the rest of the codestream. ifile.seek(offset + 8) tfile.write(ifile.read()) tfile.flush() jp2 = Jp2k(tfile.name) b = BytesIO(b'0') doc = ET.parse(b) xmlbox = glymur.jp2box.XMLBox(xml=doc) jp2.append(xmlbox) # The sequence of box IDs should be the same as before, but with an # xml box at the end. box_ids = [box.box_id for box in jp2.box] expected = ['jP ', 'ftyp', 'jp2h', 'uuid', 'jp2c', 'xml '] self.assertEqual(box_ids, expected) self.assertEqual(ET.tostring(jp2.box[-1].xml.getroot()), b'0') def test_append_allowable_boxes(self): """Only XML boxes are allowed to be appended.""" with open(self.temp_jp2_filename, mode='wb') as tfile: shutil.copyfile(self.jp2file, tfile.name) jp2 = Jp2k(tfile.name) # Make a UUID box. Only XMP UUID boxes can currently be appended. uuid_instance = UUID('00000000-0000-0000-0000-000000000000') data = b'0123456789' uuidbox = glymur.jp2box.UUIDBox(uuid_instance, data) with self.assertRaises(RuntimeError): jp2.append(uuidbox) class TestWrap(fixtures.TestCommon): """Tests for wrap method.""" def verify_wrapped_raw(self, jp2file): """Shared fixture""" jp2 = Jp2k(jp2file) self.assertEqual(len(jp2.box), 4) self.assertEqual(jp2.box[0].box_id, 'jP ') self.assertEqual(jp2.box[0].offset, 0) self.assertEqual(jp2.box[0].length, 12) self.assertEqual(jp2.box[0].longname, 'JPEG 2000 Signature') self.assertEqual(jp2.box[1].box_id, 'ftyp') self.assertEqual(jp2.box[1].offset, 12) self.assertEqual(jp2.box[1].length, 20) self.assertEqual(jp2.box[1].longname, 'File Type') self.assertEqual(jp2.box[2].box_id, 'jp2h') self.assertEqual(jp2.box[2].offset, 32) self.assertEqual(jp2.box[2].length, 45) self.assertEqual(jp2.box[2].longname, 'JP2 Header') self.assertEqual(jp2.box[3].box_id, 'jp2c') self.assertEqual(jp2.box[3].offset, 77) self.assertEqual(jp2.box[3].length, 115228) # jp2h super box self.assertEqual(len(jp2.box[2].box), 2) self.assertEqual(jp2.box[2].box[0].box_id, 'ihdr') self.assertEqual(jp2.box[2].box[0].offset, 40) self.assertEqual(jp2.box[2].box[0].length, 22) self.assertEqual(jp2.box[2].box[0].longname, 'Image Header') self.assertEqual(jp2.box[2].box[0].height, 800) self.assertEqual(jp2.box[2].box[0].width, 480) self.assertEqual(jp2.box[2].box[0].num_components, 3) self.assertEqual(jp2.box[2].box[0].bits_per_component, 8) self.assertEqual(jp2.box[2].box[0].signed, False) self.assertEqual(jp2.box[2].box[0].compression, 7) self.assertEqual(jp2.box[2].box[0].colorspace_unknown, False) self.assertEqual(jp2.box[2].box[0].ip_provided, False) self.assertEqual(jp2.box[2].box[1].box_id, 'colr') self.assertEqual(jp2.box[2].box[1].offset, 62) self.assertEqual(jp2.box[2].box[1].length, 15) self.assertEqual(jp2.box[2].box[1].longname, 'Colour Specification') self.assertEqual(jp2.box[2].box[1].precedence, 0) self.assertEqual(jp2.box[2].box[1].approximation, 0) self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.SRGB) self.assertIsNone(jp2.box[2].box[1].icc_profile) def test_wrap(self): """basic test for rewrapping a j2c file, no specified boxes""" j2k = Jp2k(self.j2kfile) with open(self.temp_jp2_filename, mode='wb') as tfile: j2k.wrap(tfile.name) self.verify_wrapped_raw(tfile.name) def test_jpx_to_jp2(self): """basic test for rewrapping a jpx file""" jpx = Jp2k(self.jpxfile) # Use only the signature, file type, header, and 1st codestream. lst = [0, 1, 2, 5] boxes = [jpx.box[idx] for idx in lst] with open(self.temp_jp2_filename, mode='wb') as tfile: jp2 = jpx.wrap(tfile.name, boxes=boxes) # Verify the outer boxes. boxes = [box.box_id for box in jp2.box] self.assertEqual(boxes, ['jP ', 'ftyp', 'jp2h', 'jp2c']) # Verify the inside boxes. boxes = [box.box_id for box in jp2.box[2].box] self.assertEqual(boxes, ['ihdr', 'colr', 'pclr', 'cmap']) expected_offsets = [0, 12, 40, 887] for j, offset in enumerate(expected_offsets): self.assertEqual(jp2.box[j].offset, offset) def test_wrap_jp2(self): """basic test for rewrapping a jp2 file, no specified boxes""" j2k = Jp2k(self.jp2file) with open(self.temp_jp2_filename, mode='wb') as tfile: jp2 = j2k.wrap(tfile.name) boxes = [box.box_id for box in jp2.box] self.assertEqual(boxes, ['jP ', 'ftyp', 'jp2h', 'jp2c']) def test_wrap_jp2_Lzero(self): """Wrap jp2 with jp2c box length is zero""" with open(self.temp_jp2_filename, mode='wb') as tfile: with open(self.jp2file, 'rb') as ifile: tfile.write(ifile.read()) # Rewrite with codestream length as zero. tfile.seek(3223) tfile.write(struct.pack('>I', 0)) tfile.flush() jp = Jp2k(tfile.name) file2 = self.test_dir_path / 'file2.jp2' jp2 = jp.wrap(file2) boxes = [box for box in jp2.box] self.assertEqual(boxes[3].length, 1132296) def test_wrap_jp2_Lone(self): """Wrap jp2 with jp2c box length is 1, implies Q field""" with open(self.temp_jp2_filename, mode='wb') as tfile: with open(self.jp2file, 'rb') as ifile: tfile.write(ifile.read(3223)) # Write new L, T, Q fields tfile.write(struct.pack('>I4sQ', 1, b'jp2c', 1132296 + 8)) # skip over the old L, T fields ifile.seek(3231) tfile.write(ifile.read()) tfile.flush() jp2 = Jp2k(tfile.name) file2 = self.test_dir_path / 'file2.jp2' jp22 = jp2.wrap(file2) self.assertEqual(jp22.box[3].length, 1132296 + 8) def test_wrap_compatibility_not_jp2(self): """File type compatibility must contain jp2""" jp2 = Jp2k(self.jp2file) boxes = [box for box in jp2.box] boxes[1].compatibility_list = ['jpx '] with open(self.temp_jp2_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): jp2.wrap(tfile.name, boxes=boxes) def test_empty_jp2h(self): """JP2H box list cannot be empty.""" jp2 = Jp2k(self.jp2file) with open(self.temp_jp2_filename, mode='wb') as tfile: boxes = jp2.box # Right here the jp2h superbox has two child boxes. Empty out that # list to trigger the error. boxes[2].box = [] with self.assertRaises(RuntimeError): jp2.wrap(tfile.name, boxes=boxes) def test_default_layout_with_boxes(self): """basic test for rewrapping a jp2 file, boxes specified""" j2k = Jp2k(self.j2kfile) boxes = [JPEG2000SignatureBox(), FileTypeBox(), JP2HeaderBox(), ContiguousCodestreamBox()] codestream = j2k.get_codestream() height = codestream.segment[1].ysiz width = codestream.segment[1].xsiz num_components = len(codestream.segment[1].xrsiz) boxes[2].box = [ImageHeaderBox(height=height, width=width, num_components=num_components), ColourSpecificationBox(colorspace=glymur.core.SRGB)] with open(self.temp_jp2_filename, mode='wb') as tfile: j2k.wrap(tfile.name, boxes=boxes) self.verify_wrapped_raw(tfile.name) def test_ihdr_not_first_in_jp2h(self): """The specification says that ihdr must be the first box in jp2h.""" j2k = Jp2k(self.j2kfile) boxes = [JPEG2000SignatureBox(), FileTypeBox(), JP2HeaderBox(), ContiguousCodestreamBox()] codestream = j2k.get_codestream() height = codestream.segment[1].ysiz width = codestream.segment[1].xsiz num_components = len(codestream.segment[1].xrsiz) boxes[2].box = [ColourSpecificationBox(colorspace=glymur.core.SRGB), ImageHeaderBox(height=height, width=width, num_components=num_components)] with open(self.temp_jp2_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): j2k.wrap(tfile.name, boxes=boxes) def test_first_boxes_jp_and_ftyp(self): """first two boxes must be jP followed by ftyp""" j2k = Jp2k(self.j2kfile) codestream = j2k.get_codestream() height = codestream.segment[1].ysiz width = codestream.segment[1].xsiz num_components = len(codestream.segment[1].xrsiz) jp2b = JPEG2000SignatureBox() ftyp = FileTypeBox() jp2h = JP2HeaderBox() jp2c = ContiguousCodestreamBox() colr = ColourSpecificationBox(colorspace=glymur.core.SRGB) ihdr = ImageHeaderBox(height=height, width=width, num_components=num_components) jp2h.box = [ihdr, colr] boxes = [ftyp, jp2b, jp2h, jp2c] with open(self.temp_jp2_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): j2k.wrap(tfile.name, boxes=boxes) def test_pclr_not_in_jp2h(self): """A palette box must reside in a JP2 header box.""" palette = np.array([[255, 0, 255], [0, 255, 0]], dtype=np.int32) bps = (8, 8, 8) pclr = glymur.jp2box.PaletteBox(palette=palette, bits_per_component=bps, signed=(True, False, True)) j2k = Jp2k(self.j2kfile) codestream = j2k.get_codestream() height = codestream.segment[1].ysiz width = codestream.segment[1].xsiz num_components = len(codestream.segment[1].xrsiz) jp2b = JPEG2000SignatureBox() ftyp = FileTypeBox() jp2h = JP2HeaderBox() jp2c = ContiguousCodestreamBox() colr = ColourSpecificationBox(colorspace=glymur.core.SRGB) ihdr = ImageHeaderBox(height=height, width=width, num_components=num_components) jp2h.box = [ihdr, colr] boxes = [jp2b, ftyp, jp2h, jp2c, pclr] with open(self.temp_jp2_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): j2k.wrap(tfile.name, boxes=boxes) def test_jp2h_not_preceeding_jp2c(self): """jp2h must precede jp2c""" j2k = Jp2k(self.j2kfile) codestream = j2k.get_codestream() height = codestream.segment[1].ysiz width = codestream.segment[1].xsiz num_components = len(codestream.segment[1].xrsiz) jp2b = JPEG2000SignatureBox() ftyp = FileTypeBox() jp2h = JP2HeaderBox() jp2c = ContiguousCodestreamBox() colr = ColourSpecificationBox(colorspace=glymur.core.SRGB) ihdr = ImageHeaderBox(height=height, width=width, num_components=num_components) jp2h.box = [ihdr, colr] boxes = [jp2b, ftyp, jp2c, jp2h] with open(self.temp_jp2_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): j2k.wrap(tfile.name, boxes=boxes) def test_missing_codestream(self): """Need a codestream box in order to call wrap method.""" j2k = Jp2k(self.j2kfile) codestream = j2k.get_codestream() height = codestream.segment[1].ysiz width = codestream.segment[1].xsiz num_components = len(codestream.segment[1].xrsiz) jp2k = JPEG2000SignatureBox() ftyp = FileTypeBox() jp2h = JP2HeaderBox() ihdr = ImageHeaderBox(height=height, width=width, num_components=num_components) jp2h.box = [ihdr] boxes = [jp2k, ftyp, jp2h] with open(self.temp_jp2_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): j2k.wrap(tfile.name, boxes=boxes) def test_wrap_jpx_to_jp2_with_unadorned_jpch(self): """A JPX file rewrapped with plain jpch is not allowed.""" with open(self.temp_jp2_filename, mode='wb') as tfile1: jpx = Jp2k(self.jpxfile) boxes = [jpx.box[0], jpx.box[1], jpx.box[2], glymur.jp2box.ContiguousCodestreamBox()] with self.assertRaises(RuntimeError): jpx.wrap(tfile1.name, boxes=boxes) def test_wrap_jpx_to_jp2_with_incorrect_jp2c_offset(self): """Reject A JPX file rewrapped with bad jp2c offset.""" with open(self.temp_jp2_filename, mode='wb') as tfile1: jpx = Jp2k(self.jpxfile) jpch = jpx.box[5] # The offset should be 902. jpch.offset = 901 jpch.length = 313274 boxes = [jpx.box[0], jpx.box[1], jpx.box[2], jpch] with self.assertRaises(RuntimeError): jpx.wrap(tfile1.name, boxes=boxes) def test_wrap_jpx_to_jp2_with_correctly_specified_jp2c(self): """Accept A JPX file rewrapped with good jp2c.""" with open(self.temp_jp2_filename, mode='wb') as tfile1: jpx = Jp2k(self.jpxfile) jpch = jpx.box[5] # This time get it right. jpch.offset = 903 jpch.length = 313274 boxes = [jpx.box[0], jpx.box[1], jpx.box[2], jpch] jp2 = jpx.wrap(tfile1.name, boxes=boxes) act_ids = [box.box_id for box in jp2.box] exp_ids = ['jP ', 'ftyp', 'jp2h', 'jp2c'] self.assertEqual(act_ids, exp_ids) act_offsets = [box.offset for box in jp2.box] exp_offsets = [0, 12, 40, 887] self.assertEqual(act_offsets, exp_offsets) act_lengths = [box.length for box in jp2.box] exp_lengths = [12, 28, 847, 313274] self.assertEqual(act_lengths, exp_lengths) def test_full_blown_jpx(self): """Rewrap a jpx file.""" with open(self.temp_jp2_filename, mode='wb') as tfile1: jpx = Jp2k(self.jpxfile) idx = (list(range(5)) + list(range(9, 12)) + list(range(6, 9))) + [12] boxes = [jpx.box[j] for j in idx] jpx2 = jpx.wrap(tfile1.name, boxes=boxes) exp_ids = [box.box_id for box in boxes] lengths = [box.length for box in jpx.box] exp_lengths = [lengths[j] for j in idx] act_ids = [box.box_id for box in jpx2.box] act_lengths = [box.length for box in jpx2.box] self.assertEqual(exp_ids, act_ids) self.assertEqual(exp_lengths, act_lengths) class TestJp2Boxes(fixtures.TestCommon): """Tests for canonical JP2 boxes.""" def test_no_ihdr_box(self): """ SCENARIO: The JP2/IHDR box cannot be parsed. EXPECTED RESULT: An RuntimeError is issued. """ # Write a new JP2 file that omits the IHDR box. j = Jp2k(self.jp2file) jp2h = [box for box in j.box if box.box_id == 'jp2h'][0] ihdr = jp2h.box[0] with open(self.temp_jp2_filename, mode='wb') as tfile: numbytes = ihdr.offset with open(self.jp2file, 'rb') as ifile: # Write all the way up to the ihdr box tfile.write(ifile.read(numbytes)) # Seek past the ihdr box ifile.seek(ihdr.length, os.SEEK_CUR) # Write the rest of the JP2 file tfile.write(ifile.read(numbytes)) tfile.flush() with self.assertRaises(InvalidJp2kError): with warnings.catch_warnings(): # Lots of things wrong with this file. warnings.simplefilter('ignore') Jp2k(tfile.name) def test_no_jp2c_box(self): """ SCENARIO: The JP2/JP2C box cannot be parsed. EXPECTED RESULT: An RuntimeError is issued. """ # Write a new JP2 file that omits the JP2C box. j = Jp2k(self.jp2file) jp2c = [box for box in j.box if box.box_id == 'jp2c'][0] with open(self.temp_jp2_filename, mode='wb') as tfile: numbytes = jp2c.offset with open(self.jp2file, 'rb') as ifile: tfile.write(ifile.read(numbytes)) tfile.flush() with self.assertRaises(InvalidJp2kError): Jp2k(tfile.name) def test_default_jp2k(self): """Should be able to instantiate a JPEG2000SignatureBox""" jp2k = glymur.jp2box.JPEG2000SignatureBox() self.assertEqual(jp2k.signature, (13, 10, 135, 10)) def test_default_ftyp(self): """Should be able to instantiate a FileTypeBox""" ftyp = glymur.jp2box.FileTypeBox() self.assertEqual(ftyp.brand, 'jp2 ') self.assertEqual(ftyp.minor_version, 0) self.assertEqual(ftyp.compatibility_list, ['jp2 ']) def test_default_ihdr(self): """Should be able to instantiate an image header box.""" ihdr = glymur.jp2box.ImageHeaderBox(height=512, width=256, num_components=3) self.assertEqual(ihdr.height, 512) self.assertEqual(ihdr.width, 256) self.assertEqual(ihdr.num_components, 3) self.assertEqual(ihdr.bits_per_component, 8) self.assertFalse(ihdr.signed) self.assertFalse(ihdr.colorspace_unknown) def test_default_jp2headerbox(self): """Should be able to set jp2h boxes.""" box = JP2HeaderBox() box.box = [ImageHeaderBox(height=512, width=256), ColourSpecificationBox(colorspace=glymur.core.GREYSCALE)] self.assertTrue(True) def test_default_ccodestreambox(self): """Raw instantiation should not produce a main_header.""" box = ContiguousCodestreamBox() self.assertEqual(box.box_id, 'jp2c') self.assertIsNone(box.codestream) def test_codestream_main_header_offset(self): """ main_header_offset is an attribute of the ContiguousCodesStream box """ j = Jp2k(self.jpxfile) self.assertEqual(j.box[5].main_header_offset, j.box[5].offset + 8) class TestRepr(MetadataBase): """Tests for __repr__ methods.""" def test_default_jp2k(self): """Should be able to eval a JPEG2000SignatureBox""" jp2k = glymur.jp2box.JPEG2000SignatureBox() # Test the representation instantiation. newbox = eval(repr(jp2k)) self.assertTrue(isinstance(newbox, glymur.jp2box.JPEG2000SignatureBox)) self.assertEqual(newbox.signature, (13, 10, 135, 10)) def test_unknown(self): """Should be able to instantiate an unknown box""" box = UnknownBox('bpcc') # Test the representation instantiation. newbox = eval(repr(box)) self.assertTrue(isinstance(newbox, glymur.jp2box.UnknownBox)) def test_bpcc(self): """Should be able to instantiate a bpcc box""" bpc = (5, 5, 5, 1) signed = (False, False, True, False) box = BitsPerComponentBox(bpc, signed, length=12, offset=62) # Test the representation instantiation. newbox = eval(repr(box)) self.assertEqual(bpc, newbox.bpc) self.assertEqual(signed, newbox.signed) def test_free(self): """Should be able to instantiate a free box""" free = glymur.jp2box.FreeBox() # Test the representation instantiation. newbox = eval(repr(free)) self.assertTrue(isinstance(newbox, glymur.jp2box.FreeBox)) def test_nlst(self): """Should be able to instantiate a number list box""" assn = (0, 1, 2) nlst = glymur.jp2box.NumberListBox(assn) # Test the representation instantiation. newbox = eval(repr(nlst)) self.assertTrue(isinstance(newbox, glymur.jp2box.NumberListBox)) self.assertEqual(newbox.associations, (0, 1, 2)) def test_ftbl(self): """Should be able to instantiate a fragment table box""" flst = glymur.jp2box.FragmentListBox([89], [1132288], [0]) ftbl = glymur.jp2box.FragmentTableBox([flst]) # Test the representation instantiation. newbox = eval(repr(ftbl)) self.assertTrue(isinstance(newbox, glymur.jp2box.FragmentTableBox)) def test_dref(self): """Should be able to instantiate a data reference box""" dref = glymur.jp2box.DataReferenceBox() # Test the representation instantiation. newbox = eval(repr(dref)) self.assertTrue(isinstance(newbox, glymur.jp2box.DataReferenceBox)) def test_flst(self): """Should be able to instantiate a fragment list box""" flst = glymur.jp2box.FragmentListBox([89], [1132288], [0]) # Test the representation instantiation. newbox = eval(repr(flst)) self.assertTrue(isinstance(newbox, glymur.jp2box.FragmentListBox)) self.assertEqual(newbox.fragment_offset, [89]) self.assertEqual(newbox.fragment_length, [1132288]) self.assertEqual(newbox.data_reference, [0]) def test_default_cgrp(self): """Should be able to instantiate a color group box""" cgrp = glymur.jp2box.ColourGroupBox() # Test the representation instantiation. newbox = eval(repr(cgrp)) self.assertTrue(isinstance(newbox, glymur.jp2box.ColourGroupBox)) def test_default_ftyp(self): """Should be able to instantiate a FileTypeBox""" ftyp = glymur.jp2box.FileTypeBox() # Test the representation instantiation. newbox = eval(repr(ftyp)) self.verify_filetype_box(newbox, FileTypeBox()) def test_colourspecification_box(self): """Verify __repr__ method on colr box.""" # TODO: add icc_profile box = ColourSpecificationBox(colorspace=glymur.core.SRGB) newbox = eval(repr(box)) self.assertEqual(newbox.method, glymur.core.ENUMERATED_COLORSPACE) self.assertEqual(newbox.precedence, 0) self.assertEqual(newbox.approximation, 0) self.assertEqual(newbox.colorspace, glymur.core.SRGB) self.assertIsNone(newbox.icc_profile) def test_channeldefinition_box(self): """Verify __repr__ method on cdef box.""" channel_type = [COLOR, COLOR, COLOR] association = [RED, GREEN, BLUE] cdef = glymur.jp2box.ChannelDefinitionBox(index=[0, 1, 2], channel_type=channel_type, association=association) newbox = eval(repr(cdef)) self.assertEqual(newbox.index, (0, 1, 2)) self.assertEqual(newbox.channel_type, (COLOR, COLOR, COLOR)) self.assertEqual(newbox.association, (RED, GREEN, BLUE)) def test_jp2header_box(self): """Verify __repr__ method on ihdr box.""" ihdr = ImageHeaderBox(100, 200, num_components=3) colr = ColourSpecificationBox(colorspace=glymur.core.SRGB) jp2h = JP2HeaderBox(box=[ihdr, colr]) newbox = eval(repr(jp2h)) self.assertEqual(newbox.box_id, 'jp2h') self.assertEqual(newbox.box[0].box_id, 'ihdr') self.assertEqual(newbox.box[1].box_id, 'colr') def test_imageheader_box(self): """Verify __repr__ method on jhdr box.""" ihdr = ImageHeaderBox(100, 200, num_components=3) newbox = eval(repr(ihdr)) self.assertEqual(newbox.height, 100) self.assertEqual(newbox.width, 200) self.assertEqual(newbox.num_components, 3) self.assertFalse(newbox.signed) self.assertEqual(newbox.bits_per_component, 8) self.assertEqual(newbox.compression, 7) self.assertFalse(newbox.colorspace_unknown) self.assertFalse(newbox.ip_provided) def test_association_box(self): """Verify __repr__ method on asoc box.""" asoc = glymur.jp2box.AssociationBox() newbox = eval(repr(asoc)) self.assertEqual(newbox.box_id, 'asoc') self.assertEqual(len(newbox.box), 0) def test_codestreamheader_box(self): """Verify __repr__ method on jpch box.""" jpch = glymur.jp2box.CodestreamHeaderBox() newbox = eval(repr(jpch)) self.assertEqual(newbox.box_id, 'jpch') self.assertEqual(len(newbox.box), 0) def test_compositinglayerheader_box(self): """Verify __repr__ method on jplh box.""" jplh = glymur.jp2box.CompositingLayerHeaderBox() newbox = eval(repr(jplh)) self.assertEqual(newbox.box_id, 'jplh') self.assertEqual(len(newbox.box), 0) def test_componentmapping_box(self): """Verify __repr__ method on cmap box.""" cmap = glymur.jp2box.ComponentMappingBox(component_index=(0, 0, 0), mapping_type=(1, 1, 1), palette_index=(0, 1, 2)) newbox = eval(repr(cmap)) self.assertEqual(newbox.box_id, 'cmap') self.assertEqual(newbox.component_index, (0, 0, 0)) self.assertEqual(newbox.mapping_type, (1, 1, 1)) self.assertEqual(newbox.palette_index, (0, 1, 2)) def test_resolution_boxes(self): """Verify __repr__ method on resolution boxes.""" resc = glymur.jp2box.CaptureResolutionBox(0.5, 2.5) resd = glymur.jp2box.DisplayResolutionBox(2.5, 0.5) res_super_box = glymur.jp2box.ResolutionBox(box=[resc, resd]) newbox = eval(repr(res_super_box)) self.assertEqual(newbox.box_id, 'res ') self.assertEqual(newbox.box[0].box_id, 'resc') self.assertEqual(newbox.box[0].vertical_resolution, 0.5) self.assertEqual(newbox.box[0].horizontal_resolution, 2.5) self.assertEqual(newbox.box[1].box_id, 'resd') self.assertEqual(newbox.box[1].vertical_resolution, 2.5) self.assertEqual(newbox.box[1].horizontal_resolution, 0.5) def test_label_box(self): """Verify __repr__ method on label box.""" lbl = glymur.jp2box.LabelBox("this is a test") newbox = eval(repr(lbl)) self.assertEqual(newbox.box_id, 'lbl ') self.assertEqual(newbox.label, "this is a test") def test_data_entry_url_box(self): """Verify __repr__ method on data entry url box.""" version = 0 flag = (0, 0, 0) url = "http://readthedocs.glymur.org" box = glymur.jp2box.DataEntryURLBox(version, flag, url) newbox = eval(repr(box)) self.assertEqual(newbox.box_id, 'url ') self.assertEqual(newbox.version, version) self.assertEqual(newbox.flag, flag) self.assertEqual(newbox.url, url) def test_uuidinfo_box(self): """Verify __repr__ method on uinf box.""" uinf = glymur.jp2box.UUIDInfoBox() newbox = eval(repr(uinf)) self.assertEqual(newbox.box_id, 'uinf') self.assertEqual(len(newbox.box), 0) def test_uuidlist_box(self): """Verify __repr__ method on ulst box.""" uuid1 = UUID('00000000-0000-0000-0000-000000000001') uuid2 = UUID('00000000-0000-0000-0000-000000000002') uuids = [uuid1, uuid2] ulst = glymur.jp2box.UUIDListBox(ulst=uuids) newbox = eval(repr(ulst)) self.assertEqual(newbox.box_id, 'ulst') self.assertEqual(newbox.ulst[0], uuid1) self.assertEqual(newbox.ulst[1], uuid2) def test_palette_box(self): """Verify Palette box repr.""" palette = np.array([[255, 0, 1000], [0, 255, 0]], dtype=np.int32) bps = (8, 8, 16) box = glymur.jp2box.PaletteBox(palette=palette, bits_per_component=bps, signed=(True, False, True)) # Test will fail unless addition imports from numpy are done. from numpy import array, int32 # noqa: F401 newbox = eval(repr(box)) np.testing.assert_array_equal(newbox.palette, palette) self.assertEqual(newbox.bits_per_component, (8, 8, 16)) self.assertEqual(newbox.signed, (True, False, True)) def test_xml_box(self): """Verify xml box repr.""" elt = ET.fromstring('0') tree = ET.ElementTree(elt) box = glymur.jp2box.XMLBox(xml=tree) pattern = r""" glymur.jp2box.XMLBox \(xml=\) """ regex = re.compile(pattern, re.VERBOSE) self.assertRegex(repr(box), regex) def test_readerrequirements_box(self): """Verify rreq repr method.""" box = glymur.jp2box.ReaderRequirementsBox(fuam=160, dcm=192, standard_flag=(5, 61, 43), standard_mask=(128, 96, 64), vendor_feature=[], vendor_mask=[]) newbox = eval(repr(box)) self.assertEqual(box.fuam, newbox.fuam) self.assertEqual(box.dcm, newbox.dcm) self.assertEqual(box.standard_flag, newbox.standard_flag) self.assertEqual(box.standard_mask, newbox.standard_mask) self.assertEqual(box.vendor_feature, newbox.vendor_feature) self.assertEqual(box.vendor_mask, newbox.vendor_mask) def test_uuid_box_generic(self): """Verify uuid repr method.""" uuid_instance = UUID('00000000-0000-0000-0000-000000000000') data = b'0123456789' box = glymur.jp2box.UUIDBox(the_uuid=uuid_instance, raw_data=data) # Since the raw_data parameter is a sequence of bytes which could be # quite long, don't bother trying to make it conform to eval(repr()). pattern = r""" glymur.jp2box.UUIDBox\( UUID\('00000000-0000-0000-0000-000000000000'\),\s raw_data= \) """ regex = re.compile(pattern, re.VERBOSE) self.assertRegex(repr(box), regex) def test_uuid_box_xmp(self): """Verify uuid repr method for XMP UUID box.""" jp2file = glymur.data.nemo() j = Jp2k(jp2file) box = j.box[3] # Since the raw_data parameter is a sequence of bytes which could be # quite long, don't bother trying to make it conform to eval(repr()). pattern = r""" glymur.jp2box.UUIDBox\( UUID\('be7acfcb-97a9-42e8-9c71-999491e3afac'\),\s raw_data= \) """ regex = re.compile(pattern, re.VERBOSE) self.assertRegex(repr(box), regex) def test_contiguous_codestream_box(self): """Verify contiguous codestream box repr method.""" jp2file = glymur.data.nemo() jp2 = Jp2k(jp2file) box = jp2.box[-1] # Difficult to eval(repr()) this, so just match the general pattern. pattern = r""" glymur.jp2box.ContiguousCodeStreamBox\( codestream= \) """ regex = re.compile(pattern, re.VERBOSE) self.assertRegex(repr(box), regex) glymur-0.9.1/tests/test_jp2box_jpx.py000066400000000000000000000573001360775562100177210ustar00rootroot00000000000000# -*- coding: utf-8 -*- """ Test suite specifically targeting JPX box layout. """ # Standard library imports ... import ctypes try: import importlib.resources as ir except ImportError: # pragma: no cover # before 3.7 import importlib_resources as ir from io import BytesIO import shutil import struct import tempfile import warnings # Third party library imports ... import lxml.etree as ET # Local imports ... import glymur from glymur import Jp2k from glymur.jp2box import ( DataEntryURLBox, FileTypeBox, JPEG2000SignatureBox, DataReferenceBox, FragmentListBox, FragmentTableBox, ColourSpecificationBox, InvalidJp2kError ) from . import fixtures, data class TestJPXWrap(fixtures.TestCommon): """Test suite for wrapping JPX files.""" def setUp(self): super(TestJPXWrap, self).setUp() raw_xml = b""" 1 2008 141100 """ self.xmlfile = self.test_dir_path / 'liechtenstein.xml' with self.xmlfile.open(mode='wb') as tfile: tfile.write(raw_xml) tfile.flush() def test_jpx_ftbl_no_codestream(self): """ SCENARIO: Write a jpx file with no codestream. EXPECTED RESULT: The JPX file is parsed without error. """ shutil.copyfile(self.jp2file, self.temp_jp2_filename) jp2_1 = Jp2k(self.temp_jp2_filename) jp2h = jp2_1.box[2] jp2c = [box for box in jp2_1.box if box.box_id == 'jp2c'][0] # coff and clen will be the offset and length input arguments # to the fragment list box. dr_idx is the data reference index. coff = [] clen = [] dr_idx = [] coff.append(jp2c.main_header_offset) clen.append(jp2c.length - (coff[0] - jp2c.offset)) dr_idx.append(1) # Make the url box for this codestream. url1 = DataEntryURLBox(0, [0, 0, 0], f'file://{self.temp_jp2_filename}') url1_name_len = len(url1.url) + 1 # Wrap our own J2K file as a JP2 file. file2 = self.test_dir_path / 'file2.jp2' j2k = Jp2k(self.j2kfile) jp2_2 = j2k.wrap(file2) jp2c = [box for box in jp2_2.box if box.box_id == 'jp2c'][0] coff.append(jp2c.main_header_offset) clen.append(jp2c.length - (coff[0] - jp2c.offset)) dr_idx.append(2) # Make the url box for this codestream. url2 = DataEntryURLBox(0, [0, 0, 0], 'file://{file2}') boxes = [JPEG2000SignatureBox(), FileTypeBox(brand='jpx ', compatibility_list=['jpx ', 'jp2 ', 'jpxb']), jp2h] with open(self.temp_jpx_filename, mode='wb') as tjpx: for box in boxes: box.write(tjpx) flst = FragmentListBox(coff, clen, dr_idx) ftbl = FragmentTableBox([flst]) ftbl.write(tjpx) boxes = [url1, url2] dtbl = DataReferenceBox(data_entry_url_boxes=boxes) dtbl.write(tjpx) tjpx.flush() jpx_no_jp2c = Jp2k(tjpx.name) jpx_boxes = [box.box_id for box in jpx_no_jp2c.box] self.assertEqual(jpx_boxes, ['jP ', 'ftyp', 'jp2h', 'ftbl', 'dtbl']) self.assertEqual(jpx_no_jp2c.box[4].DR[0].offset, 141) offset = 141 + 8 + 4 + url1_name_len self.assertEqual(jpx_no_jp2c.box[4].DR[1].offset, offset) def test_jp2_with_jpx_box(self): """If the brand is jp2, then no jpx boxes are allowed.""" jp2 = Jp2k(self.jp2file) boxes = [jp2.box[idx] for idx in [0, 1, 2, 4]] boxes = jp2.box boxes.append(glymur.jp2box.AssociationBox()) with open(self.temp_jpx_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): jp2.wrap(tfile.name, boxes=boxes) def test_jpch_jplh(self): """Write a codestream header, compositing layer header box.""" jp2 = Jp2k(self.jp2file) boxes = [jp2.box[idx] for idx in [0, 1, 2, 4]] # The ftyp box must be modified to jpx. boxes[1].brand = 'jpx ' boxes[1].compatibility_list = ['jp2 ', 'jpxb'] jpch = glymur.jp2box.CodestreamHeaderBox() boxes.append(jpch) jplh = glymur.jp2box.CompositingLayerHeaderBox() boxes.append(jplh) with open(self.temp_jpx_filename, mode='wb') as tfile: jpx = jp2.wrap(tfile.name, boxes=boxes) self.assertEqual(jpx.box[-2].box_id, 'jpch') self.assertEqual(jpx.box[-1].box_id, 'jplh') def test_cgrp(self): """Write a color group box.""" jp2 = Jp2k(self.jp2file) boxes = [jp2.box[idx] for idx in [0, 1, 2, 4]] # The ftyp box must be modified to jpx. boxes[1].brand = 'jpx ' boxes[1].compatibility_list = ['jp2 ', 'jpxb'] colr_rgb = ColourSpecificationBox(colorspace=glymur.core.SRGB) colr_gr = ColourSpecificationBox(colorspace=glymur.core.GREYSCALE) box = [colr_rgb, colr_gr] cgrp = glymur.jp2box.ColourGroupBox(box=box) boxes.append(cgrp) with open(self.temp_jpx_filename, mode='wb') as tfile: jpx = jp2.wrap(tfile.name, boxes=boxes) self.assertEqual(jpx.box[-1].box_id, 'cgrp') self.assertEqual(jpx.box[-1].box[0].box_id, 'colr') self.assertEqual(jpx.box[-1].box[1].box_id, 'colr') def test_label_neg(self): """Can't write a label box embedded in any old box.""" jp2 = Jp2k(self.jp2file) boxes = [jp2.box[idx] for idx in [0, 1, 2, 4]] # The ftyp box must be modified to jpx. boxes[1].brand = 'jpx ' boxes[1].compatibility_list = ['jp2 ', 'jpxb'] lblb = glymur.jp2box.LabelBox("Just a test") box = [lblb] cgrp = glymur.jp2box.ColourGroupBox(box=box) boxes.append(cgrp) with open(self.temp_jpx_filename, mode='wb') as tfile: with self.assertRaises(InvalidJp2kError): jp2.wrap(tfile.name, boxes=boxes) def test_cgrp_neg(self): """Can't write a cgrp with anything but colr sub boxes""" jp2 = Jp2k(self.jp2file) boxes = [jp2.box[idx] for idx in [0, 1, 2, 4]] # The ftyp box must be modified to jpx. boxes[1].brand = 'jpx ' boxes[1].compatibility_list = ['jp2 ', 'jpxb'] the_xml = ET.fromstring('0') xmlb = glymur.jp2box.XMLBox(xml=the_xml) box = [xmlb] cgrp = glymur.jp2box.ColourGroupBox(box=box) boxes.append(cgrp) with open(self.temp_jpx_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): jp2.wrap(tfile.name, boxes=boxes) def test_ftbl(self): """Write a fragment table box.""" # Add a negative test where offset < 0 # Add a negative test where length < 0 # Add a negative test where ref > 0 but no data reference box. # Add a negative test where more than one flst # Add negative test where ftbl contained in a superbox. jp2 = Jp2k(self.jp2file) boxes = [jp2.box[idx] for idx in [0, 1, 2, 4]] # The ftyp box must be modified to jpx. boxes[1].brand = 'jpx ' boxes[1].compatibility_list = ['jp2 ', 'jpxb'] offset = [89] length = [1132288] reference = [0] flst = glymur.jp2box.FragmentListBox(offset, length, reference) ftbl = glymur.jp2box.FragmentTableBox(box=[flst]) boxes.append(ftbl) with open(self.temp_jpx_filename, mode='wb') as tfile: jpx = jp2.wrap(tfile.name, boxes=boxes) self.assertEqual(jpx.box[1].compatibility_list, ['jp2 ', 'jpxb']) self.assertEqual(jpx.box[-1].box_id, 'ftbl') self.assertEqual(jpx.box[-1].box[0].box_id, 'flst') def test_jpxb_compatibility(self): """Wrap JP2 to JPX, state jpxb compatibility""" jp2 = Jp2k(self.jp2file) boxes = [jp2.box[idx] for idx in [0, 1, 2, 4]] # The ftyp box must be modified to jpx with jp2 compatibility. boxes[1].brand = 'jpx ' boxes[1].compatibility_list = ['jp2 ', 'jpxb'] numbers = (0, 1) nlst = glymur.jp2box.NumberListBox(numbers) b = BytesIO(b'0') doc = ET.parse(b) xmlb = glymur.jp2box.XMLBox(xml=doc) asoc = glymur.jp2box.AssociationBox([nlst, xmlb]) boxes.append(asoc) with open(self.temp_jpx_filename, mode='wb') as tfile: jpx = jp2.wrap(tfile.name, boxes=boxes) self.assertEqual(jpx.box[1].compatibility_list, ['jp2 ', 'jpxb']) self.assertEqual(jpx.box[-1].box_id, 'asoc') self.assertEqual(jpx.box[-1].box[0].box_id, 'nlst') self.assertEqual(jpx.box[-1].box[1].box_id, 'xml ') self.assertEqual(jpx.box[-1].box[0].associations, numbers) self.assertEqual(ET.tostring(jpx.box[-1].box[1].xml.getroot()), b'0') def test_association_label_box(self): """Wrap JP2 to JPX with asoc, label, and nlst boxes""" jp2 = Jp2k(self.jp2file) boxes = [jp2.box[idx] for idx in [0, 1, 2, 4]] # The ftyp box must be modified to jpx with jp2 compatibility. boxes[1].brand = 'jpx ' boxes[1].compatibility_list = ['jp2 ', 'jpx '] label = 'this is a test' lblb = glymur.jp2box.LabelBox(label) numbers = (0, 1) nlst = glymur.jp2box.NumberListBox(numbers) b = BytesIO(b'0') doc = ET.parse(b) xmlb = glymur.jp2box.XMLBox(xml=doc) asoc = glymur.jp2box.AssociationBox([nlst, xmlb, lblb]) boxes.append(asoc) with open(self.temp_jpx_filename, mode='wb') as tfile: jpx = jp2.wrap(tfile.name, boxes=boxes) self.assertEqual(jpx.box[1].compatibility_list, ['jp2 ', 'jpx ']) self.assertEqual(jpx.box[-1].box_id, 'asoc') self.assertEqual(jpx.box[-1].box[0].box_id, 'nlst') self.assertEqual(jpx.box[-1].box[0].associations, numbers) self.assertEqual(jpx.box[-1].box[1].box_id, 'xml ') self.assertEqual(ET.tostring(jpx.box[-1].box[1].xml.getroot()), b'0') self.assertEqual(jpx.box[-1].box[2].box_id, 'lbl ') self.assertEqual(jpx.box[-1].box[2].label, label) def test_empty_data_reference(self): """Empty data reference boxes can be created, but not written.""" jp2 = Jp2k(self.jp2file) boxes = [jp2.box[idx] for idx in [0, 1, 2, 4]] boxes[1].brand = 'jpx ' dref = glymur.jp2box.DataReferenceBox() boxes.append(dref) with open(self.temp_jpx_filename, mode='wb') as tfile: with self.assertRaises(InvalidJp2kError): jp2.wrap(tfile.name, boxes=boxes) def test_deurl_child_of_dtbl(self): """Data reference boxes can only contain data entry url boxes.""" jp2 = Jp2k(self.jp2file) boxes = [jp2.box[idx] for idx in [0, 1, 2, 4]] ftyp = glymur.jp2box.FileTypeBox() with warnings.catch_warnings(): warnings.simplefilter('ignore') dref = glymur.jp2box.DataReferenceBox([ftyp]) # Try to get around it by appending the ftyp box after creation. dref = glymur.jp2box.DataReferenceBox() dref.DR.append(ftyp) boxes.append(dref) with open(self.temp_jpx_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): jp2.wrap(tfile.name, boxes=boxes) def test_only_one_data_reference(self): """Data reference boxes cannot be inside a superbox .""" jp2 = Jp2k(self.jp2file) boxes = [jp2.box[idx] for idx in [0, 1, 2, 4]] # Have to make the ftyp brand jpx. boxes[1].brand = 'jpx ' flag = 0 version = (0, 0, 0) url = 'file:////usr/local/bin' deurl = glymur.jp2box.DataEntryURLBox(flag, version, url) dref = glymur.jp2box.DataReferenceBox([deurl]) boxes.append(dref) boxes.append(dref) with open(self.temp_jpx_filename, mode='wb') as tfile: with self.assertRaises(InvalidJp2kError): jp2.wrap(tfile.name, boxes=boxes) def test_lbl_at_top_level(self): """Label boxes can only be inside a asoc box .""" jp2 = Jp2k(self.jp2file) boxes = [jp2.box[idx] for idx in [0, 1, 2, 4]] # Have to make the ftyp brand jpx. boxes[1].brand = 'jpx ' lblb = glymur.jp2box.LabelBox('hi there') # Put it inside the jp2 header box. boxes[2].box.append(lblb) with open(self.temp_jpx_filename, mode='wb') as tfile: with self.assertRaises(InvalidJp2kError): jp2.wrap(tfile.name, boxes=boxes) def test_data_reference_in_subbox(self): """Data reference boxes cannot be inside a superbox .""" jp2 = Jp2k(self.jp2file) boxes = [jp2.box[idx] for idx in [0, 1, 2, 4]] # Have to make the ftyp brand jpx. boxes[1].brand = 'jpx ' flag = 0 version = (0, 0, 0) url = 'file:////usr/local/bin' deurl = glymur.jp2box.DataEntryURLBox(flag, version, url) dref = glymur.jp2box.DataReferenceBox([deurl]) # Put it inside the jp2 header box. boxes[2].box.append(dref) with open(self.temp_jpx_filename, mode='wb') as tfile: with self.assertRaises(InvalidJp2kError): jp2.wrap(tfile.name, boxes=boxes) def test_jp2_to_jpx_sans_jp2_compatibility(self): """jp2 wrapped to jpx not including jp2 compatibility is wrong.""" jp2 = Jp2k(self.jp2file) boxes = [jp2.box[idx] for idx in [0, 1, 2, 4]] # Have to make the ftyp brand jpx. boxes[1].brand = 'jpx ' boxes[1].compatibility_list.append('jp2 ') numbers = [0, 1] nlst = glymur.jp2box.NumberListBox(numbers) the_xml = ET.fromstring('0') xmlb = glymur.jp2box.XMLBox(xml=the_xml) asoc = glymur.jp2box.AssociationBox([nlst, xmlb]) boxes.append(asoc) with open(self.temp_jpx_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): jp2.wrap(tfile.name, boxes=boxes) def test_jp2_to_jpx_sans_jpx_brand(self): """Verify error when jp2 wrapped to jpx does not include jpx brand.""" jp2 = Jp2k(self.jp2file) boxes = [jp2.box[idx] for idx in [0, 1, 2, 4]] boxes[1].brand = 'jpx ' numbers = [0, 1] nlst = glymur.jp2box.NumberListBox(numbers) the_xml = ET.fromstring('0') xmlb = glymur.jp2box.XMLBox(xml=the_xml) asoc = glymur.jp2box.AssociationBox([nlst, xmlb]) boxes.append(asoc) with open(self.temp_jpx_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): jp2.wrap(tfile.name, boxes=boxes) class TestJPX(fixtures.TestCommon): """Test suite for other JPX boxes.""" def test_reader_requirements_box(self): """ SCENARIO: A JPX file with a valid reader requirements box is encountered. EXPECTED RESULT: The box is parsed without error. """ with ir.path(data, 'text_GBR.jp2') as path: with warnings.catch_warnings(): warnings.simplefilter('ignore') j = Jp2k(path) self.assertEqual(len(j.box[2].vendor_feature), 4) def test_reader_requirements_box_writing(self): """ SCENARIO: Write a JPX box out to file. The box does not have a write method implemented. EXPECTED RESULT: NotImplementedError """ with ir.path(data, 'text_GBR.jp2') as path: with warnings.catch_warnings(): warnings.simplefilter('ignore') j = Jp2k(path) box = j.box[2] b = BytesIO() with self.assertRaises(NotImplementedError): box.write(b) def test_flst_lens_not_the_same(self): """ SCENARIO: A FramentListBox is passed parameters with inconsistent lengths. EXPECTED RESULT: A warning is issued upon initialization, but an InvalidJp2kError is issued when trying to write to file. """ offset = [89] length = [1132288] reference = [0, 0] with self.assertWarns(UserWarning): flst = glymur.jp2box.FragmentListBox(offset, length, reference) with tempfile.TemporaryFile() as tfile: with self.assertRaises(InvalidJp2kError): flst.write(tfile) def test_flst_offsets_not_positive(self): """A fragment list box offsets must be positive.""" offset = [0] length = [1132288] reference = [0] with warnings.catch_warnings(): warnings.simplefilter('ignore') flst = glymur.jp2box.FragmentListBox(offset, length, reference) with tempfile.TemporaryFile() as tfile: with self.assertRaises(InvalidJp2kError): flst.write(tfile) def test_flst_lengths_not_positive(self): """A fragment list box lengths must be positive.""" offset = [89] length = [0] reference = [0] with warnings.catch_warnings(): warnings.simplefilter('ignore') flst = glymur.jp2box.FragmentListBox(offset, length, reference) with tempfile.TemporaryFile() as tfile: with self.assertRaises(InvalidJp2kError): flst.write(tfile) def test_ftbl_boxes_empty(self): """A fragment table box must have at least one child box.""" ftbl = glymur.jp2box.FragmentTableBox() with tempfile.TemporaryFile() as tfile: with self.assertRaises(InvalidJp2kError): ftbl.write(tfile) def test_ftbl_child_not_flst(self): """A fragment table box can only contain a fragment list.""" free = glymur.jp2box.FreeBox() ftbl = glymur.jp2box.FragmentTableBox(box=[free]) with tempfile.TemporaryFile() as tfile: with self.assertRaises(InvalidJp2kError): ftbl.write(tfile) def test_data_reference_requires_dtbl(self): """The existance of data reference box requires a ftbl box as well.""" flag = 0 version = (0, 0, 0) url1 = 'file:////usr/local/bin' url2 = 'http://glymur.readthedocs.org' jpx1 = glymur.Jp2k(self.jp2file) boxes = jpx1.box boxes[1].brand = 'jpx ' deurl1 = glymur.jp2box.DataEntryURLBox(flag, version, url1) deurl2 = glymur.jp2box.DataEntryURLBox(flag, version, url2) dref = glymur.jp2box.DataReferenceBox([deurl1, deurl2]) boxes.append(dref) with open(self.temp_jpx_filename, mode='wb') as tfile: with self.assertRaises(InvalidJp2kError): jpx1.wrap(tfile.name, boxes=boxes) def test_dtbl_free(self): """Verify that we can interpret Data Reference and Free boxes.""" # Copy the existing JPX file, add a data reference box onto the end. flag = 0 version = (0, 0, 0) url1 = 'file:////usr/local/bin' url2 = 'http://glymur.readthedocs.org' + chr(0) * 3 with open(self.temp_jpx_filename, mode='wb') as tfile: with open(self.jpxfile, 'rb') as ifile: tfile.write(ifile.read()) deurl1 = glymur.jp2box.DataEntryURLBox(flag, version, url1) deurl2 = glymur.jp2box.DataEntryURLBox(flag, version, url2) dref = glymur.jp2box.DataReferenceBox([deurl1, deurl2]) dref.write(tfile) # Free box. The content does not matter. tfile.write(struct.pack('>I4s', 12, b'free')) tfile.write(struct.pack('>I', 0)) tfile.flush() jpx = Jp2k(tfile.name) self.assertEqual(jpx.box[-2].box_id, 'dtbl') self.assertEqual(len(jpx.box[-2].DR), 2) self.assertEqual(jpx.box[-2].DR[0].url, url1) self.assertEqual(jpx.box[-2].DR[1].url, url2.rstrip('\0')) self.assertEqual(jpx.box[-1].box_id, 'free') def test_ftbl(self): """Verify that we can interpret Fragment Table boxes.""" # Copy the existing JPX file, add a fragment table box onto the end. with open(self.temp_jpx_filename, mode='wb') as tfile: with open(self.jpxfile, 'rb') as ifile: tfile.write(ifile.read()) write_buffer = struct.pack('>I4s', 32, b'ftbl') tfile.write(write_buffer) # Just one fragment list box write_buffer = struct.pack('>I4s', 24, b'flst') tfile.write(write_buffer) # Simple offset, length, reference write_buffer = struct.pack('>HQIH', 1, 4237, 170246, 3) tfile.write(write_buffer) tfile.flush() jpx = Jp2k(tfile.name) self.assertEqual(jpx.box[-1].box_id, 'ftbl') self.assertEqual(jpx.box[-1].box[0].box_id, 'flst') self.assertEqual(jpx.box[-1].box[0].fragment_offset, (4237,)) self.assertEqual(jpx.box[-1].box[0].fragment_length, (170246,)) self.assertEqual(jpx.box[-1].box[0].data_reference, (3,)) def test_rreq3(self): """ SCENARIO: A JPX file is encountered with an RREQ box with an unsupported mask length. EXPECTED RESULT: A warning is issued. """ rreq_buffer = ctypes.create_string_buffer(74) struct.pack_into('>I4s', rreq_buffer, 0, 74, b'rreq') # mask length struct.pack_into('>B', rreq_buffer, 8, 3) # fuam, dcm. 6 bytes, two sets of 3. lst = (255, 224, 0, 0, 31, 252) struct.pack_into('>BBBBBB', rreq_buffer, 9, *lst) # number of standard features: 11 struct.pack_into('>H', rreq_buffer, 15, 11) standard_flags = [5, 42, 45, 2, 18, 19, 1, 8, 12, 31, 20] standard_masks = [8388608, 4194304, 2097152, 1048576, 524288, 262144, 131072, 65536, 32768, 16384, 8192] for j in range(len(standard_flags)): mask = (standard_masks[j] >> 16, standard_masks[j] & 0x0000ffff >> 8, standard_masks[j] & 0x000000ff) struct.pack_into('>HBBB', rreq_buffer, 17 + j * 5, standard_flags[j], *mask) # num vendor features: 0 struct.pack_into('>H', rreq_buffer, 72, 0) # Ok, done with the box, we can now insert it into the jpx file after # the ftyp box. with open(self.temp_jpx_filename, mode='wb') as ofile: with open(self.jpxfile, 'rb') as ifile: ofile.write(ifile.read(40)) ofile.write(rreq_buffer) ofile.write(ifile.read()) ofile.flush() with self.assertWarns(UserWarning): Jp2k(ofile.name) def test_nlst(self): """Verify that we can handle a number list box.""" j = Jp2k(self.jpxfile) nlst = j.box[12].box[0].box[0] self.assertEqual(nlst.box_id, 'nlst') self.assertEqual(type(nlst), glymur.jp2box.NumberListBox) # Two associations. self.assertEqual(len(nlst.associations), 2) # Codestream 0 self.assertEqual(nlst.associations[0], 1 << 24) # Compositing Layer 0 self.assertEqual(nlst.associations[1], 2 << 24) glymur-0.9.1/tests/test_jp2box_uuid.py000066400000000000000000000324071360775562100200670ustar00rootroot00000000000000# -*- coding: utf-8 -*- """Test suite for printing. """ # Standard library imports try: import importlib.resources as ir except ImportError: # pragma: no cover # before 3.7 import importlib_resources as ir import io import shutil import struct import unittest import uuid import warnings # Third party library imports ... import lxml.etree # Local imports import glymur from glymur import Jp2k from glymur.jp2box import UUIDBox from . import fixtures, data TIFF_ASCII = 2 TIFF_SHORT = 3 TIFF_LONG = 4 TIFF_RATIONAL = 5 TIFF_DOUBLE = 12 SUBFILETYPE = 254 FILETYPE_REDUCEDIMAGE = 0x1 OSUBFILETYPE = 255 IMAGEWIDTH = 256 IMAGELENGTH = 257 BITSPERSAMPLE = 258 COMPRESSION = 259 COMPRESSION_NONE = 1 PHOTOMETRIC = 262 STRIPOFFSETS = 273 ORIENTATION = 274 PHOTOMETRIC_MINISBLACK = 1 SAMPLESPERPIXEL = 277 ROWSPERSTRIP = 278 STRIPBYTECOUNTS = 279 MINSAMPLEVALUE = 280 MAXSAMPLEVALUE = 281 XRESOLUTION = 282 YRESOLUTION = 283 PLANARCONFIG = 284 MODELPIXELSCALE = 33550 MODELTIEPOINT = 33922 GEOKEYDIRECTORY = 34735 GEOASCIIPARAMS = 34737 class TestSuite(fixtures.TestCommon): """Tests for XMP, Exif UUIDs.""" def _create_degenerate_geotiff(self, e): """ Create an in-memory degenerate geotiff. Parameters ---------- e : str Either '<' for little endian or '>' for big endian. Returns ------- bytes sequence of bytes making up a degenerate geotiff. Should have something like the following structure: Magic: 0x4949 Version: 0x2a Directory 0: offset 8 (0x8) next 0 (0) SubFileType (254) LONG (4) 1<1> ImageWidth (256) SHORT (3) 1<1> ImageLength (257) SHORT (3) 1<1> BitsPerSample (258) SHORT (3) 1<8> Compression (259) SHORT (3) 1<1> Photometric (262) SHORT (3) 1<1> StripOffsets (273) LONG (4) 1<1> SamplesPerPixel (277) SHORT (3) 1<1> RowsPerStrip (278) LONG (4) 1<1> StripByteCounts (279) LONG (4) 1<1> XResolution (282) RATIONAL (5) 1<75> YResolution (283) RATIONAL (5) 1<75> 33550 (0x830e) DOUBLE (12) 3<10 10 0> 33922 (0x8482) DOUBLE (12) 6<0 0 0 444650 4.64051e+06 0> 34735 (0x87af) SHORT (3) 24<1 1 0 5 1024 0 1 1 1025 0 1 1 ...> 34737 (0x87b1) ASCII (2) 45 """ b = io.BytesIO() # Create the header. # Signature, version, offset to IFD if e == '<': buffer = struct.pack('<2sHI', b'II', 42, 8) else: buffer = struct.pack('>2sHI', b'MM', 42, 8) b.write(buffer) offset = b.tell() num_tags = 16 # The CDATA offset is past IFD tag count offset += 2 # The CDATA offset is past the IFD offset += num_tags * 12 # The CDATA offset is past the null offset to next IFD offset += 4 # The CDATA offset is past the image data offset += 1 # Write the tag count buffer = struct.pack(e + 'H', num_tags) b.write(buffer) # Write out all the IFD tags. Any data that exceeds 4 bytes has to # be appended later. lst = [ struct.pack(e + 'HHII', SUBFILETYPE, TIFF_LONG, 1, 1), struct.pack(e + 'HHII', IMAGEWIDTH, TIFF_SHORT, 1, 1), struct.pack(e + 'HHII', IMAGELENGTH, TIFF_SHORT, 1, 1), struct.pack(e + 'HHII', BITSPERSAMPLE, TIFF_SHORT, 1, 8), struct.pack(e + 'HHII', COMPRESSION, TIFF_SHORT, 1, COMPRESSION_NONE), struct.pack(e + 'HHII', PHOTOMETRIC, TIFF_SHORT, 1, 1), struct.pack(e + 'HHII', STRIPOFFSETS, TIFF_LONG, 1, 1), struct.pack(e + 'HHII', SAMPLESPERPIXEL, TIFF_SHORT, 1, 1), struct.pack(e + 'HHII', ROWSPERSTRIP, TIFF_LONG, 1, 1), struct.pack(e + 'HHII', STRIPBYTECOUNTS, TIFF_LONG, 1, 1), struct.pack(e + 'HHII', XRESOLUTION, TIFF_RATIONAL, 1, offset), struct.pack(e + 'HHII', YRESOLUTION, TIFF_RATIONAL, 1, offset + 8), struct.pack(e + 'HHII', MODELPIXELSCALE, TIFF_DOUBLE, 3, offset + 16), struct.pack(e + 'HHII', MODELTIEPOINT, TIFF_DOUBLE, 6, offset + 40), struct.pack(e + 'HHII', GEOKEYDIRECTORY, TIFF_SHORT, 24, offset + 88), struct.pack(e + 'HHII', GEOASCIIPARAMS, TIFF_ASCII, 45, offset + 136), ] for buffer in lst: b.write(buffer) # NULL pointer to next IFD buffer = struct.pack(e + 'I', 0) b.write(buffer) # Image data. Just a single byte will do. buffer = struct.pack(e + 'B', 0) b.write(buffer) # Now append the tag payloads that did not fit into the IFD. # XResolution tag_payloads = [ (e + 'I', 75), # XResolution (e + 'I', 1), (e + 'I', 75), # YResolution (e + 'I', 1), (e + 'd', 10), # Model pixel scale tag (e + 'd', 10), (e + 'd', 0), ] # MODELTIEPOINT datums = [0.0, 0.0, 0.0, 44650.0, 4640510.0, 0.0] for datum in datums: tag_payloads.append((e + 'd', datum)) # GeoKeyDirectory datums = [ 1, 1, 0, 5, 1024, 0, 1, 1, 1025, 0, 1, 1, 1026, 34737, 20, 0, 2049, 34737, 24, 20, 3072, 0, 1, 26716, ] for datum in datums: tag_payloads.append((e + 'H', datum)) # GEOASCIIPARAMS items = (e + '45s', b'UTM Zone 16N NAD27"|Clarke, 1866 by Default| ') tag_payloads.append(items) # Tag payloads for format, datum in tag_payloads: buffer = struct.pack(format, datum) b.write(buffer) b.seek(0) return b.read() def test__printing__geotiff_uuid__xml_sidecar(self): """ SCENARIO: Print a geotiff UUID with XML sidecar file EXPECTED RESULT: Should not error out. """ box_data = ir.read_binary('tests.data.0220000800', 'uuid.dat') bf = io.BytesIO(box_data) bf.seek(8) box = UUIDBox.parse(bf, 0, 703) str(box) def test_append_xmp_uuid(self): """ SCENARIO: Append an XMP UUID box to an existing JP2 file. EXPECTED RESULT: The new last box in the JP2 file is UUID. """ the_uuid = uuid.UUID('be7acfcb-97a9-42e8-9c71-999491e3afac') raw_data = fixtures.SIMPLE_RDF.encode('utf-8') shutil.copyfile(self.jp2file, self.temp_jp2_filename) jp2 = Jp2k(self.temp_jp2_filename) ubox = glymur.jp2box.UUIDBox(the_uuid=the_uuid, raw_data=raw_data) jp2.append(ubox) # Should be two UUID boxes now. expected_ids = ['jP ', 'ftyp', 'jp2h', 'uuid', 'jp2c', 'uuid'] actual_ids = [b.box_id for b in jp2.box] self.assertEqual(actual_ids, expected_ids) # The data should be an XMP packet, which gets interpreted as # an ElementTree. self.assertTrue(isinstance(jp2.box[-1].data, lxml.etree._ElementTree)) def test_bad_exif_tag(self): """ Corrupt the Exif IFD with an invalid tag should produce a warning. """ b = self._create_exif_uuid('<') b.seek(0) buffer = b.read() # The first tag should begin at byte 32. Replace the entire IDF # entry with zeros. tag = struct.pack('']: self._test_endian_exif(endian) def _create_exif_uuid(self, endian): """ Create a buffer that can be parsed as an Exif UUID. Parameters ---------- endian : str Either '<' for little endian or '>' for big endian """ b = io.BytesIO() # Write L, T, UUID identifier. # 388 = length of degenerate tiff # 6 = Exif\x0\x0 # 16 = length of UUID identifier # 8 = length of L, T # 388 + 6 + 16 + 8 = 418 b.write(struct.pack('>I4s', 418, b'uuid')) b.write(b'JpgTiffExif->JP2') b.write(b'Exif\x00\x00') buffer = self._create_degenerate_geotiff(endian) b.write(buffer) b.seek(8) return b def _test_endian_exif(self, endian): """ Test Exif IFDs. Parameters ---------- endian : str Either '<' for little endian or '>' for big endian """ bptr = self._create_exif_uuid(endian) box = glymur.jp2box.UUIDBox.parse(bptr, 0, 418) self.assertEqual(box.data['XResolution'], 75) expected = 'UTM Zone 16N NAD27"|Clarke, 1866 by Default| ' self.assertEqual(box.data['GeoAsciiParams'], expected) def test_print_bad_geotiff(self): """ SCENARIO: A GeoTIFF UUID is corrupt. EXPECTED RESULT: The string representation should validate and clearly state that the UUID box is corrupt. """ with ir.path(data, 'issue398.dat') as path: with path.open('rb') as f: f.seek(8) with warnings.catch_warnings(): # Ignore the warnings about invalid TIFF tags, we already # know that. warnings.simplefilter('ignore') box = glymur.jp2box.UUIDBox.parse(f, 0, 380) actual = str(box) expected = ("UUID Box (uuid) @ (0, 380)\n" " UUID: " "b14bf8bd-083d-4b43-a5ae-8cd7d5a6ce03 (GeoTIFF)\n" " UUID Data: corrupt") self.assertEqual(actual, expected) class TestSuiteHiRISE(fixtures.TestCommon): """Tests for HiRISE RDRs.""" def setUp(self): super(TestSuiteHiRISE, self).setUp() # Hand-create the boxes needed for HiRISE. the_uuid = uuid.UUID('2b0d7e97-aa2e-317d-9a33-e53161a2f7d0') ulst = glymur.jp2box.UUIDListBox([the_uuid]) version = 0 flag = [0, 0, 0] url = 'ESP_032436_1755_COLOR.LBL' debox = glymur.jp2box.DataEntryURLBox(version, flag, url) uuidinfo = glymur.jp2box.UUIDInfoBox([ulst, debox]) uuid_data = ir.read_binary(data, 'degenerate_geotiff.tif') the_uuid = uuid.UUID('b14bf8bd-083d-4b43-a5ae-8cd7d5a6ce03') geotiff_uuid = glymur.jp2box.UUIDBox(the_uuid, uuid_data) # Fabricate a new JP2 file out of the signature, file type, header, # and codestream out of nemo.jp2, but add in the UUIDInfo and UUID # box from HiRISE. jp2 = Jp2k(self.jp2file) boxes = [jp2.box[0], jp2.box[1], jp2.box[2], uuidinfo, geotiff_uuid, jp2.box[-1]] self.hirise_jp2file_name = self.test_dir_path / 'hirise.jp2' jp2.wrap(self.hirise_jp2file_name, boxes=boxes) def test_tags(self): jp2 = Jp2k(self.hirise_jp2file_name) self.assertEqual(jp2.box[4].data['GeoDoubleParams'], (0.0, 180.0, 0.0, 0.0, 3396190.0, 3396190.0)) self.assertEqual(jp2.box[4].data['GeoAsciiParams'], 'Equirectangular MARS|GCS_MARS|') self.assertEqual(jp2.box[4].data['GeoKeyDirectory'], ( 1, 1, 0, 18, # noqa 1024, 0, 1, 1, # noqa 1025, 0, 1, 1, # noqa 1026, 34737, 21, 0, # noqa 2048, 0, 1, 32767, # noqa 2049, 34737, 9, 21, # noqa 2050, 0, 1, 32767, # noqa 2054, 0, 1, 9102, # noqa 2056, 0, 1, 32767, # noqa 2057, 34736, 1, 4, # noqa 2058, 34736, 1, 5, # noqa 3072, 0, 1, 32767, # noqa 3074, 0, 1, 32767, # noqa 3075, 0, 1, 17, # noqa 3076, 0, 1, 9001, # noqa 3082, 34736, 1, 2, # noqa 3083, 34736, 1, 3, # noqa 3088, 34736, 1, 1, # noqa 3089, 34736, 1, 0, # noqa )) self.assertEqual(jp2.box[4].data['ModelPixelScale'], (0.25, 0.25, 0.0)) self.assertEqual(jp2.box[4].data['ModelTiePoint'], ( 0.0, 0.0, 0.0, -2523306.125, -268608.875, 0.0 )) @unittest.skipIf(not fixtures._HAVE_GDAL, 'Could not load GDAL') def test_printing_geotiff_uuid(self): """ SCENARIO: Print a geotiff UUID. EXPECTED RESULT: Should match a known geotiff UUID. The string representation validates. """ jp2 = Jp2k(self.hirise_jp2file_name) self.maxDiff = None actual = str(jp2.box[4]) expected = fixtures.GEOTIFF_UUID self.assertEqual(actual, expected) glymur-0.9.1/tests/test_jp2box_xml.py000066400000000000000000000225061360775562100177200ustar00rootroot00000000000000# -*- coding: utf-8 -*- """ Test suite specifically targeting the JP2 XML box layout. """ # Standard library imports try: import importlib.resources as ir except ImportError: # pragma: no cover # before 3.7 import importlib_resources as ir from io import BytesIO import pathlib import struct import warnings # 3rd party library imports import lxml.etree as ET # Local imports import glymur from glymur import Jp2k from glymur.jp2box import ( ColourSpecificationBox, ContiguousCodestreamBox, FileTypeBox, ImageHeaderBox, JP2HeaderBox ) from glymur.jp2box import JPEG2000SignatureBox from . import fixtures, data class TestXML(fixtures.TestCommon): """Test suite for XML boxes.""" def setUp(self): super(TestXML, self).setUp() raw_xml = b""" 1 2008 141100 4 2011 59900 68 2011 13600 """ path = self.test_dir_path / 'data.xml' with path.open(mode='wb') as tfile: tfile.write(raw_xml) tfile.flush() self.xmlfile_path = path self.xmlfile = str(path) j2k = Jp2k(self.j2kfile) codestream = j2k.get_codestream() height = codestream.segment[1].ysiz width = codestream.segment[1].xsiz num_components = len(codestream.segment[1].xrsiz) self.jp2b = JPEG2000SignatureBox() self.ftyp = FileTypeBox() self.jp2h = JP2HeaderBox() self.jp2c = ContiguousCodestreamBox() self.ihdr = ImageHeaderBox(height=height, width=width, num_components=num_components) self.colr = ColourSpecificationBox(colorspace=glymur.core.SRGB) def test_negative_file_and_xml(self): """The XML should come from only one source.""" xml_object = ET.parse(self.xmlfile) with self.assertRaises(RuntimeError): glymur.jp2box.XMLBox(filename=self.xmlfile, xml=xml_object) def test_basic_xml(self): """ SCENARIO: Write a JP2 file with an xml box. EXPECTED RESULT: The xml box should be validated. """ j2k = Jp2k(self.j2kfile) self.jp2h.box = [self.ihdr, self.colr] doc = ET.parse(BytesIO(b'0')) xmlb = glymur.jp2box.XMLBox(xml=doc) self.assertEqual(ET.tostring(xmlb.xml.getroot()), b'0') boxes = [self.jp2b, self.ftyp, self.jp2h, xmlb, self.jp2c] j2k.wrap(self.temp_jp2_filename, boxes=boxes) jp2 = Jp2k(self.temp_jp2_filename) self.assertEqual(jp2.box[3].box_id, 'xml ') self.assertEqual(ET.tostring(jp2.box[3].xml.getroot()), b'0') def test_xml_from_file_as_path(self): """ SCENARIO: Create an xml box by pointing at an XML file via a pathlib path. EXPECTED RESULT: The xml box is validated. """ box = glymur.jp2box.XMLBox(filename=pathlib.Path(self.xmlfile)) elts = box.xml.findall('country') self.assertEqual(len(elts), 3) neighbor = elts[1].find('neighbor') self.assertEqual(neighbor.attrib['name'], 'Malaysia') self.assertEqual(neighbor.attrib['direction'], 'N') def test_xml_from_file_as_string(self): """ SCENARIO: Create an xml box by pointing at an XML file via string EXPECTED RESULT: The xml box is validated. """ box = glymur.jp2box.XMLBox(filename=self.xmlfile) elts = box.xml.findall('country') self.assertEqual(len(elts), 3) neighbor = elts[1].find('neighbor') self.assertEqual(neighbor.attrib['name'], 'Malaysia') self.assertEqual(neighbor.attrib['direction'], 'N') def test_utf8_xml_from_xml_file(self): """ XMLBox from an XML file with encoding declaration. """ # 'Россия' is 'Russia' in Cyrillic, not that it matters. doc = "Россия" xml = f"""{doc}""" path = self.test_dir_path / 'cyrillic.xml' with path.open(mode="wb") as f: f.write(xml.encode('utf-8')) xmlbox = glymur.jp2box.XMLBox(filename=str(path)) root = xmlbox.xml.getroot() actual = ET.tostring(root, encoding='utf-8').decode('utf-8') self.assertEqual(actual, doc) def test_xml_box_with_encoding_declaration(self): """ SCENARIO: A JP2 file is encountered with an XML box having an encoding declaration. EXPECTED RESULT: The xml box is validated. """ xmldata = ir.read_binary(data, 'encoding_declaration.xml') with open(self.temp_jp2_filename, mode="wb") as ofile: with open(self.jp2file, mode='rb') as ifile: ofile.write(ifile.read()) # Write the additional box. box_header = struct.pack('>I4s', len(xmldata) + 8, b'xml ') ofile.write(box_header) ofile.write(xmldata) ofile.flush() ofile.seek(0) jp2 = glymur.Jp2k(ofile.name) # Verify that XML box self.assertEqual(jp2.box[-1].box_id, 'xml ') namespaces = { 'gml': "http://www.opengis.net/gml", 'xsi': "http://www.w3.org/2001/XMLSchema-instance", } elts = jp2.box[-1].xml.xpath('//gml:rangeSet', namespaces=namespaces) self.assertEqual(len(elts), 1) # Write it back out, read it back in. file2 = self.test_dir_path / 'file2.jp2' jp2_2 = jp2.wrap(file2, boxes=jp2.box) # Verify that XML box self.assertEqual(jp2_2.box[-1].box_id, 'xml ') elts = jp2.box[-1].xml.xpath('//gml:rangeSet', namespaces=namespaces) self.assertEqual(len(elts), 1) def test_invalid_xml_box(self): """ SCENARIO: A JP2 file is encountered with a bad XML box. EXPECTED RESULT: The XML cannot be recovered, but the JP2 parsing does not fail """ with open(self.temp_jp2_filename, mode='wb') as tfile: with open(self.jp2file, 'rb') as ifile: # Everything up until the UUID box. write_buffer = ifile.read(77) tfile.write(write_buffer) # Write the xml box with bad xml # Length = 28, id is 'xml '. write_buffer = struct.pack('>I4s', int(28), b'xml ') tfile.write(write_buffer) write_buffer = 'this is a test' write_buffer = write_buffer.encode() tfile.write(write_buffer) # Get the rest of the input file. write_buffer = ifile.read() tfile.write(write_buffer) tfile.flush() with warnings.catch_warnings(): warnings.simplefilter('ignore') jp2k = Jp2k(self.temp_jp2_filename) self.assertEqual(jp2k.box[3].box_id, 'xml ') self.assertEqual(jp2k.box[3].offset, 77) self.assertEqual(jp2k.box[3].length, 28) self.assertIsNone(jp2k.box[3].xml) def test_recover_from_bad_xml(self): """ SCENARIO: A JP2 file is encountered with a bad XML payload, but this time it is recoverable error. The XML itself is ok. EXPECTED RESULT: """ with open(self.temp_jp2_filename, mode='wb') as tfile: with open(self.jp2file, 'rb') as ifile: # Everything up until the UUID box. write_buffer = ifile.read(77) tfile.write(write_buffer) # Write the xml box with bad xml # Length = 64, id is 'xml '. write_buffer = struct.pack('>I4s', int(64), b'xml ') tfile.write(write_buffer) # Write out 8 bad bytes. write_buffer = b'\x00\x00\x07\x90xml ' tfile.write(write_buffer) # Write out 48 good bytes constituting the XML payload. write_buffer = b'' tfile.write(write_buffer) doc = b'this is a test' tfile.write(doc) # Get the rest of the input file. write_buffer = ifile.read() tfile.write(write_buffer) tfile.flush() with warnings.catch_warnings(): warnings.simplefilter('ignore') jp2 = Jp2k(self.temp_jp2_filename) self.assertEqual(jp2.box[3].box_id, 'xml ') self.assertEqual(jp2.box[3].offset, 77) self.assertEqual(jp2.box[3].length, 64) self.assertEqual(ET.tostring(jp2.box[3].xml.getroot()), doc) glymur-0.9.1/tests/test_jp2k.py000066400000000000000000002711321360775562100165030ustar00rootroot00000000000000""" Tests for general glymur functionality. """ # Standard library imports ... import collections import datetime import doctest try: import importlib.resources as ir except ImportError: # pragma: no cover # before 3.7 import importlib_resources as ir from io import BytesIO import os import pathlib import struct import tempfile import time import unittest from unittest.mock import patch import uuid import warnings # Third party library imports ... from lxml import etree as ET import numpy as np try: import skimage.data import skimage.measure _HAVE_SCIKIT_IMAGE = True except ModuleNotFoundError: _HAVE_SCIKIT_IMAGE = False # Local imports import glymur from glymur import Jp2k from glymur.jp2box import InvalidJp2kError from glymur.core import COLOR, RED, GREEN, BLUE, RESTRICTED_ICC_PROFILE from .fixtures import OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG from . import fixtures, data def docTearDown(doctest_obj): # pragma: no cover glymur.set_option('parse.full_codestream', False) # Doc tests should be run as well. def load_tests(loader, tests, ignore): # pragma: no cover """Should run doc tests as well""" if os.name == "nt": # Can't do it on windows, temporary file issue. return tests if glymur.lib.openjp2.OPENJP2 is not None: tests.addTests(doctest.DocTestSuite('glymur.jp2k', tearDown=docTearDown)) return tests class SliceProtocolBase(fixtures.TestCommon): """ Test slice protocol, i.e. when using [ ] to read image data. """ @classmethod def setUpClass(self): self.jp2 = Jp2k(glymur.data.nemo()) self.jp2_data = self.jp2[:] self.jp2_data_r1 = self.jp2[::2, ::2] self.j2k = Jp2k(glymur.data.goodstuff()) self.j2k_data = self.j2k[:] self.j2k_data_r1 = self.j2k[::2, ::2] self.j2k_data_r5 = self.j2k[::32, ::32] @unittest.skipIf(OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG) class TestSliceProtocolBaseWrite(SliceProtocolBase): def test_write_ellipsis(self): """ SCENARIO: write image by specifying ellipsis in slice EXPECTED RESULT: image is validated """ expected = self.j2k_data j = Jp2k(self.temp_j2k_filename, shape=expected.shape) j[...] = expected actual = j[:] np.testing.assert_array_equal(actual, expected) def test_basic_write(self): """ SCENARIO: write image by specifying image data in constructor EXPECTED RESULT: image is validated """ expected = self.j2k_data j = Jp2k(self.temp_j2k_filename, shape=expected.shape) j[:] = expected actual = j[:] np.testing.assert_array_equal(actual, expected) def test_cannot_write_with_non_default_single_slice(self): """ SCENARIO: Write image using single non-default slices. Only ':' is currently valid as a single slice argument. EXPECTED RESULT: ValueError """ j = Jp2k(self.temp_j2k_filename, shape=self.j2k_data.shape) with self.assertRaises(ValueError): j[slice(None, 0)] = self.j2k_data with self.assertRaises(ValueError): j[slice(0, None)] = self.j2k_data with self.assertRaises(ValueError): j[slice(0, 0, None)] = self.j2k_data with self.assertRaises(ValueError): j[slice(0, 640)] = self.j2k_data def test_cannot_write_a_row(self): """ SCENARIO: Write image row by specifying slicing. Only ':' is currently valid as a single slice argument. EXPECTED RESULT: ValueError """ j = Jp2k(self.temp_j2k_filename, shape=self.j2k_data.shape) with self.assertRaises(ValueError): j[5] = self.j2k_data def test_cannot_write_a_pixel(self): """ SCENARIO: Write pixel by specifying slicing. Only ':' is currently valid as a single slice argument. EXPECTED RESULT: ValueError """ j = Jp2k(self.temp_j2k_filename, shape=self.j2k_data.shape) with self.assertRaises(ValueError): j[25, 35] = self.j2k_data[25, 35] def test_cannot_write_a_column(self): """ SCENARIO: Write column by specifying slicing. Only ':' is currently valid as a single slice argument. EXPECTED RESULT: ValueError """ j = Jp2k(self.temp_j2k_filename, shape=self.j2k_data.shape) with self.assertRaises(ValueError): j[:, 25, :] = self.j2k_data[:, :25, :] def test_cannot_write_a_band(self): """ SCENARIO: Write band by specifying slicing. Only ':' is currently valid as a single slice argument. EXPECTED RESULT: ValueError """ j = Jp2k(self.temp_j2k_filename, shape=self.j2k_data.shape) with self.assertRaises(ValueError): j[:, :, 0] = self.j2k_data[:, :, 0] def test_cannot_write_a_subarray(self): """ SCENARIO: Write area by specifying slicing. Only ':' is currently valid as a single slice argument. EXPECTED RESULT: ValueError """ j = Jp2k(self.temp_j2k_filename, shape=self.j2k_data.shape) with self.assertRaises(ValueError): j[:25, :45, :] = self.j2k_data[:25, :25, :] @unittest.skipIf(OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG) class TestSliceProtocolRead(SliceProtocolBase): def test_resolution_strides_cannot_differ(self): with self.assertRaises(ValueError): # Strides in x/y directions cannot differ. self.j2k[::2, ::3] def test_resolution_strides_must_be_powers_of_two(self): with self.assertRaises(ValueError): self.j2k[::3, ::3] def test_integer_index_in_3d(self): for j in [0, 1, 2]: band = self.j2k[:, :, j] np.testing.assert_array_equal(self.j2k_data[:, :, j], band) def test_slice_in_third_dimension(self): actual = self.j2k[:, :, 1:3] expected = self.j2k_data[:, :, 1:3] np.testing.assert_array_equal(actual, expected) def test_reduce_resolution_and_slice_in_third_dimension(self): actual = self.j2k[::2, ::2, 1:3] expected = self.j2k_data_r1[:, :, 1:3] np.testing.assert_array_equal(actual, expected) def test_retrieve_single_row(self): actual = self.jp2[0] expected = self.jp2_data[0] np.testing.assert_array_equal(actual, expected) def test_retrieve_single_pixel(self): actual = self.jp2[0, 0] expected = self.jp2_data[0, 0] np.testing.assert_array_equal(actual, expected) def test_retrieve_single_component(self): actual = self.jp2[20, 20, 2] expected = self.jp2_data[20, 20, 2] np.testing.assert_array_equal(actual, expected) def test_ellipsis_full_read(self): actual = self.j2k[...] expected = self.j2k_data np.testing.assert_array_equal(actual, expected) def test_ellipsis_band_select(self): actual = self.j2k[..., 0] expected = self.j2k_data[..., 0] np.testing.assert_array_equal(actual, expected) def test_ellipsis_row_select(self): actual = self.j2k[0, ...] expected = self.j2k_data[0, ...] np.testing.assert_array_equal(actual, expected) def test_two_ellipsis_band_select(self): actual = self.j2k[..., ..., 1] expected = self.j2k_data[:, :, 1] np.testing.assert_array_equal(actual, expected) def test_two_ellipsis_row_select(self): actual = self.j2k[1, ..., ...] expected = self.j2k_data[1, :, :] np.testing.assert_array_equal(actual, expected) def test_two_ellipsis_and_full_slice(self): actual = self.j2k[..., ..., :] expected = self.j2k_data[:] np.testing.assert_array_equal(actual, expected) def test_single_slice(self): rows = slice(3, 8) actual = self.j2k[rows] expected = self.j2k_data[3:8, :, :] np.testing.assert_array_equal(actual, expected) def test_region_rlevel5(self): """ maximim rlevel There seems to be a difference between version of openjpeg, as openjp2 produces an image of size (16, 13, 3) and openjpeg produced (17, 12, 3). """ actual = self.j2k[5:533:32, 27:423:32] expected = self.j2k_data_r5[1:17, 1:14] np.testing.assert_array_equal(actual, expected) @unittest.skipIf(OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG) @unittest.skipIf(glymur.version.openjpeg_version < '2.3.0', "Requires as least v2.3.0") class TestJp2k(fixtures.TestCommon): """These tests should be run by just about all configuration.""" def setUp(self): super(TestJp2k, self).setUp() glymur.reset_option('all') def test_read_bands_unequal_subsampling(self): """ SCENARIO: The read_bands method is used on an image with unequal subsampling. EXPECTED RESPONSE: The image is a list of arrays of unequal size. """ with ir.path(data, 'p0_06.j2k') as path: d = Jp2k(path).read_bands() actual = [band.shape for band in d] expected = [(129, 513), (129, 257), (65, 513), (65, 257)] self.assertEqual(actual, expected) def test_read_bands(self): """ SCENARIO: The read_bands method really should only be used on images with different subsampling values. But for backwards compatibility it also reads images with the same subsampling value. Read data via both the slicing protocol and the read_bands method. EXPECTED RESULT: The shape of the data read via the slicing protocol should be the same as the shape read by the read_bands method. """ j = Jp2k(self.jp2file) d1 = j[:] d2 = j.read_bands() self.assertEqual(d1.shape, d2.shape) def test_pathlib(self): """ SCENARIO: Provide a pathlib.Path instead of a string for the filename. """ p = pathlib.Path(self.jp2file) jp2 = Jp2k(p) self.assertEqual(jp2.shape, (1456, 2592, 3)) def test_no_cxform_pclr_jpx(self): """ Indices for pclr jpxfile still usable if no color transform specified """ with warnings.catch_warnings(): # Suppress a Compatibility list item warning. We already test # for this elsewhere. warnings.simplefilter("ignore") jp2 = Jp2k(self.jpxfile) rgb = jp2[:] jp2.ignore_pclr_cmap_cdef = True idx = jp2[:] self.assertEqual(rgb.shape, (1024, 1024, 3)) self.assertEqual(idx.shape, (1024, 1024)) # Should be able to manually reconstruct the RGB image from the palette # and indices. palette = jp2.box[2].box[2].palette rgb_from_idx = np.zeros(rgb.shape, dtype=np.uint8) for r in np.arange(rgb.shape[0]): for c in np.arange(rgb.shape[1]): rgb_from_idx[r, c] = palette[idx[r, c]] np.testing.assert_array_equal(rgb, rgb_from_idx) def test_no_cxform_cmap(self): """ SCENARIO: Write an RGB image as a JP2 file, but with a colr box specifying the components in reverse order. The codestream is the same, it's just the colr box that is different. EXPECTED RESULT: The output image has bands reversed from the input image. """ j2k = Jp2k(self.j2kfile) rgb = j2k[:] height, width, ncomps = rgb.shape # Rewrap the J2K file to reorder the components boxes = [ glymur.jp2box.JPEG2000SignatureBox(), glymur.jp2box.FileTypeBox() ] jp2h = glymur.jp2box.JP2HeaderBox() jp2h.box = [ glymur.jp2box.ImageHeaderBox(height, width, num_components=ncomps), glymur.jp2box.ColourSpecificationBox(colorspace=glymur.core.SRGB) ] channel_type = [COLOR, COLOR, COLOR] association = [BLUE, GREEN, RED] cdef = glymur.jp2box.ChannelDefinitionBox(channel_type=channel_type, association=association) jp2h.box.append(cdef) boxes.append(jp2h) boxes.append(glymur.jp2box.ContiguousCodestreamBox()) # Write the image back out with reversed definition. The codestream # is the same, it's just the JP2 wrapper that is different. jp2 = j2k.wrap(self.temp_jp2_filename, boxes=boxes) jp2.ignore_pclr_cmap_cdef = False bgr = jp2[:] np.testing.assert_array_equal(rgb, bgr[:, :, [2, 1, 0]]) def test_bad_tile_part_pointer(self): """ SCENARIO: A bad SOT marker segment is encountered (Psot value pointing far beyond the end of the EOC marker) when requesting a fully parsed codestream. EXPECTED RESULT: struct.error """ with open(self.temp_jp2_filename, 'wb') as ofile: with open(self.jp2file, 'rb') as ifile: # Copy up until Psot field. ofile.write(ifile.read(3350)) # Write a bad Psot value. ofile.write(struct.pack('>I', 2000000)) # copy the rest of the file as-is. ifile.seek(3354) ofile.write(ifile.read()) ofile.flush() j = Jp2k(self.temp_jp2_filename) with self.assertRaises(struct.error): j.get_codestream(header_only=False) def test_read_differing_subsamples(self): """ SCENARIO: Attempt to read a file where the components have differing subsampling. This causes the decoded components to have different sizes. EXPECTED RESULT: RuntimeError """ # copy nemo.jp2 but change the SIZ segment to have differing subsamples with open(self.temp_jp2_filename, mode='wb') as ofile: with open(self.jp2file, 'rb') as ifile: # Copy up until codestream box. ofile.write(ifile.read(3223)) # Write the jp2c header and SOC marker. ofile.write(ifile.read(10)) # Read the SIZ segment, modify the last y subsampling value, # and write it back out buffer = bytearray(ifile.read(49)) buffer[-1] = 2 ofile.write(buffer) # Write the rest of the file. ofile.write(ifile.read()) ofile.flush() j = Jp2k(ofile.name) with self.assertRaises(RuntimeError): j[:] def test_shape_jp2(self): """verify shape attribute for JP2 file """ jp2 = Jp2k(self.jp2file) self.assertEqual(jp2.shape, (1456, 2592, 3)) def test_shape_3_channel_j2k(self): """verify shape attribute for J2K file """ j2k = Jp2k(self.j2kfile) self.assertEqual(j2k.shape, (800, 480, 3)) def test_shape_jpx_jp2(self): """verify shape attribute for JPX file with JP2 compatibility """ jpx = Jp2k(self.jpxfile) self.assertEqual(jpx.shape, (1024, 1024, 3)) def test_irreversible(self): """ SCENARIO: Write a J2K file with the irreversible transform. EXPECTED RESULT: the 9-7 wavelet transform is detected in the codestream. """ j = Jp2k(self.jp2file) expdata = j[:] j2 = Jp2k(self.temp_j2k_filename, data=expdata, irreversible=True) codestream = j2.get_codestream() self.assertEqual(codestream.segment[2].xform, glymur.core.WAVELET_XFORM_9X7_IRREVERSIBLE) actdata = j2[:] self.assertTrue(fixtures.mse(actdata[0], expdata[0]) < 0.38) def test_rlevel_max_backwards_compatibility(self): """ Verify that rlevel=-1 gets us the lowest resolution image This is an old option only available via the read method, not via array-style slicing. """ j = Jp2k(self.j2kfile) with warnings.catch_warnings(): # Suppress the DeprecationWarning warnings.simplefilter("ignore") thumbnail1 = j.read(rlevel=-1) thumbnail2 = j[::32, ::32] np.testing.assert_array_equal(thumbnail1, thumbnail2) self.assertEqual(thumbnail1.shape, (25, 15, 3)) @unittest.skipIf(OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG) def test_rlevel_too_high(self): """Should error out appropriately if reduce level too high""" j = Jp2k(self.jp2file) with self.assertRaises(ValueError): j[::64, ::64] def test_not_jpeg2000(self): """ SCENARIO: The Jp2k constructor is passed a file that is not JPEG 2000. EXPECTED RESULT: RuntimeError """ with ir.path(glymur, 'jp2k.py') as path: with self.assertRaises(InvalidJp2kError): Jp2k(path) def test_file_not_present(self): """Should error out if reading from a file that does not exist""" # Verify that we error out appropriately if not given an existing file # at all. filename = 'this file does not actually exist on the file system.' with self.assertRaises(OSError): Jp2k(filename) def test_codestream(self): """ Verify the markers and segments of a JP2 file codestream. """ jp2 = Jp2k(self.jp2file) c = jp2.get_codestream(header_only=False) # SOC self.assertEqual(c.segment[0].marker_id, 'SOC') # SIZ self.assertEqual(c.segment[1].marker_id, 'SIZ') self.assertEqual(c.segment[1].rsiz, 0) self.assertEqual(c.segment[1].xsiz, 2592) self.assertEqual(c.segment[1].ysiz, 1456) self.assertEqual(c.segment[1].xosiz, 0) self.assertEqual(c.segment[1].yosiz, 0) self.assertEqual(c.segment[1].xtsiz, 2592) self.assertEqual(c.segment[1].ytsiz, 1456) self.assertEqual(c.segment[1].xtosiz, 0) self.assertEqual(c.segment[1].ytosiz, 0) self.assertEqual(c.segment[1].Csiz, 3) self.assertEqual(c.segment[1].bitdepth, (8, 8, 8)) self.assertEqual(c.segment[1].signed, (False, False, False)) self.assertEqual(c.segment[1].xrsiz, (1, 1, 1)) self.assertEqual(c.segment[1].yrsiz, (1, 1, 1)) self.assertEqual(c.segment[2].marker_id, 'COD') self.assertEqual(c.segment[2].offset, 3282) self.assertEqual(c.segment[2].length, 12) self.assertEqual(c.segment[2].scod, 0) self.assertEqual(c.segment[2].layers, 2) self.assertEqual(c.segment[2].code_block_size, (64.0, 64.0)) self.assertEqual(c.segment[2].prog_order, 0) self.assertEqual(c.segment[2].xform, 1) self.assertEqual(c.segment[2].precinct_size, ((32768, 32768))) self.assertEqual(c.segment[3].marker_id, 'QCD') self.assertEqual(c.segment[3].offset, 3296) self.assertEqual(c.segment[3].length, 7) self.assertEqual(c.segment[3].sqcd, 64) self.assertEqual(c.segment[3].mantissa, [0, 0, 0, 0]) self.assertEqual(c.segment[3].exponent, [8, 9, 9, 10]) self.assertEqual(c.segment[3].guard_bits, 2) self.assertEqual(c.segment[4].marker_id, 'CME') self.assertEqual(c.segment[4].rcme, 1) self.assertEqual(c.segment[4].ccme, b'Created by OpenJPEG version 2.0.0') self.assertEqual(c.segment[5].marker_id, 'SOT') self.assertEqual(c.segment[5].offset, 3344) self.assertEqual(c.segment[5].length, 10) self.assertEqual(c.segment[5].isot, 0) self.assertEqual(c.segment[5].psot, 1132173) self.assertEqual(c.segment[5].tpsot, 0) self.assertEqual(c.segment[5].tnsot, 1) self.assertEqual(c.segment[6].marker_id, 'COC') self.assertEqual(c.segment[6].offset, 3356) self.assertEqual(c.segment[6].length, 9) self.assertEqual(c.segment[6].ccoc, 1) np.testing.assert_array_equal(c.segment[6].scoc, np.array([0])) np.testing.assert_array_equal(c.segment[6].spcoc, np.array([1, 4, 4, 0, 1])) self.assertEqual(c.segment[6].precinct_size, ((32768, 32768))) self.assertEqual(c.segment[7].marker_id, 'QCC') self.assertEqual(c.segment[7].offset, 3367) self.assertEqual(c.segment[7].length, 8) self.assertEqual(c.segment[7].cqcc, 1) self.assertEqual(c.segment[7].sqcc, 64) self.assertEqual(c.segment[7].mantissa, [0, 0, 0, 0]) self.assertEqual(c.segment[7].exponent, [8, 9, 9, 10]) self.assertEqual(c.segment[7].guard_bits, 2) self.assertEqual(c.segment[8].marker_id, 'COC') self.assertEqual(c.segment[8].offset, 3377) self.assertEqual(c.segment[8].length, 9) self.assertEqual(c.segment[8].ccoc, 2) np.testing.assert_array_equal(c.segment[8].scoc, np.array([0])) np.testing.assert_array_equal(c.segment[8].spcoc, np.array([1, 4, 4, 0, 1])) self.assertEqual(c.segment[8].precinct_size, ((32768, 32768))) self.assertEqual(c.segment[9].marker_id, 'QCC') self.assertEqual(c.segment[9].offset, 3388) self.assertEqual(c.segment[9].length, 8) self.assertEqual(c.segment[9].cqcc, 2) self.assertEqual(c.segment[9].sqcc, 64) self.assertEqual(c.segment[9].mantissa, [0, 0, 0, 0]) self.assertEqual(c.segment[9].exponent, [8, 9, 9, 10]) self.assertEqual(c.segment[9].guard_bits, 2) self.assertEqual(c.segment[10].marker_id, 'SOD') self.assertEqual(c.segment[11].marker_id, 'EOC') def test_jp2_boxes(self): """Verify the boxes of a JP2 file. Basic jp2 test.""" jp2k = Jp2k(self.jp2file) # top-level boxes self.assertEqual(len(jp2k.box), 5) self.assertEqual(jp2k.box[0].box_id, 'jP ') self.assertEqual(jp2k.box[0].offset, 0) self.assertEqual(jp2k.box[0].length, 12) self.assertEqual(jp2k.box[0].longname, 'JPEG 2000 Signature') self.assertEqual(jp2k.box[1].box_id, 'ftyp') self.assertEqual(jp2k.box[1].offset, 12) self.assertEqual(jp2k.box[1].length, 20) self.assertEqual(jp2k.box[1].longname, 'File Type') self.assertEqual(jp2k.box[2].box_id, 'jp2h') self.assertEqual(jp2k.box[2].offset, 32) self.assertEqual(jp2k.box[2].length, 45) self.assertEqual(jp2k.box[2].longname, 'JP2 Header') self.assertEqual(jp2k.box[3].box_id, 'uuid') self.assertEqual(jp2k.box[3].offset, 77) self.assertEqual(jp2k.box[3].length, 3146) self.assertEqual(jp2k.box[4].box_id, 'jp2c') self.assertEqual(jp2k.box[4].offset, 3223) self.assertEqual(jp2k.box[4].length, 1132296) # jp2h super box self.assertEqual(len(jp2k.box[2].box), 2) self.assertEqual(jp2k.box[2].box[0].box_id, 'ihdr') self.assertEqual(jp2k.box[2].box[0].offset, 40) self.assertEqual(jp2k.box[2].box[0].length, 22) self.assertEqual(jp2k.box[2].box[0].longname, 'Image Header') self.assertEqual(jp2k.box[2].box[0].height, 1456) self.assertEqual(jp2k.box[2].box[0].width, 2592) self.assertEqual(jp2k.box[2].box[0].num_components, 3) self.assertEqual(jp2k.box[2].box[0].bits_per_component, 8) self.assertEqual(jp2k.box[2].box[0].signed, False) self.assertEqual(jp2k.box[2].box[0].compression, 7) self.assertEqual(jp2k.box[2].box[0].colorspace_unknown, False) self.assertEqual(jp2k.box[2].box[0].ip_provided, False) self.assertEqual(jp2k.box[2].box[1].box_id, 'colr') self.assertEqual(jp2k.box[2].box[1].offset, 62) self.assertEqual(jp2k.box[2].box[1].length, 15) self.assertEqual(jp2k.box[2].box[1].longname, 'Colour Specification') self.assertEqual(jp2k.box[2].box[1].precedence, 0) self.assertEqual(jp2k.box[2].box[1].approximation, 0) self.assertEqual(jp2k.box[2].box[1].colorspace, glymur.core.SRGB) self.assertIsNone(jp2k.box[2].box[1].icc_profile) def test_j2k_box(self): """A J2K/J2C file must not have any boxes.""" # Verify that a J2K file has no boxes. jp2k = Jp2k(self.j2kfile) self.assertEqual(len(jp2k.box), 0) def test_64bit_xl_field(self): """ SCENARIO: A JP2 file is encountered with a jp2c file with the XL field properly set. EXPECTED RESULT: The file should parse and be read without errors. In particular, the jp2c box should be 8 bytes longer than in the original. """ # Don't have such a file on hand, so we create one. Copy our example # file, but making the codestream have a 64-bit XL field. with open(self.temp_jp2_filename, mode='wb') as tfile: with open(self.jp2file, 'rb') as ifile: # Everything up until the jp2c box. write_buffer = ifile.read(3223) tfile.write(write_buffer) # The L field must be 1 in order to signal the presence of the # XL field. The actual length of the jp2c box increased by 8 # (8 bytes for the XL field). length = 1 typ = b'jp2c' xlen = 1133427 + 8 write_buffer = struct.pack('>I4sQ', int(length), typ, xlen) tfile.write(write_buffer) # Get the rest of the input file (minus the 8 bytes for L and # T. ifile.seek(8, 1) write_buffer = ifile.read() tfile.write(write_buffer) tfile.flush() jp2k = Jp2k(tfile.name) self.assertEqual(jp2k.box[4].box_id, 'jp2c') self.assertEqual(jp2k.box[4].offset, 3223) self.assertEqual(jp2k.box[4].length, 1133427 + 8) def test_length_field_is_zero(self): """ SCENARIO: A JP2 file has in its last box and L field with value 0. EXPECTED RESULT: The file is parsed without error. In particular, the length of that last box is correctly computed. """ # Verify that boxes with the L field as zero are correctly read. # This should only happen in the last box of a JPEG 2000 file. # Our example image has its last box at byte 588458. baseline_jp2 = Jp2k(self.jp2file) with open(self.temp_jp2_filename, mode='wb') as tfile: with open(self.jp2file, 'rb') as ifile: # Everything up until the jp2c box. write_buffer = ifile.read(588458) tfile.write(write_buffer) length = 0 typ = b'uuid' write_buffer = struct.pack('>I4s', int(length), typ) tfile.write(write_buffer) # Get the rest of the input file (minus the 8 bytes for L and # T. ifile.seek(8, 1) write_buffer = ifile.read() tfile.write(write_buffer) tfile.flush() new_jp2 = Jp2k(tfile.name) # The top level boxes in each file should match. for j in range(len(baseline_jp2.box)): self.assertEqual(new_jp2.box[j].box_id, baseline_jp2.box[j].box_id) self.assertEqual(new_jp2.box[j].offset, baseline_jp2.box[j].offset) self.assertEqual(new_jp2.box[j].length, baseline_jp2.box[j].length) @unittest.skipIf(OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG) def test_basic_jp2(self): """ Just a very basic test that reading a JP2 file does not error out. """ j2k = Jp2k(self.jp2file) j2k[::2, ::2] @unittest.skipIf(OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG) def test_basic_j2k(self): """ Just a very basic test that reading a J2K file does not error out. """ j2k = Jp2k(self.j2kfile) j2k[:] def test_empty_box_with_j2k(self): """Verify that the list of boxes in a J2C/J2K file is present, but empty. """ j = Jp2k(self.j2kfile) self.assertEqual(j.box, []) def test_uinf_ulst_url_boxes(self): """ SCENARIO: A JP2 file with UINF, ULST, and URL boxes is encountered. EXPECTED RESULT: The file is parsed without error. """ # Must create the file. with open(self.temp_jp2_filename, mode='wb') as tfile: with open(self.jp2file, 'rb') as ifile: # Everything up until the jp2c box. write_buffer = ifile.read(77) tfile.write(write_buffer) # Write the UINF superbox # Length = 50, id is uinf. uinf_len = 50 write_buffer = struct.pack('>I4s', int(uinf_len), b'uinf') tfile.write(write_buffer) # Write the ULST box. # Length is 26, 1 UUID, hard code that UUID as zeros. ulst_len = 26 write_buffer = struct.pack('>I4sHIIII', ulst_len, b'ulst', int(1), int(0), int(0), int(0), int(0)) tfile.write(write_buffer) # Write the URL box. # Length is 16, version is one byte, flag is 3 bytes, url # is the rest. url_box_len = 16 write_buffer = struct.pack('>I4sBBBB', url_box_len, b'url ', int(0), int(0), int(0), int(0)) tfile.write(write_buffer) write_buffer = struct.pack('>ssss', b'a', b'b', b'c', b'd') tfile.write(write_buffer) # Get the rest of the input file. write_buffer = ifile.read() tfile.write(write_buffer) tfile.flush() jp2k = Jp2k(tfile.name) self.assertEqual(jp2k.box[3].box_id, 'uinf') self.assertEqual(jp2k.box[3].offset, 77) self.assertEqual(jp2k.box[3].length, uinf_len) self.assertEqual(jp2k.box[3].box[0].box_id, 'ulst') self.assertEqual(jp2k.box[3].box[0].offset, 85) self.assertEqual(jp2k.box[3].box[0].length, ulst_len) ulst = [] ulst.append(uuid.UUID('00000000-0000-0000-0000-000000000000')) self.assertEqual(jp2k.box[3].box[0].ulst, ulst) self.assertEqual(jp2k.box[3].box[1].box_id, 'url ') self.assertEqual(jp2k.box[3].box[1].offset, 111) self.assertEqual(jp2k.box[3].box[1].length, url_box_len) self.assertEqual(jp2k.box[3].box[1].version, 0) self.assertEqual(jp2k.box[3].box[1].flag, (0, 0, 0)) self.assertEqual(jp2k.box[3].box[1].url, 'abcd') def test_xml_with_trailing_nulls(self): """ SCENARIO: An xml box is encountered with null chars trailing the valid XML. This causes problems for ElementTree. EXPECTED RESULT: The xml box is parsed without issue and the original XML is recovered. """ with open(self.temp_jp2_filename, mode='wb') as tfile: with open(self.jp2file, 'rb') as ifile: # Everything up until the jp2c box. write_buffer = ifile.read(77) tfile.write(write_buffer) # Write the xml box # Length = 36, id is 'xml '. write_buffer = struct.pack('>I4s', int(36), b'xml ') tfile.write(write_buffer) write_buffer = 'this is a test' + chr(0) write_buffer = write_buffer.encode() tfile.write(write_buffer) # Get the rest of the input file. write_buffer = ifile.read() tfile.write(write_buffer) tfile.flush() jp2k = Jp2k(tfile.name) self.assertEqual(jp2k.box[3].box_id, 'xml ') self.assertEqual(jp2k.box[3].offset, 77) self.assertEqual(jp2k.box[3].length, 36) self.assertEqual(ET.tostring(jp2k.box[3].xml.getroot()), b'this is a test') def test_xmp_attribute(self): """Verify the XMP packet in the shipping example file can be read.""" j = Jp2k(self.jp2file) xmp = j.box[3].data ns0 = '{http://www.w3.org/1999/02/22-rdf-syntax-ns#}' ns1 = '{http://ns.adobe.com/xap/1.0/}' name = '{0}RDF/{0}Description/{1}CreatorTool'.format(ns0, ns1) elt = xmp.find(name) self.assertEqual(elt.text, 'Google') @unittest.skipIf(OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG) def test_jpx_mult_codestreams_jp2_brand(self): """Read JPX codestream when jp2-compatible.""" # The file in question has multiple codestreams. jpx = Jp2k(self.jpxfile) data = jpx[:] self.assertEqual(data.shape, (1024, 1024, 3)) def test_read_without_openjpeg(self): """ Don't have openjpeg or openjp2 library? Must error out. """ with patch('glymur.version.openjpeg_version_tuple', new=(0, 0, 0)): with patch('glymur.version.openjpeg_version', new='0.0.0'): with self.assertRaises(RuntimeError): with warnings.catch_warnings(): # Suppress a deprecation warning for raw read method. warnings.simplefilter("ignore") glymur.Jp2k(self.jp2file).read() with self.assertRaises(RuntimeError): glymur.Jp2k(self.jp2file)[:] def test_read_bands_without_openjp2(self): """ Don't have openjp2 library? Must error out. """ exp_error = RuntimeError with patch('glymur.version.openjpeg_version_tuple', new=(1, 5, 0)): with patch('glymur.version.openjpeg_version', new='1.5.0'): with self.assertRaises(exp_error): glymur.Jp2k(self.jp2file).read_bands() def test_zero_length_reserved_segment(self): """ SCENARIO: There is a zero-length reserved marker segment just before the EOC marker segment. It is unclear to me if this is valid or not. It looks valid. EXPECTED RESULT: The file is parsed without error and the zero-length segment is detected in the codestream. No warning is issued. """ with open(self.temp_jp2_filename, mode='wb') as ofile: with open(self.jp2file, 'rb') as ifile: # Copy up until codestream box. ofile.write(ifile.read(3223)) # Write the new codestream length (+4) and the box ID. buffer = struct.pack('>I4s', 1132296 + 4, b'jp2c') ofile.write(buffer) # Copy up until the EOC marker. ifile.seek(3231) ofile.write(ifile.read(1132286)) # Write the zero-length reserved segment. buffer = struct.pack('>BBH', 0xff, 0x00, 0) ofile.write(buffer) # Write the EOC marker and be done with it. ofile.write(ifile.read()) ofile.flush() cstr = Jp2k(ofile.name).get_codestream(header_only=False) self.assertEqual(cstr.segment[11].marker_id, '0xff00') self.assertEqual(cstr.segment[11].length, 0) def test_psot_is_zero(self): """ SCENARIO: An SOT marker segment is encountered with a Psot value of 0. GH #98. EXPECTED RESULT: The file should parse without error. The SOT marker should be detected. """ with open(self.temp_j2k_filename, mode='wb') as ofile: with open(self.j2kfile, 'rb') as ifile: # Write up until the SOD segment. ofile.write(ifile.read(164)) # Write a SOT box with Psot = 0 buffer = struct.pack('>HHHIBB', 0xff90, 10, 0, 0, 0, 1) ofile.write(buffer) # Write the rest of it. ofile.write(ifile.read()) ofile.flush() j = Jp2k(ofile.name) codestream = j.get_codestream(header_only=False) # The codestream is valid, so we should be able to get the entire # codestream, so the last one is EOC. self.assertEqual(codestream.segment[-3].marker_id, 'SOT') self.assertEqual(codestream.segment[-2].marker_id, 'SOD') self.assertEqual(codestream.segment[-1].marker_id, 'EOC') def test_basic_icc_profile(self): """ basic ICC profile Original file tested was input/conformance/file5.jp2 """ fp = BytesIO() # Write the colr box header. buffer = struct.pack('>I4s', 557, b'colr') buffer += struct.pack('>BBB', RESTRICTED_ICC_PROFILE, 2, 1) buffer += struct.pack('>IIBB', 546, 0, 2, 32) buffer += b'\x00' * 2 + b'scnr' + b'RGB ' + b'XYZ ' # Need a date in bytes 24:36 buffer += struct.pack('>HHHHHH', 2001, 8, 30, 13, 32, 37) buffer += 'acsp'.encode('utf-8') buffer += b'\x00\x00\x00\x00' buffer += b'\x00\x00\x00\x01' # platform buffer += 'KODA'.encode('utf-8') # 48 - 52 buffer += 'ROMM'.encode('utf-8') # Device Model buffer += b'\x00' * 12 buffer += struct.pack('>III', 63190, 65536, 54061) # 68 - 80 buffer += 'JPEG'.encode('utf-8') # 80 - 84 buffer += b'\x00' * 44 fp.write(buffer) fp.seek(8) box = glymur.jp2box.ColourSpecificationBox.parse(fp, 0, 557) profile = box.icc_profile_header self.assertEqual(profile['Size'], 546) self.assertEqual(profile['Preferred CMM Type'], 0) self.assertEqual(profile['Version'], '2.2.0') self.assertEqual(profile['Device Class'], 'input device profile') self.assertEqual(profile['Color Space'], 'RGB') self.assertEqual(profile['Datetime'], datetime.datetime(2001, 8, 30, 13, 32, 37)) self.assertEqual(profile['File Signature'], 'acsp') self.assertEqual(profile['Platform'], 'unrecognized') self.assertEqual(profile['Flags'], 'embedded, can be used independently') self.assertEqual(profile['Device Manufacturer'], 'KODA') self.assertEqual(profile['Device Model'], 'ROMM') self.assertEqual(profile['Device Attributes'], ('reflective, glossy, positive media polarity, ' 'color media')) self.assertEqual(profile['Rendering Intent'], 'perceptual') np.testing.assert_almost_equal(profile['Illuminant'], (0.964203, 1.000000, 0.824905), decimal=6) self.assertEqual(profile['Creator'], 'JPEG') @unittest.skipIf(OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG) def test_different_layers(self): """ SCENARIO: Set the layer property to specify the 2nd layer. EXPECTED RESULT: The 2nd image read in is not the same as the first. """ with ir.path(data, 'p0_03.j2k') as path: j = Jp2k(path) d0 = j[:] j.layer = 1 d1 = j[:] np.alltrue(d0 != d1) def test_invalid_layers(self): """ SCENARIO: an improper layer value is set EXPECTED RESULT: RuntimeError when an invalid layer number is supplied """ # There are 8 layers, so only values [0-7] are valid. with ir.path(data, 'p0_03.j2k') as path: j = Jp2k(path) with self.assertRaises(ValueError): j.layer = -1 for layer in range(8): # 0-7 are all valid. j.layer with self.assertRaises(ValueError): j.layer = 8 def test_default_verbosity(self): """ SCENARIO: Check the default verbosity property. EXPECTED RESULT: The default verbosity setting is False. """ with ir.path(data, 'p0_03.j2k') as path: j = Jp2k(path) self.assertFalse(j.verbose) def test_default_layer(self): """ SCENARIO: Check the default layer property. EXPECTED RESULT: The default layer property value is 0. """ with ir.path(data, 'p0_03.j2k') as path: j = Jp2k(path) self.assertEqual(j.layer, 0) def test_thread_support(self): """ SCENARIO: Set a non-default thread support value. EXPECTED RESULTS: Using more threads speeds up a full read. """ jp2 = Jp2k(self.jp2file) t0 = time.time() jp2[:] t1 = time.time() delta0 = t1 - t0 glymur.set_option('lib.num_threads', 4) t0 = time.time() jp2[:] t1 = time.time() delta1 = t1 - t0 self.assertTrue(delta1 < delta0) def test_thread_support_on_openjpeg_lt_220(self): """ SCENARIO: Set number of threads on openjpeg < 2.2.0 EXPECTED RESULTS: RuntimeError """ with patch('glymur.jp2k.version.openjpeg_version', new='2.1.0'): with self.assertRaises(RuntimeError): glymur.set_option('lib.num_threads', 4) @patch('glymur.lib.openjp2.has_thread_support') def test_thread_support_not_compiled_into_library(self, mock_ts): """ SCENARIO: Set number of threads on openjpeg >= 2.2.0, but openjpeg has not been compiled with thread support. EXPECTED RESULTS: RuntimeError """ mock_ts.return_value = False with patch('glymur.jp2k.version.openjpeg_version', new='2.2.0'): with self.assertRaises(RuntimeError): glymur.set_option('lib.num_threads', 4) class TestComponent(unittest.TestCase): """ Test how a component's precision translates into a datatype. """ @classmethod def setUpClass(cls): cls.jp2file = glymur.data.nemo() def test_nbits_lt_9(self): """ SCENARIO: A layer has less than 9 bits per sample EXPECTED RESULT: np.int8 """ j = Jp2k(self.jp2file) # Fake a data structure that resembles the openjpeg component. Component = collections.namedtuple('Component', ['prec', 'sgnd']) c = Component(prec=7, sgnd=True) dtype = j._component2dtype(c) self.assertEqual(dtype, np.int8) def test_nbits_lt_16_gt_8(self): """ SCENARIO: A layer has between 9 and 16 bits per sample. EXPECTED RESULT: np.int16 """ j = Jp2k(self.jp2file) # Fake a data structure that resembles the openjpeg component. Component = collections.namedtuple('Component', ['prec', 'sgnd']) c = Component(prec=15, sgnd=True) dtype = j._component2dtype(c) self.assertEqual(dtype, np.int16) def test_nbits_gt_16(self): """ SCENARIO: One of the layers has more than 16 bits per sample. EXPECTED RESULT: RuntimeError """ j = Jp2k(self.jp2file) # Fake a data structure that resembles the openjpeg component. Component = collections.namedtuple('Component', ['prec', 'sgnd']) c = Component(prec=17, sgnd=True) with self.assertRaises(ValueError): j._component2dtype(c) @unittest.skipIf(OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG) class TestJp2k_write(fixtures.MetadataBase): """Write tests, can be run by versions 2.1""" @classmethod def setUpClass(cls): cls.jp2file = glymur.data.nemo() cls.j2kfile = glymur.data.goodstuff() cls.j2k_data = glymur.Jp2k(cls.j2kfile)[:] cls.jp2_data = glymur.Jp2k(cls.jp2file)[:] # Make single channel jp2 and j2k files. test_dir = tempfile.mkdtemp() test_dir_path = pathlib.Path(test_dir) cls.single_channel_j2k = test_dir_path / 'single_channel.j2k' glymur.Jp2k(cls.single_channel_j2k, data=cls.j2k_data[:, :, 0]) cls.single_channel_jp2 = test_dir_path / 'single_channel.jp2' glymur.Jp2k(cls.single_channel_jp2, data=cls.j2k_data[:, :, 0]) @classmethod def tearDownClass(cls): os.unlink(cls.single_channel_j2k) os.unlink(cls.single_channel_jp2) def test_no_jp2c_box_in_outermost_jp2_list(self): """ SCENARIO: A JP2 file is encountered without a JP2C box in the outer- most list of boxes. EXPECTED RESULT: RuntimeError """ j = glymur.Jp2k(self.jp2file) # Remove the last box, which is a codestream. boxes = j.box[:-1] with open(self.temp_jp2_filename, mode="wb") as tfile: with self.assertRaises(RuntimeError): j.wrap(tfile.name, boxes=boxes) def test_null_data(self): """ SCENARIO: An image with a dimension with length 0 is provided. EXPECTED RESULT: RuntimeError """ with open(self.temp_jp2_filename, mode='wb') as tfile: with self.assertRaises(InvalidJp2kError): Jp2k(tfile.name, data=np.zeros((0, 256), dtype=np.uint8)) @unittest.skipIf(not _HAVE_SCIKIT_IMAGE, "No scikit-image found") def test_psnr_zero_value_not_last(self): """ SCENARIO: The PSNR keyword argument has a zero value, but it is not the last value. EXPECTED RESULT: RuntimeError """ kwargs = { 'data': skimage.data.camera(), 'psnr': [0, 35, 40, 30], } with self.assertRaises(RuntimeError): Jp2k(self.temp_jp2_filename, **kwargs) @unittest.skipIf(not _HAVE_SCIKIT_IMAGE, "No scikit-image found") def test_psnr_non_zero_non_monotonically_decreasing(self): """ SCENARIO: The PSNR keyword argument is non-monotonically increasing and does not contain zero. EXPECTED RESULT: RuntimeError """ kwargs = { 'data': skimage.data.camera(), 'psnr': [30, 35, 40, 30], } with self.assertRaises(RuntimeError): Jp2k(self.temp_jp2_filename, **kwargs) @unittest.skipIf(not _HAVE_SCIKIT_IMAGE, "No scikit-image found") def test_psnr(self): """ SCENARIO: Four peak signal-to-noise ratio values are supplied, the last is zero. EXPECTED RESULT: Four quality layers, the first should be lossless. """ kwargs = { 'data': skimage.data.camera(), 'psnr': [30, 35, 40, 0], } with open(self.temp_jp2_filename, mode='wb') as tfile: j = Jp2k(tfile.name, **kwargs) d = {} for layer in range(4): j.layer = layer d[layer] = j[:] with warnings.catch_warnings(): # MSE is zero for that first image, resulting in a divide-by-zero # warning warnings.simplefilter('ignore') psnr = [ skimage.measure.compare_psnr(skimage.data.camera(), d[j]) for j in range(4) ] # That first image should be lossless. self.assertTrue(np.isinf(psnr[0])) # None of the subsequent images should have inf PSNR. self.assertTrue(not np.any(np.isinf(psnr[1:]))) # PSNR should increase for the remaining images. self.assertTrue(np.all(np.diff(psnr[1:])) > 0) def test_NR_ENC_Bretagne1_ppm_2_encode(self): """ SCENARIO: Three peak signal-to-noise ratio values, two resolutions are supplied. EXPECTED RESULT: Three quality layers, two resolutions. """ kwargs = { 'data': self.jp2_data, 'psnr': [30, 35, 40], 'numres': 2, } with open(self.temp_j2k_filename, mode='wb') as tfile: j = Jp2k(tfile.name, **kwargs) codestream = j.get_codestream() # COD: Coding style default self.assertFalse(codestream.segment[2].scod & 2) # no sop self.assertFalse(codestream.segment[2].scod & 4) # no eph self.assertEqual(codestream.segment[2].prog_order, glymur.core.LRCP) self.assertEqual(codestream.segment[2].layers, 3) # layers = 3 self.assertEqual(codestream.segment[2].mct, 1) # mct self.assertEqual(codestream.segment[2].num_res + 1, 2) # levels self.assertEqual(tuple(codestream.segment[2].code_block_size), (64, 64)) # cblksz self.verify_codeblock_style(codestream.segment[2].cstyle, [False, False, False, False, False, False]) self.assertEqual(codestream.segment[2].xform, glymur.core.WAVELET_XFORM_5X3_REVERSIBLE) self.assertEqual(codestream.segment[2].precinct_size, ((32768, 32768))) def test_NR_ENC_Bretagne1_ppm_1_encode(self): """ SCENARIO: Create a JP2 image with three compression ratios. EXPECTED RESULT: There are three layers. """ data = self.jp2_data with open(self.temp_j2k_filename, mode='wb') as tfile: # Should be written with 3 layers. j = Jp2k(tfile.name, data=data, cratios=[200, 100, 50]) c = j.get_codestream() # COD: Coding style default self.assertFalse(c.segment[2].scod & 2) # no sop self.assertFalse(c.segment[2].scod & 4) # no eph self.assertEqual(c.segment[2].prog_order, glymur.core.LRCP) self.assertEqual(c.segment[2].layers, 3) # layers = 3 self.assertEqual(c.segment[2].mct, 1) # mct self.assertEqual(c.segment[2].num_res + 1, 6) # levels self.assertEqual(tuple(c.segment[2].code_block_size), (64, 64)) # cblksz self.verify_codeblock_style(c.segment[2].cstyle, [False, False, False, False, False, False]) self.assertEqual(c.segment[2].xform, glymur.core.WAVELET_XFORM_5X3_REVERSIBLE) self.assertEqual(c.segment[2].precinct_size, ((32768, 32768))) def test_NR_ENC_Bretagne1_ppm_3_encode(self): """ SCENARIO: Three peak signal to noise rations are provided, along with specific code block sizes and precinct sizes. EXPECTED RESULT: Three quality layers and the specified code block size are present. The precinct sizes validate. """ with open(self.temp_j2k_filename, mode='wb') as tfile: j = Jp2k(tfile.name, data=self.jp2_data, psnr=[30, 35, 40], cbsize=(16, 16), psizes=[(64, 64)]) codestream = j.get_codestream() # COD: Coding style default self.assertFalse(codestream.segment[2].scod & 2) # no sop self.assertFalse(codestream.segment[2].scod & 4) # no eph self.assertEqual(codestream.segment[2].prog_order, glymur.core.LRCP) self.assertEqual(codestream.segment[2].layers, 3) # layers = 3 self.assertEqual(codestream.segment[2].mct, 1) # mct self.assertEqual(codestream.segment[2].num_res, 5) # levels self.assertEqual(tuple(codestream.segment[2].code_block_size), (16, 16)) # cblksz self.verify_codeblock_style(codestream.segment[2].cstyle, [False, False, False, False, False, False]) self.assertEqual(codestream.segment[2].xform, glymur.core.WAVELET_XFORM_5X3_REVERSIBLE) self.assertEqual(codestream.segment[2].precinct_size, ((2, 2), (4, 4), (8, 8), (16, 16), (32, 32), (64, 64))) def test_NR_ENC_Bretagne2_ppm_4_encode(self): """ Original file tested was input/nonregression/Bretagne2.ppm """ with open(self.temp_j2k_filename, mode='wb') as tfile: j = Jp2k(tfile.name, data=self.jp2_data, psizes=[(128, 128)] * 3, cratios=[100, 20, 2], tilesize=(480, 640), cbsize=(32, 32)) # Should be three layers. codestream = j.get_codestream() # RSIZ self.assertEqual(codestream.segment[1].xtsiz, 640) self.assertEqual(codestream.segment[1].ytsiz, 480) # COD: Coding style default self.assertFalse(codestream.segment[2].scod & 2) # no sop self.assertFalse(codestream.segment[2].scod & 4) # no eph self.assertEqual(codestream.segment[2].prog_order, glymur.core.LRCP) self.assertEqual(codestream.segment[2].layers, 3) # layers = 3 self.assertEqual(codestream.segment[2].mct, 1) # mct self.assertEqual(codestream.segment[2].num_res, 5) # levels self.assertEqual(tuple(codestream.segment[2].code_block_size), (32, 32)) # cblksz self.verify_codeblock_style(codestream.segment[2].cstyle, [False, False, False, False, False, False]) self.assertEqual(codestream.segment[2].xform, glymur.core.WAVELET_XFORM_5X3_REVERSIBLE) self.assertEqual(codestream.segment[2].precinct_size, ((16, 16), (32, 32), (64, 64), (128, 128), (128, 128), (128, 128))) def test_NR_ENC_Bretagne2_ppm_5_encode(self): """ Original file tested was input/nonregression/Bretagne2.ppm """ with open(self.temp_j2k_filename, mode='wb') as tfile: j = Jp2k(tfile.name, data=self.jp2_data, tilesize=(127, 127), prog="PCRL") codestream = j.get_codestream() # RSIZ self.assertEqual(codestream.segment[1].xtsiz, 127) self.assertEqual(codestream.segment[1].ytsiz, 127) # COD: Coding style default self.assertFalse(codestream.segment[2].scod & 2) # no sop self.assertFalse(codestream.segment[2].scod & 4) # no eph self.assertEqual(codestream.segment[2].prog_order, glymur.core.PCRL) self.assertEqual(codestream.segment[2].layers, 1) # layers = 1 self.assertEqual(codestream.segment[2].mct, 1) # mct self.assertEqual(codestream.segment[2].num_res, 5) # levels self.assertEqual(tuple(codestream.segment[2].code_block_size), (64, 64)) # cblksz self.verify_codeblock_style(codestream.segment[2].cstyle, [False, False, False, False, False, False]) self.assertEqual(codestream.segment[2].xform, glymur.core.WAVELET_XFORM_5X3_REVERSIBLE) self.assertEqual(codestream.segment[2].precinct_size, ((32768, 32768))) def test_NR_ENC_Bretagne2_ppm_6_encode(self): """ Original file tested was input/nonregression/Bretagne2.ppm """ with open(self.temp_j2k_filename, mode='wb') as tfile: j = Jp2k(tfile.name, data=self.jp2_data, subsam=(2, 2), sop=True) codestream = j.get_codestream(header_only=False) # RSIZ self.assertEqual(codestream.segment[1].xrsiz, (2, 2, 2)) self.assertEqual(codestream.segment[1].yrsiz, (2, 2, 2)) # COD: Coding style default self.assertTrue(codestream.segment[2].scod & 2) # sop self.assertFalse(codestream.segment[2].scod & 4) # no eph self.assertEqual(codestream.segment[2].prog_order, glymur.core.LRCP) self.assertEqual(codestream.segment[2].layers, 1) # layers = 1 self.assertEqual(codestream.segment[2].mct, 1) # mct self.assertEqual(codestream.segment[2].num_res, 5) # levels self.assertEqual(tuple(codestream.segment[2].code_block_size), (64, 64)) # cblksz self.verify_codeblock_style(codestream.segment[2].cstyle, [False, False, False, False, False, False]) self.assertEqual(codestream.segment[2].xform, glymur.core.WAVELET_XFORM_5X3_REVERSIBLE) self.assertEqual(codestream.segment[2].precinct_size, ((32768, 32768))) # 18 SOP segments. nsops = [x.nsop for x in codestream.segment if x.marker_id == 'SOP'] self.assertEqual(nsops, list(range(18))) def test_NR_ENC_Bretagne2_ppm_7_encode(self): """ Original file tested was input/nonregression/Bretagne2.ppm """ with open(self.temp_j2k_filename, mode='wb') as tfile: j = Jp2k(tfile.name, data=self.jp2_data, modesw=38, eph=True) codestream = j.get_codestream(header_only=False) # COD: Coding style default self.assertFalse(codestream.segment[2].scod & 2) # no sop self.assertTrue(codestream.segment[2].scod & 4) # eph self.assertEqual(codestream.segment[2].prog_order, glymur.core.LRCP) self.assertEqual(codestream.segment[2].layers, 1) # layers = 1 self.assertEqual(codestream.segment[2].mct, 1) # mct self.assertEqual(codestream.segment[2].num_res, 5) # levels self.assertEqual(tuple(codestream.segment[2].code_block_size), (64, 64)) # cblksz self.verify_codeblock_style(codestream.segment[2].cstyle, [False, True, True, False, False, True]) self.assertEqual(codestream.segment[2].xform, glymur.core.WAVELET_XFORM_5X3_REVERSIBLE) self.assertEqual(codestream.segment[2].precinct_size, ((32768, 32768))) # 18 EPH segments. ephs = [x for x in codestream.segment if x.marker_id == 'EPH'] self.assertEqual(len(ephs), 18) def test_NR_ENC_Bretagne2_ppm_8_encode(self): """ Original file tested was input/nonregression/Bretagne2.ppm """ with open(self.temp_j2k_filename, mode='wb') as tfile: j = Jp2k(tfile.name, data=self.jp2_data, grid_offset=[300, 150], cratios=[800]) codestream = j.get_codestream(header_only=False) # RSIZ self.assertEqual(codestream.segment[1].xosiz, 150) self.assertEqual(codestream.segment[1].yosiz, 300) # COD: Coding style default self.assertFalse(codestream.segment[2].scod & 2) # no sop self.assertFalse(codestream.segment[2].scod & 4) # no eph self.assertEqual(codestream.segment[2].prog_order, glymur.core.LRCP) self.assertEqual(codestream.segment[2].layers, 1) # layers = 1 self.assertEqual(codestream.segment[2].mct, 1) # mct self.assertEqual(codestream.segment[2].num_res, 5) # levels self.assertEqual(tuple(codestream.segment[2].code_block_size), (64, 64)) # cblksz self.verify_codeblock_style(codestream.segment[2].cstyle, [False, False, False, False, False, False]) self.assertEqual(codestream.segment[2].xform, glymur.core.WAVELET_XFORM_5X3_REVERSIBLE) self.assertEqual(codestream.segment[2].precinct_size, ((32768, 32768))) def test_NR_ENC_Cevennes1_bmp_9_encode(self): """ Original file tested was input/nonregression/Cevennes1.bmp """ with open(self.temp_j2k_filename, mode='wb') as tfile: j = Jp2k(tfile.name, data=self.jp2_data, cratios=[800]) codestream = j.get_codestream(header_only=False) # COD: Coding style default self.assertFalse(codestream.segment[2].scod & 2) # no sop self.assertFalse(codestream.segment[2].scod & 4) # no eph self.assertEqual(codestream.segment[2].prog_order, glymur.core.LRCP) self.assertEqual(codestream.segment[2].layers, 1) # layers = 1 self.assertEqual(codestream.segment[2].mct, 1) # mct self.assertEqual(codestream.segment[2].num_res, 5) # levels self.assertEqual(tuple(codestream.segment[2].code_block_size), (64, 64)) # cblksz self.verify_codeblock_style(codestream.segment[2].cstyle, [False, False, False, False, False, False]) self.assertEqual(codestream.segment[2].xform, glymur.core.WAVELET_XFORM_5X3_REVERSIBLE) self.assertEqual(codestream.segment[2].precinct_size, ((32768, 32768))) def test_NR_ENC_Cevennes2_ppm_10_encode(self): """ Original file tested was input/nonregression/Cevennes2.ppm """ with open(self.temp_j2k_filename, mode='wb') as tfile: j = Jp2k(tfile.name, data=self.jp2_data, cratios=[50]) codestream = j.get_codestream(header_only=False) # COD: Coding style default self.assertFalse(codestream.segment[2].scod & 2) # no sop self.assertFalse(codestream.segment[2].scod & 4) # no eph self.assertEqual(codestream.segment[2].prog_order, glymur.core.LRCP) self.assertEqual(codestream.segment[2].layers, 1) # layers = 1 self.assertEqual(codestream.segment[2].mct, 1) # mct self.assertEqual(codestream.segment[2].num_res, 5) # levels self.assertEqual(tuple(codestream.segment[2].code_block_size), (64, 64)) # cblksz self.verify_codeblock_style(codestream.segment[2].cstyle, [False, False, False, False, False, False]) self.assertEqual(codestream.segment[2].xform, glymur.core.WAVELET_XFORM_5X3_REVERSIBLE) self.assertEqual(codestream.segment[2].precinct_size, ((32768, 32768))) def test_NR_ENC_Rome_bmp_11_encode(self): """ Original file tested was input/nonregression/Rome.bmp """ with open(self.temp_jp2_filename, mode='wb') as tfile: jp2 = Jp2k(tfile.name, data=self.jp2_data, psnr=[30, 35, 50], prog='LRCP', numres=3) ids = [box.box_id for box in jp2.box] self.assertEqual(ids, ['jP ', 'ftyp', 'jp2h', 'jp2c']) ids = [box.box_id for box in jp2.box[2].box] self.assertEqual(ids, ['ihdr', 'colr']) # Signature box. Check for corruption. self.assertEqual(jp2.box[0].signature, (13, 10, 135, 10)) # File type box. self.assertEqual(jp2.box[1].brand, 'jp2 ') self.assertEqual(jp2.box[1].minor_version, 0) self.assertEqual(jp2.box[1].compatibility_list[0], 'jp2 ') # Jp2 Header # Image header self.assertEqual(jp2.box[2].box[0].height, 1456) self.assertEqual(jp2.box[2].box[0].width, 2592) self.assertEqual(jp2.box[2].box[0].num_components, 3) self.assertEqual(jp2.box[2].box[0].bits_per_component, 8) self.assertEqual(jp2.box[2].box[0].signed, False) self.assertEqual(jp2.box[2].box[0].compression, 7) # wavelet self.assertEqual(jp2.box[2].box[0].colorspace_unknown, False) self.assertEqual(jp2.box[2].box[0].ip_provided, False) # Jp2 Header # Colour specification self.assertEqual(jp2.box[2].box[1].method, 1) self.assertEqual(jp2.box[2].box[1].precedence, 0) self.assertEqual(jp2.box[2].box[1].approximation, 0) self.assertIsNone(jp2.box[2].box[1].icc_profile) self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.SRGB) codestream = jp2.box[3].codestream kwargs = {'rsiz': 0, 'xysiz': (2592, 1456), 'xyosiz': (0, 0), 'xytsiz': (2592, 1456), 'xytosiz': (0, 0), 'bitdepth': (8, 8, 8), 'signed': (False, False, False), 'xyrsiz': [(1, 1, 1), (1, 1, 1)]} self.verifySizSegment(codestream.segment[1], glymur.codestream.SIZsegment(**kwargs)) # COD: Coding style default self.assertFalse(codestream.segment[2].scod & 2) # no sop self.assertFalse(codestream.segment[2].scod & 4) # no eph self.assertEqual(codestream.segment[2].prog_order, glymur.core.LRCP) self.assertEqual(codestream.segment[2].layers, 3) # layers = 3 self.assertEqual(codestream.segment[2].mct, 1) # mct self.assertEqual(codestream.segment[2].num_res, 2) # levels self.assertEqual(tuple(codestream.segment[2].code_block_size), (64, 64)) # cblksz self.verify_codeblock_style(codestream.segment[2].cstyle, [False, False, False, False, False, False]) self.assertEqual(codestream.segment[2].xform, glymur.core.WAVELET_XFORM_5X3_REVERSIBLE) self.assertEqual(codestream.segment[2].precinct_size, ((32768, 32768))) def test_NR_ENC_random_issue_0005_tif_12_encode(self): """ Original file tested was input/nonregression/random-issue-0005.tif """ data = self.jp2_data[:1024, :1024, 0].astype(np.uint16) with open(self.temp_j2k_filename, mode='wb') as tfile: j = Jp2k(tfile.name, data=data) codestream = j.get_codestream(header_only=False) kwargs = {'rsiz': 0, 'xysiz': (1024, 1024), 'xyosiz': (0, 0), 'xytsiz': (1024, 1024), 'xytosiz': (0, 0), 'bitdepth': (16,), 'signed': (False,), 'xyrsiz': [(1,), (1,)]} self.verifySizSegment(codestream.segment[1], glymur.codestream.SIZsegment(**kwargs)) # COD: Coding style default self.assertFalse(codestream.segment[2].scod & 2) # no sop self.assertFalse(codestream.segment[2].scod & 4) # no eph self.assertEqual(codestream.segment[2].prog_order, glymur.core.LRCP) self.assertEqual(codestream.segment[2].layers, 1) # layers = 1 self.assertEqual(codestream.segment[2].mct, 0) self.assertEqual(codestream.segment[2].num_res, 5) # levels self.assertEqual(tuple(codestream.segment[2].code_block_size), (64, 64)) # cblksz self.verify_codeblock_style(codestream.segment[2].cstyle, [False, False, False, False, False, False]) self.assertEqual(codestream.segment[2].xform, glymur.core.WAVELET_XFORM_5X3_REVERSIBLE) self.assertEqual(codestream.segment[2].precinct_size, ((32768, 32768))) def test_NR_ENC_issue141_rawl_23_encode(self): """ Test irreversible option Original file tested was input/nonregression/issue141.rawl """ with open(self.temp_j2k_filename, mode='wb') as tfile: j = Jp2k(tfile.name, data=self.jp2_data, irreversible=True) codestream = j.get_codestream() self.assertEqual(codestream.segment[2].xform, glymur.core.WAVELET_XFORM_9X7_IRREVERSIBLE) def test_cinema2K_with_others(self): """ Can't specify cinema2k with any other options. Original test file was input/nonregression/X_5_2K_24_235_CBR_STEM24_000.tif """ data = np.zeros((857, 2048, 3), dtype=np.uint8) with open(self.temp_j2k_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): Jp2k(tfile.name, data=data, cinema2k=48, cratios=[200, 100, 50]) def test_cinema4K_with_others(self): """ Can't specify cinema4k with any other options. Original test file was input/nonregression/ElephantDream_4K.tif """ data = np.zeros((4096, 2160, 3), dtype=np.uint8) with open(self.temp_j2k_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): Jp2k(tfile.name, data=data, cinema4k=True, cratios=[200, 100, 50]) def test_cblk_size_precinct_size(self): """ code block sizes should never exceed half that of precinct size. """ with open(self.temp_j2k_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): Jp2k(tfile.name, data=self.j2k_data, cbsize=(64, 64), psizes=[(64, 64)]) def test_cblk_size_not_power_of_two(self): """ code block sizes should be powers of two. """ with open(self.temp_j2k_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): Jp2k(tfile.name, data=self.j2k_data, cbsize=(13, 12)) def test_precinct_size_not_p2(self): """ precinct sizes should be powers of two. """ with open(self.temp_j2k_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): Jp2k(tfile.name, data=self.j2k_data, psizes=[(173, 173)]) def test_code_block_dimensions(self): """ don't allow extreme codeblock sizes """ # opj_compress doesn't allow the dimensions of a codeblock # to be too small or too big, so neither will we. data = self.j2k_data with open(self.temp_j2k_filename, mode='wb') as tfile: # opj_compress doesn't allow code block area to exceed 4096. with self.assertRaises(RuntimeError): Jp2k(tfile.name, data=data, cbsize=(256, 256)) # opj_compress doesn't allow either dimension to be less than 4. with self.assertRaises(RuntimeError): Jp2k(tfile.name, data=data, cbsize=(2048, 2)) with self.assertRaises(RuntimeError): Jp2k(tfile.name, data=data, cbsize=(2, 2048)) def test_psnr_with_cratios(self): """ Using psnr with cratios options is not allowed. """ with open(self.temp_j2k_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): Jp2k(tfile.name, data=self.j2k_data, psnr=[30, 35, 40], cratios=[2, 3, 4]) def test_irreversible(self): """ Verify that the Irreversible option works """ expdata = self.j2k_data with open(self.temp_j2k_filename, mode='wb') as tfile: j = Jp2k(tfile.name, data=expdata, irreversible=True, numres=5) codestream = j.get_codestream() self.assertEqual(codestream.segment[2].xform, glymur.core.WAVELET_XFORM_9X7_IRREVERSIBLE) actdata = j[:] self.assertTrue(fixtures.mse(actdata, expdata) < 0.28) def test_shape_greyscale_jp2(self): """verify shape attribute for greyscale JP2 file """ jp2 = Jp2k(self.single_channel_jp2) self.assertEqual(jp2.shape, (800, 480)) self.assertEqual(jp2.box[2].box[1].colorspace, glymur.core.GREYSCALE) def test_shape_single_channel_j2k(self): """verify shape attribute for single channel J2K file """ j2k = Jp2k(self.single_channel_j2k) self.assertEqual(j2k.shape, (800, 480)) def test_precinct_size_too_small(self): """ SCENARIO: The first precinct size is less than 2x that of the code block size. EXPECTED RESULT: InvalidJp2kError """ data = np.zeros((640, 480), dtype=np.uint8) with open(self.temp_j2k_filename, mode='wb') as tfile: with self.assertRaises(InvalidJp2kError): Jp2k(tfile.name, data=data, cbsize=(16, 16), psizes=[(16, 16)]) def test_precinct_size_not_power_of_two(self): """ SCENARIO: A precinct size is specified that is not a power of 2. EXPECTED RESULT: InvalidJp2kError """ data = np.zeros((640, 480), dtype=np.uint8) with open(self.temp_j2k_filename, mode='wb') as tfile: with self.assertRaises(InvalidJp2kError): Jp2k(tfile.name, data=data, cbsize=(16, 16), psizes=[(48, 48)]) def test_unsupported_int32(self): """Should raise a runtime error if trying to write int32""" data = np.zeros((128, 128), dtype=np.int32) with open(self.temp_j2k_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): Jp2k(tfile.name, data=data) def test_unsupported_uint32(self): """Should raise a runtime error if trying to write uint32""" data = np.zeros((128, 128), dtype=np.uint32) with open(self.temp_j2k_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): Jp2k(tfile.name, data=data) def test_write_with_version_too_early(self): """Should raise a runtime error if trying to write with version 1.3""" data = np.zeros((128, 128), dtype=np.uint8) versions = [ "1.0.0", "1.1.0", "1.2.0", "1.3.0", "1.4.0", "1.5.0", "2.0.0", "2.1.0", "2.2.0" ] for version in versions: with patch('glymur.version.openjpeg_version', new=version): with open(self.temp_j2k_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): Jp2k(tfile.name, data=data) def test_cblkh_different_than_width(self): """Verify that we can set a code block size where height does not equal width. """ data = np.zeros((128, 128), dtype=np.uint8) with open(self.temp_j2k_filename, mode='wb') as tfile: # The code block dimensions are given as rows x columns. j = Jp2k(tfile.name, data=data, cbsize=(16, 32)) codestream = j.get_codestream() # Code block size is reported as XY in the codestream. self.assertEqual(codestream.segment[2].code_block_size, (16, 32)) def test_too_many_dimensions(self): """OpenJP2 only allows 2D or 3D images.""" with open(self.temp_j2k_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): Jp2k(tfile.name, data=np.zeros((128, 128, 2, 2), dtype=np.uint8)) def test_2d_rgb(self): """RGB must have at least 3 components.""" with open(self.temp_jp2_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): Jp2k(tfile.name, data=np.zeros((128, 128, 2), dtype=np.uint8), colorspace='rgb') def test_colorspace_with_j2k(self): """Specifying a colorspace with J2K does not make sense""" with open(self.temp_j2k_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): Jp2k(tfile.name, data=np.zeros((128, 128, 3), dtype=np.uint8), colorspace='rgb') def test_specify_rgb(self): """specify RGB explicitly""" with open(self.temp_jp2_filename, mode='wb') as tfile: j = Jp2k(tfile.name, data=np.zeros((128, 128, 3), dtype=np.uint8), colorspace='rgb') self.assertEqual(j.box[2].box[1].colorspace, glymur.core.SRGB) def test_specify_gray(self): """test gray explicitly specified (that's GRAY, not GREY)""" with open(self.temp_jp2_filename, mode='wb') as tfile: data = np.zeros((128, 128), dtype=np.uint8) j = Jp2k(tfile.name, data=data, colorspace='gray') self.assertEqual(j.box[2].box[1].colorspace, glymur.core.GREYSCALE) def test_specify_grey(self): """test grey explicitly specified""" with open(self.temp_jp2_filename, mode='wb') as tfile: data = np.zeros((128, 128), dtype=np.uint8) j = Jp2k(tfile.name, data=data, colorspace='grey') self.assertEqual(j.box[2].box[1].colorspace, glymur.core.GREYSCALE) def test_grey_with_two_extra_comps(self): """should be able to write gray + two extra components""" with open(self.temp_jp2_filename, mode='wb') as tfile: data = np.zeros((128, 128, 3), dtype=np.uint8) j = Jp2k(tfile.name, data=data, colorspace='gray') self.assertEqual(j.box[2].box[0].height, 128) self.assertEqual(j.box[2].box[0].width, 128) self.assertEqual(j.box[2].box[0].num_components, 3) self.assertEqual(j.box[2].box[1].colorspace, glymur.core.GREYSCALE) def test_specify_ycc(self): """Should reject YCC""" data = np.zeros((128, 128, 3), dtype=np.uint8) with open(self.temp_jp2_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): Jp2k(tfile.name, data=data, colorspace='ycc') def test_write_with_jp2_in_caps(self): """should be able to write with JP2 suffix.""" j2k = Jp2k(self.j2kfile) expdata = j2k[:] filename = str(self.temp_jp2_filename).replace('.jp2', '.JP2') with open(filename, mode='wb') as tfile: ofile = Jp2k(tfile.name, data=expdata) actdata = ofile[:] np.testing.assert_array_equal(actdata, expdata) def test_write_srgb_without_mct(self): """should be able to write RGB without specifying mct""" j2k = Jp2k(self.j2kfile) expdata = j2k[:] with open(self.temp_jp2_filename, mode='wb') as tfile: ofile = Jp2k(tfile.name, data=expdata, mct=False) actdata = ofile[:] np.testing.assert_array_equal(actdata, expdata) codestream = ofile.get_codestream() self.assertEqual(codestream.segment[2].mct, 0) # no mct def test_write_grayscale_with_mct(self): """ MCT usage makes no sense for grayscale images. """ j2k = Jp2k(self.j2kfile) expdata = j2k[:] with open(self.temp_jp2_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): Jp2k(tfile.name, data=expdata[:, :, 0], mct=True) def test_write_cprl(self): """Must be able to write a CPRL progression order file""" # Issue 17 j = Jp2k(self.jp2file) expdata = j[::2, ::2] with open(self.temp_jp2_filename, mode='wb') as tfile: ofile = Jp2k(tfile.name, data=expdata, prog='CPRL') actdata = ofile[:] np.testing.assert_array_equal(actdata, expdata) codestream = ofile.get_codestream() self.assertEqual(codestream.segment[2].prog_order, glymur.core.CPRL) @unittest.skipIf(OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG) class TestJp2k_2_0(fixtures.TestCommon): """Test suite requiring at least version 2.0""" def test_bad_area_parameter(self): """Should error out appropriately if given a bad area parameter.""" j = Jp2k(self.jp2file) error = glymur.lib.openjp2.OpenJPEGLibraryError with self.assertRaises(ValueError): # Start corner must be >= 0 j[-1:1, -1:1] with self.assertRaises(ValueError): # End corner must be > 0 j[10:0, 10:0] with self.assertRaises(error): # End corner must be >= start corner j[10:8, 10:8] def test_unrecognized_jp2_clrspace(self): """We only allow RGB and GRAYSCALE. Should error out with others""" data = np.zeros((128, 128, 3), dtype=np.uint8) with open(self.temp_jp2_filename, mode='wb') as tfile: with self.assertRaises(RuntimeError): Jp2k(tfile.name, data=data, colorspace='cmyk') def test_asoc_label_box(self): """Test asoc and label box""" # Construct a fake file with an asoc and a label box, as # OpenJPEG doesn't have such a file. data = Jp2k(self.jp2file)[::2, ::2] file1 = self.test_dir_path / 'file1.jp2' Jp2k(file1, data=data) with open(file1, mode='rb') as tfile: file2 = self.test_dir_path / 'file2.jp2' with open(file2, mode='wb') as tfile2: # Offset of the codestream is where we start. read_buffer = tfile.read(77) tfile2.write(read_buffer) # read the rest of the file, it's the codestream. codestream = tfile.read() # Write the asoc superbox. # Length = 36, id is 'asoc'. write_buffer = struct.pack('>I4s', int(56), b'asoc') tfile2.write(write_buffer) # Write the contained label box write_buffer = struct.pack('>I4s', int(13), b'lbl ') tfile2.write(write_buffer) tfile2.write('label'.encode()) # Write the xml box # Length = 36, id is 'xml '. write_buffer = struct.pack('>I4s', int(35), b'xml ') tfile2.write(write_buffer) write_buffer = 'this is a test' write_buffer = write_buffer.encode() tfile2.write(write_buffer) # Now append the codestream. tfile2.write(codestream) tfile2.flush() jasoc = Jp2k(tfile2.name) self.assertEqual(jasoc.box[3].box_id, 'asoc') self.assertEqual(jasoc.box[3].box[0].box_id, 'lbl ') self.assertEqual(jasoc.box[3].box[0].label, 'label') self.assertEqual(jasoc.box[3].box[1].box_id, 'xml ') def test_ignore_pclr_cmap_cdef_on_old_read(self): """ The old "read" interface allowed for passing ignore_pclr_cmap_cdef to read a palette dataset "uninterpolated". """ jpx = Jp2k(self.jpxfile) jpx.ignore_pclr_cmap_cdef = True expected = jpx[:] jpx2 = Jp2k(self.jpxfile) with warnings.catch_warnings(): # Ignore a deprecation warning. warnings.simplefilter('ignore') actual = jpx2.read(ignore_pclr_cmap_cdef=True) np.testing.assert_array_equal(actual, expected) def test_grey_with_extra_component(self): """version 2.0 cannot write gray + extra""" with open(self.temp_jp2_filename, mode='wb') as tfile: data = np.zeros((128, 128, 2), dtype=np.uint8) j = Jp2k(tfile.name, data=data) self.assertEqual(j.box[2].box[0].height, 128) self.assertEqual(j.box[2].box[0].width, 128) self.assertEqual(j.box[2].box[0].num_components, 2) self.assertEqual(j.box[2].box[1].colorspace, glymur.core.GREYSCALE) def test_rgb_with_extra_component(self): """v2.0+ should be able to write extra components""" with open(self.temp_jp2_filename, mode='wb') as tfile: data = np.zeros((128, 128, 4), dtype=np.uint8) j = Jp2k(tfile.name, data=data) self.assertEqual(j.box[2].box[0].height, 128) self.assertEqual(j.box[2].box[0].width, 128) self.assertEqual(j.box[2].box[0].num_components, 4) self.assertEqual(j.box[2].box[1].colorspace, glymur.core.SRGB) def test_openjpeg_library_error(self): """ SCENARIO: A zero subsampling factor should produce as error by the library. EXPECTED RESULT: OpenJPEGLibraryError """ # This will confirm that the error callback mechanism is working. with open(self.jp2file, 'rb') as fptr: data = fptr.read() with open(self.temp_jp2_filename, mode='wb') as tfile: # Codestream starts at byte 3323. SIZ marker at 3233. # COD marker at 3282. Subsampling at 3276. offset = 3223 tfile.write(data[0:offset + 52]) # Make the DY bytes of the SIZ segment zero. That means that # a subsampling factor is zero, which is illegal. tfile.write(b'\x00') tfile.write(data[offset + 53:offset + 55]) tfile.write(b'\x00') tfile.write(data[offset + 57:offset + 59]) tfile.write(b'\x00') tfile.write(data[offset + 59:]) tfile.flush() with warnings.catch_warnings(): warnings.simplefilter('ignore') j = Jp2k(tfile.name) error = glymur.lib.openjp2.OpenJPEGLibraryError with self.assertRaises(error): j[::2, ::2] class TestParsing(unittest.TestCase): """ Tests for verifying how parsing may be altered. """ def setUp(self): self.jp2file = glymur.data.nemo() # Reset parseoptions for every test. glymur.set_option('parse.full_codestream', False) def tearDown(self): glymur.set_option('parse.full_codestream', False) def test_main_header(self): """verify that the main header isn't loaded during normal parsing""" # The hidden _main_header attribute should show up after accessing it. jp2 = Jp2k(self.jp2file) jp2c = jp2.box[4] self.assertIsNone(jp2c._codestream) jp2c.codestream self.assertIsNotNone(jp2c._codestream) @unittest.skipIf(OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG) class TestReadArea(unittest.TestCase): """ Runs tests introduced in version 2.0+ or that pass only in 2.0+ These tests are only slightly different than their counterparts in the OpenJPEG test suite. The difference is in the file that is tested and their extents. The purpose is the same, though. """ @classmethod def setUpClass(self): self.j2k = Jp2k(glymur.data.goodstuff()) self.j2k_data = self.j2k[:] self.j2k_half_data = self.j2k[::2, ::2] self.j2k_quarter_data = self.j2k[::4, ::4] def test_NR_DEC_p1_04_j2k_43_decode(self): actual = self.j2k[:800, :480] expected = self.j2k_data np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p1_04_j2k_45_decode(self): """ Get bottom right """ actual = self.j2k[672:800, 352:480] expected = self.j2k_data[672:800, 352:480] np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p1_04_j2k_46_decode(self): actual = self.j2k[500:800, 100:300] expected = self.j2k_data[500:800, 100:300] np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p1_04_j2k_47_decode(self): actual = self.j2k[520:600, 260:360] expected = self.j2k_data[520:600, 260:360] np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p1_04_j2k_48_decode(self): actual = self.j2k[520:660, 260:360] expected = self.j2k_data[520:660, 260:360] np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p1_04_j2k_49_decode(self): actual = self.j2k[520:600, 360:400] expected = self.j2k_data[520:600, 360:400] np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p1_04_j2k_50_decode(self): actual = self.j2k[:800:4, :480:4] expected = self.j2k_quarter_data np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p1_04_j2k_51_decode(self): """ NR_DEC_p1_04_j2k_51_decode Original extents were actual = self.j2k[640:768:4, 512:640:4] expected = self.j2k_quarter_data[160:192, 128:160] Just needed to shift the columns to the left to make it work with our own image. """ actual = self.j2k[640:768:4, 256:384:4] expected = self.j2k_quarter_data[160:192, 64:96] np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p1_04_j2k_53_decode(self): actual = self.j2k[500:800:4, 100:300:4] expected = self.j2k_quarter_data[125:200, 25:75] np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p1_04_j2k_54_decode(self): actual = self.j2k[520:600:4, 260:360:4] expected = self.j2k_quarter_data[130:150, 65:90] np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p1_04_j2k_55_decode(self): actual = self.j2k[520:660:4, 260:360:4] expected = self.j2k_quarter_data[130:165, 65:90] np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p1_04_j2k_56_decode(self): actual = self.j2k[520:600:4, 360:400:4] expected = self.j2k_quarter_data[130:150, 90:100] np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p1_06_j2k_70_decode(self): actual = self.j2k[9:12:2, 9:12:2] self.assertEqual(actual.shape, (1, 1, 3)) def test_NR_DEC_p1_06_j2k_71_decode(self): actual = self.j2k[10:12:2, 4:10:2] self.assertEqual(actual.shape, (1, 3, 3)) def test_NR_DEC_p1_06_j2k_72_decode(self): ssdata = self.j2k[3:9:2, 3:9:2] self.assertEqual(ssdata.shape, (3, 3, 3)) def test_NR_DEC_p1_06_j2k_73_decode(self): ssdata = self.j2k[4:7:2, 4:7:2] self.assertEqual(ssdata.shape, (2, 2, 3)) def test_NR_DEC_p1_06_j2k_74_decode(self): ssdata = self.j2k[4:5:2, 4:5:2] self.assertEqual(ssdata.shape, (1, 1, 3)) def test_NR_DEC_p1_06_j2k_75_decode(self): # Image size would be 0 x 0. with self.assertRaises(InvalidJp2kError): self.j2k[9:12:4, 9:12:4] def test_NR_DEC_p0_04_j2k_85_decode(self): actual = self.j2k[:256, :256] expected = self.j2k_data[:256, :256] np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p0_04_j2k_86_decode(self): actual = self.j2k[:128, 128:256] expected = self.j2k_data[:128, 128:256] np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p0_04_j2k_87_decode(self): actual = self.j2k[10:200, 50:120] expected = self.j2k_data[10:200, 50:120] np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p0_04_j2k_88_decode(self): actual = self.j2k[150:210, 10:190] expected = self.j2k_data[150:210, 10:190] np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p0_04_j2k_89_decode(self): actual = self.j2k[80:150, 100:200] expected = self.j2k_data[80:150, 100:200] np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p0_04_j2k_90_decode(self): actual = self.j2k[20:50, 150:200] expected = self.j2k_data[20:50, 150:200] np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p0_04_j2k_91_decode(self): actual = self.j2k[:256:4, :256:4] expected = self.j2k_quarter_data[0:64, 0:64] np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p0_04_j2k_92_decode(self): actual = self.j2k[:128:4, 128:256:4] expected = self.j2k_quarter_data[:32, 32:64] np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p0_04_j2k_93_decode(self): actual = self.j2k[10:200:4, 50:120:4] expected = self.j2k_quarter_data[3:50, 13:30] np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p0_04_j2k_94_decode(self): actual = self.j2k[150:210:4, 10:190:4] expected = self.j2k_quarter_data[38:53, 3:48] np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p0_04_j2k_95_decode(self): actual = self.j2k[80:150:4, 100:200:4] expected = self.j2k_quarter_data[20:38, 25:50] np.testing.assert_array_equal(actual, expected) def test_NR_DEC_p0_04_j2k_96_decode(self): actual = self.j2k[20:50:4, 150:200:4] expected = self.j2k_quarter_data[5:13, 38:50] np.testing.assert_array_equal(actual, expected) glymur-0.9.1/tests/test_openjp2.py000066400000000000000000000313061360775562100172070ustar00rootroot00000000000000""" Tests for libopenjp2 wrapping functions. """ # Standard library imports ... from io import StringIO import unittest from unittest.mock import patch # Third party library imports ... import numpy as np # Local imports ... import glymur from glymur.lib import openjp2 from . import fixtures from .fixtures import OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG @unittest.skipIf(OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG) class TestOpenJP2(fixtures.TestCommon): """Test openjp2 library functionality. Some tests correspond to those in the openjpeg test suite. """ def test_no_openjp2_library(self): """ SCENARIO: There is no openjp2 library. EXPECTED RESPONSE: The version method should return "0.0.0" """ with patch.object(openjp2, 'OPENJP2', new=None): actual = openjp2.version() self.assertEqual(actual, '0.0.0') @unittest.skipIf(glymur.lib.openjp2.version() < '2.2.0', 'Not implemented') def test_get_num_cpus(self): """ SCENARIO: Hard to test this. Values will be different across different machines, all we can do is test that the function runs. EXPECTED VALUE: an integer """ num_cpus = openjp2.get_num_cpus() self.assertTrue(isinstance(num_cpus, int)) def test_default_encoder_parameters(self): """Ensure that the encoder structure is clean upon init.""" cparams = openjp2.set_default_encoder_parameters() self.assertEqual(cparams.res_spec, 0) self.assertEqual(cparams.cblockw_init, 64) self.assertEqual(cparams.cblockh_init, 64) self.assertEqual(cparams.numresolution, 6) self.assertEqual(cparams.subsampling_dx, 1) self.assertEqual(cparams.subsampling_dy, 1) self.assertEqual(cparams.mode, 0) self.assertEqual(cparams.prog_order, glymur.core.LRCP) self.assertEqual(cparams.roi_shift, 0) self.assertEqual(cparams.cp_tx0, 0) self.assertEqual(cparams.cp_ty0, 0) self.assertEqual(cparams.irreversible, 0) def test_default_decoder_parameters(self): """Tests that the structure is clean upon initialization""" dparams = openjp2.set_default_decoder_parameters() self.assertEqual(dparams.DA_x0, 0) self.assertEqual(dparams.DA_y0, 0) self.assertEqual(dparams.DA_x1, 0) self.assertEqual(dparams.DA_y1, 0) def test_tte0(self): """ SCENARIO: create a J2K file with the following characteristics: 8-bit 3 components irreversible wavelet transform 200x200 image 2x2 tiling This corresponds to test tte0 in OpenJPEG test suite. EXPECTED RESULT: no exceptions are raised """ ttx0_setup(str(self.temp_j2k_filename)) self.assertTrue(True) def test_ttd0(self): """Runs test designated ttd0 in OpenJPEG test suite.""" filename = str(self.temp_j2k_filename) ttx0_setup(filename) kwargs = {'x0': 0, 'y0': 0, 'x1': 1000, 'y1': 1000, 'filename': filename, 'codec_format': openjp2.CODEC_J2K} tile_decoder(**kwargs) self.assertTrue(True) def xtx1_setup(self, filename): """Runs tests tte1, rta1.""" kwargs = {'filename': filename, 'codec': openjp2.CODEC_J2K, 'comp_prec': 8, 'irreversible': 1, 'num_comps': 3, 'image_height': 256, 'image_width': 256, 'tile_height': 128, 'tile_width': 128} tile_encoder(**kwargs) self.assertTrue(True) def test_tte1(self): """Runs test designated tte1 in OpenJPEG test suite.""" filename = str(self.temp_j2k_filename) self.xtx1_setup(filename) def test_ttd1(self): """Runs test designated ttd1 in OpenJPEG test suite.""" filename = str(self.temp_j2k_filename) # Produce the tte0 output file for ttd0 input. self.xtx1_setup(filename) kwargs = {'x0': 0, 'y0': 0, 'x1': 128, 'y1': 128, 'filename': filename, 'codec_format': openjp2.CODEC_J2K} tile_decoder(**kwargs) self.assertTrue(True) def test_tte2(self): """Runs test designated tte2 in OpenJPEG test suite.""" filename = str(self.temp_j2k_filename) xtx2_setup(filename) self.assertTrue(True) def test_ttd2(self): """Runs test designated ttd2 in OpenJPEG test suite.""" filename = str(self.temp_j2k_filename) xtx2_setup(filename) kwargs = {'x0': 0, 'y0': 0, 'x1': 128, 'y1': 128, 'filename': filename, 'codec_format': openjp2.CODEC_JP2} tile_decoder(**kwargs) self.assertTrue(True) def test_tte3(self): """Runs test designated tte3 in OpenJPEG test suite.""" filename = str(self.temp_j2k_filename) xtx3_setup(filename) self.assertTrue(True) def test_tte4(self): """Runs test designated tte4 in OpenJPEG test suite.""" filename = str(self.temp_j2k_filename) xtx4_setup(filename) self.assertTrue(True) def test_tte5(self): """Runs test designated tte5 in OpenJPEG test suite.""" filename = str(self.temp_j2k_filename) xtx5_setup(filename) self.assertTrue(True) def tile_encoder(**kwargs): """Fixture used by many tests.""" num_tiles = ((kwargs['image_width'] / kwargs['tile_width']) * (kwargs['image_height'] / kwargs['tile_height'])) tile_size = ((kwargs['tile_width'] * kwargs['tile_height']) * (kwargs['num_comps'] * kwargs['comp_prec'] / 8)) data = np.random.random((kwargs['tile_height'], kwargs['tile_width'], kwargs['num_comps'])) data = (data * 255).astype(np.uint8) l_param = openjp2.set_default_encoder_parameters() l_param.tcp_numlayers = 1 l_param.cp_fixed_quality = 1 l_param.tcp_distoratio[0] = 20 # position of the tile grid aligned with the image l_param.cp_tx0 = 0 l_param.cp_ty0 = 0 # tile size, we are using tile based encoding l_param.tile_size_on = 1 l_param.cp_tdx = kwargs['tile_width'] l_param.cp_tdy = kwargs['tile_height'] # use irreversible encoding l_param.irreversible = kwargs['irreversible'] l_param.numresolution = 6 l_param.prog_order = glymur.core.LRCP l_params = (openjp2.ImageComptParmType * kwargs['num_comps'])() for j in range(kwargs['num_comps']): l_params[j].dx = 1 l_params[j].dy = 1 l_params[j].h = kwargs['image_height'] l_params[j].w = kwargs['image_width'] l_params[j].sgnd = 0 l_params[j].prec = kwargs['comp_prec'] l_params[j].x0 = 0 l_params[j].y0 = 0 codec = openjp2.create_compress(kwargs['codec']) openjp2.set_info_handler(codec, None) openjp2.set_warning_handler(codec, None) openjp2.set_error_handler(codec, None) cspace = openjp2.CLRSPC_SRGB l_image = openjp2.image_tile_create(l_params, cspace) l_image.contents.x0 = 0 l_image.contents.y0 = 0 l_image.contents.x1 = kwargs['image_width'] l_image.contents.y1 = kwargs['image_height'] l_image.contents.color_space = openjp2.CLRSPC_SRGB openjp2.setup_encoder(codec, l_param, l_image) stream = openjp2.stream_create_default_file_stream(kwargs['filename'], False) openjp2.start_compress(codec, l_image, stream) for j in np.arange(num_tiles): openjp2.write_tile(codec, j, data, tile_size, stream) openjp2.end_compress(codec, stream) openjp2.stream_destroy(stream) openjp2.destroy_codec(codec) openjp2.image_destroy(l_image) def tile_decoder(**kwargs): """Fixture called with various configurations by many tests. Reads a tile. That's all it does. """ stream = openjp2.stream_create_default_file_stream(kwargs['filename'], True) dparam = openjp2.set_default_decoder_parameters() dparam.decod_format = kwargs['codec_format'] # Do not use layer decoding limitation. dparam.cp_layer = 0 # do not use resolution reductions. dparam.cp_reduce = 0 codec = openjp2.create_decompress(kwargs['codec_format']) openjp2.set_info_handler(codec, None) openjp2.set_warning_handler(codec, None) openjp2.set_error_handler(codec, None) openjp2.setup_decoder(codec, dparam) image = openjp2.read_header(stream, codec) openjp2.set_decode_area(codec, image, kwargs['x0'], kwargs['y0'], kwargs['x1'], kwargs['y1']) data = np.zeros((1150, 2048, 3), dtype=np.uint8) while True: rargs = openjp2.read_tile_header(codec, stream) tidx = rargs[0] size = rargs[1] go_on = rargs[-1] if not go_on: break openjp2.decode_tile_data(codec, tidx, data, size, stream) openjp2.end_decompress(codec, stream) openjp2.destroy_codec(codec) openjp2.stream_destroy(stream) openjp2.image_destroy(image) def ttx0_setup(filename): """Runs tests tte0, tte0.""" kwargs = {'filename': filename, 'codec': openjp2.CODEC_J2K, 'comp_prec': 8, 'irreversible': 1, 'num_comps': 3, 'image_height': 200, 'image_width': 200, 'tile_height': 100, 'tile_width': 100} tile_encoder(**kwargs) def xtx2_setup(filename): """Runs tests rta2, tte2, ttd2.""" kwargs = {'filename': filename, 'codec': openjp2.CODEC_JP2, 'comp_prec': 8, 'irreversible': 1, 'num_comps': 3, 'image_height': 256, 'image_width': 256, 'tile_height': 128, 'tile_width': 128} tile_encoder(**kwargs) def xtx3_setup(filename): """Runs tests tte3, rta3.""" kwargs = {'filename': filename, 'codec': openjp2.CODEC_J2K, 'comp_prec': 8, 'irreversible': 1, 'num_comps': 1, 'image_height': 256, 'image_width': 256, 'tile_height': 128, 'tile_width': 128} tile_encoder(**kwargs) def xtx4_setup(filename): """Runs tests rta4, tte4.""" kwargs = {'filename': filename, 'codec': openjp2.CODEC_J2K, 'comp_prec': 8, 'irreversible': 0, 'num_comps': 1, 'image_height': 256, 'image_width': 256, 'tile_height': 128, 'tile_width': 128} tile_encoder(**kwargs) def xtx5_setup(filename): """Runs tests rta5, tte5.""" kwargs = {'filename': filename, 'codec': openjp2.CODEC_J2K, 'comp_prec': 8, 'irreversible': 0, 'num_comps': 1, 'image_height': 512, 'image_width': 512, 'tile_height': 256, 'tile_width': 256} tile_encoder(**kwargs) @unittest.skipIf(OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG) class TestPrintingOpenjp2(unittest.TestCase): """Tests for verifying how printing works on openjp2 library structures.""" def setUp(self): self.jp2file = glymur.data.nemo() def test_decompression_parameters(self): """printing DecompressionParametersType""" dparams = glymur.lib.openjp2.set_default_decoder_parameters() with patch('sys.stdout', new=StringIO()) as fake_out: print(dparams) actual = fake_out.getvalue().strip() expected = fixtures.DECOMPRESSION_PARAMETERS_TYPE self.assertEqual(actual, expected) def test_progression_order_changes(self): """printing PocType""" ptype = glymur.lib.openjp2.PocType() with patch('sys.stdout', new=StringIO()) as fake_out: print(ptype) actual = fake_out.getvalue().strip() expected = fixtures.DEFAULT_PROGRESSION_ORDER_CHANGES_TYPE self.assertEqual(actual, expected) def test_default_compression_parameters(self): """printing default compression parameters""" cparams = glymur.lib.openjp2.set_default_encoder_parameters() with patch('sys.stdout', new=StringIO()) as fake_out: print(cparams) actual = fake_out.getvalue().strip() expected = fixtures.DEFAULT_COMPRESSION_PARAMETERS_TYPE self.assertEqual(actual, expected) glymur-0.9.1/tests/test_printing.py000066400000000000000000001740501360775562100174700ustar00rootroot00000000000000# -*- coding: utf-8 -*- """ Test suite for printing. """ # Standard library imports ... try: import importlib.resources as ir except ImportError: # pragma: no cover # before 3.7 import importlib_resources as ir from io import BytesIO, StringIO import struct import sys import unittest from unittest.mock import patch from uuid import UUID import warnings # Third party imports ... import numpy as np import lxml.etree as ET import glymur from glymur.codestream import LRCP, WAVELET_XFORM_5X3_REVERSIBLE from glymur.core import COLOR, RED, GREEN, BLUE, RESTRICTED_ICC_PROFILE from glymur.jp2box import BitsPerComponentBox, ColourSpecificationBox from glymur.jp2box import LabelBox from glymur import Jp2k, command_line from glymur.lib import openjp2 as opj2 from . import fixtures, data from .fixtures import OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG class TestPrinting(fixtures.TestCommon): """ Tests for verifying how printing works. """ def setUp(self): super(TestPrinting, self).setUp() # Reset printoptions for every test. glymur.reset_option('all') def tearDown(self): super(TestPrinting, self).tearDown() glymur.reset_option('all') def test_bad_color_specification(self): """ Invalid channel type should not prevent printing. """ with ir.path(data, 'issue392.jp2') as path: with warnings.catch_warnings(): warnings.simplefilter('ignore') str(Jp2k(path)) def test_palette(self): """ verify printing of pclr box Original file tested was input/conformance/file9.jp2 """ palette = np.array([[0, 0, 0] for _ in range(256)], dtype=np.uint8) bps = (8, 8, 8) signed = (False, False, False) box = glymur.jp2box.PaletteBox(palette, bits_per_component=bps, signed=signed, length=782, offset=66) actual = str(box) expected = ('Palette Box (pclr) @ (66, 782)\n' ' Size: (256 x 3)') self.assertEqual(actual, expected) glymur.set_option('print.short', True) actual = str(box) expected = ('Palette Box (pclr) @ (66, 782)') self.assertEqual(actual, expected) def test_component_mapping_palette(self): """ verify printing of cmap box tied to a palette Original file tested was input/conformance/file9.jp2 """ cmap = glymur.jp2box.ComponentMappingBox(component_index=(0, 0, 0), mapping_type=(1, 1, 1), palette_index=(0, 1, 2), length=20, offset=848) actual = str(cmap) expected = ('Component Mapping Box (cmap) @ (848, 20)\n' ' Component 0 ==> palette column 0\n' ' Component 0 ==> palette column 1\n' ' Component 0 ==> palette column 2') self.assertEqual(actual, expected) def test_component_mapping_non_palette(self): """ verify printing of cmap box where there is no palette """ cmap = glymur.jp2box.ComponentMappingBox(component_index=(0, 1, 2), mapping_type=(0, 0, 0), palette_index=(0, 0, 0), length=20, offset=848) actual = str(cmap) expected = ('Component Mapping Box (cmap) @ (848, 20)\n' ' Component 0 ==> 0\n' ' Component 1 ==> 1\n' ' Component 2 ==> 2') self.assertEqual(actual, expected) def test_channel_definition(self): """ verify printing of cdef box Original file tested was input/conformance/file2.jp2 """ channel_type = [COLOR, COLOR, COLOR] association = [BLUE, GREEN, RED] cdef = glymur.jp2box.ChannelDefinitionBox(index=[0, 1, 2], channel_type=channel_type, association=association, length=28, offset=81) actual = str(cdef) expected = ('Channel Definition Box (cdef) @ (81, 28)\n' ' Channel 0 (color) ==> (3)\n' ' Channel 1 (color) ==> (2)\n' ' Channel 2 (color) ==> (1)') self.assertEqual(actual, expected) glymur.set_option('print.short', True) actual = str(cdef) expected = ('Channel Definition Box (cdef) @ (81, 28)') self.assertEqual(actual, expected) def test_xml(self): """ SCENARIO: JP2 file has an XML box. The original test file was input/conformance/file1.jp2 EXPECTED RESULT: The string representation of the XML box matches expectations. """ elt = ET.fromstring(fixtures.FILE1_XML) xml = ET.ElementTree(elt) box = glymur.jp2box.XMLBox(xml=xml, length=439, offset=36) actual = str(box) expected = fixtures.FILE1_XML_BOX self.assertEqual(actual, expected) def test_xml_short_option(self): """ verify printing of XML box when print.xml option set to false """ elt = ET.fromstring(fixtures.FILE1_XML) xml = ET.ElementTree(elt) box = glymur.jp2box.XMLBox(xml=xml, length=439, offset=36) glymur.set_option('print.short', True) actual = str(box) expected = fixtures.FILE1_XML_BOX.splitlines()[0] self.assertEqual(actual, expected) def test_xml_no_xml_option(self): """ verify printing of XML box when print.xml option set to false """ elt = ET.fromstring(fixtures.FILE1_XML) xml = ET.ElementTree(elt) box = glymur.jp2box.XMLBox(xml=xml, length=439, offset=36) glymur.set_option('print.xml', False) actual = str(box) expected = fixtures.FILE1_XML_BOX.splitlines()[0] self.assertEqual(actual, expected) def test_xml_no_xml(self): """ verify printing of XML box when there is no XML """ box = glymur.jp2box.XMLBox() actual = str(box) expected = ("XML Box (xml ) @ (-1, 0)\n" " None") self.assertEqual(actual, expected) def test_uuid(self): """ verify printing of UUID box Original test file was text_GBR.jp2 """ buuid = UUID('urn:uuid:3a0d0218-0ae9-4115-b376-4bca41ce0e71') box = glymur.jp2box.UUIDBox(buuid, b'\x00', 25, 1544) actual = str(box) expected = ( 'UUID Box (uuid) @ (1544, 25)\n' ' UUID: 3a0d0218-0ae9-4115-b376-4bca41ce0e71 (unknown)\n' ' UUID Data: 1 bytes') self.assertEqual(actual, expected) def test_invalid_progression_order(self): """ Should still be able to print even if prog order is invalid. Original test file was 2977.pdf.asan.67.2198.jp2 """ pargs = (0, 33, 1, 1, 5, 3, 3, 0, 0, None) with warnings.catch_warnings(): warnings.simplefilter('ignore') segment = glymur.codestream.CODsegment(*pargs, length=12, offset=174) actual = str(segment) expected = fixtures.ISSUE186_PROGRESSION_ORDER self.assertEqual(actual, expected) def test_bad_wavelet_transform(self): """ Should still be able to print if wavelet xform is bad, issue195 Original test file was edf_c2_10025.jp2 """ pargs = (0, 0, 0, 0, 0, 0, 0, 0, 2, None) with warnings.catch_warnings(): warnings.simplefilter('ignore') segment = glymur.codestream.CODsegment(*pargs, length=0, offset=0) str(segment) def test_bad_rsiz(self): """ Should still be able to print if rsiz is bad, issue196 Original test file was edf_c2_1002767.jp2 """ kwargs = {'rsiz': 33, 'xysiz': (1920, 1080), 'xyosiz': (0, 0), 'xytsiz': (1920, 1080), 'xytosiz': (0, 0), 'Csiz': 3, 'bitdepth': (12, 12, 12), 'signed': (False, False, False), 'xyrsiz': ((1, 1, 1), (1, 1, 1)), 'length': 47, 'offset': 2} segment = glymur.codestream.SIZsegment(**kwargs) str(segment) def test_invalid_approximation(self): """ An invalid approximation value shouldn't cause a printing error. Original test file was edf_c2_1015644.jp2 """ kwargs = { 'colorspace': 1, 'precedence': 2, 'approximation': 32, } with warnings.catch_warnings(): # Get a warning for the bad approximation value when parsing. warnings.simplefilter("ignore") colr = ColourSpecificationBox(**kwargs) actual = str(colr) expected = ("Colour Specification Box (colr) @ (-1, 0)\n" " Method: enumerated colorspace\n" " Precedence: 2\n" " Approximation: invalid (32)\n" " Colorspace: 1 (unrecognized)") self.assertEqual(actual, expected) def test_invalid_colorspace(self): """ SCENARIO: An invalid colorspace shouldn't cause an error when printing. EXPECTED RESULT: No error, although there is a warning. """ with self.assertWarns(UserWarning): colr = ColourSpecificationBox(colorspace=276) str(colr) def test_label_box_short(self): """ Test the short option for the LabelBox """ box = LabelBox('test') glymur.set_option('print.short', True) actual = str(box) expected = "Label Box (lbl ) @ (-1, 0)" self.assertEqual(actual, expected) def test_bpcc(self): """ BPCC boxes are rare :-) """ bpcc = (5, 5, 5, 1) signed = (False, False, True, False) box = BitsPerComponentBox(bpcc, signed, length=12, offset=62) actual = str(box) expected = ("Bits Per Component Box (bpcc) @ (62, 12)\n" " Bits per component: (5, 5, 5, 1)\n" " Signed: (False, False, True, False)") self.assertEqual(actual, expected) glymur.set_option('print.short', True) actual = str(box) self.assertEqual(actual, expected.splitlines()[0]) def test_cinema_profile(self): """ Should print Cinema 2K when the profile is 3. """ kwargs = {'rsiz': 3, 'xysiz': (1920, 1080), 'xyosiz': (0, 0), 'xytsiz': (1920, 1080), 'xytosiz': (0, 0), 'Csiz': 3, 'bitdepth': (12, 12, 12), 'signed': (False, False, False), 'xyrsiz': ((1, 1, 1), (1, 1, 1)), 'length': 47, 'offset': 2} segment = glymur.codestream.SIZsegment(**kwargs) actual = str(segment) expected = ( "SIZ marker segment @ (2, 47)\n" " Profile: Cinema 2K\n" " Reference Grid Height, Width: (1080 x 1920)\n" " Vertical, Horizontal Reference Grid Offset: (0 x 0)\n" " Reference Tile Height, Width: (1080 x 1920)\n" " Vertical, Horizontal Reference Tile Offset: (0 x 0)\n" " Bitdepth: (12, 12, 12)\n" " Signed: (False, False, False)\n" " Vertical, Horizontal Subsampling: ((1, 1), (1, 1), (1, 1))" ) self.assertEqual(actual, expected) def test_version_info(self): """Should be able to print(glymur.version.info)""" str(glymur.version.info) self.assertTrue(True) def test_unknown_superbox(self): """ SCENARIO: An unknown superbox is encountered. EXPECTED RESULT: str should produce a predictable result. """ with open(self.temp_jpx_filename, mode='wb') as tfile: with open(self.jpxfile, 'rb') as ifile: tfile.write(ifile.read()) # Add the header for an unknown superbox. write_buffer = struct.pack('>I4s', 20, 'grp '.encode()) tfile.write(write_buffer) # Add a free box inside of it. We won't be able to identify it, # but it's there. write_buffer = struct.pack('>I4sI', 12, 'free'.encode(), 0) tfile.write(write_buffer) tfile.flush() with warnings.catch_warnings(): warnings.simplefilter("ignore") jpx = Jp2k(tfile.name) glymur.set_option('print.short', True) actual = str(jpx.box[-1]) expected = ("Unknown Box (xxxx) @ (1399071, 20)\n" " Claimed ID: b'grp '") self.assertEqual(actual, expected) def test_printoptions_bad_argument(self): """Verify error when bad parameter to set_printoptions""" with self.assertRaises(KeyError): glymur.set_option('hi', 'low') @unittest.skipIf(OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG) def test_asoc_label_box(self): """ SCENARIO: A JPX file has both asoc and labl boxes. EXPECTED RESULT: str representations validate """ # Construct a fake file with an asoc and a label box, as # OpenJPEG doesn't have such a file. data = glymur.Jp2k(self.jp2file)[::2, ::2] # Create a JP2 file with only the basic JP2 boxes. vanilla_jp2_file = self.test_dir_path / 'tmp_test.jp2' glymur.Jp2k(vanilla_jp2_file, data=data) with open(vanilla_jp2_file, mode='rb') as tfile: with open(self.temp_jp2_filename, mode='wb') as tfile2: # Offset of the codestream is where we start. wbuffer = tfile.read(77) tfile2.write(wbuffer) # read the rest of the file, it's the codestream. codestream = tfile.read() # Write the asoc superbox. # Length = 36, id is 'asoc'. wbuffer = struct.pack('>I4s', int(56), b'asoc') tfile2.write(wbuffer) # Write the contained label box wbuffer = struct.pack('>I4s', int(13), b'lbl ') tfile2.write(wbuffer) tfile2.write('label'.encode()) # Write the xml box # Length = 36, id is 'xml '. wbuffer = struct.pack('>I4s', int(35), b'xml ') tfile2.write(wbuffer) wbuffer = 'this is a test' wbuffer = wbuffer.encode() tfile2.write(wbuffer) # Now append the codestream. tfile2.write(codestream) tfile2.flush() jasoc = glymur.Jp2k(tfile2.name) actual = str(jasoc.box[3]) expected = ('Association Box (asoc) @ (77, 56)\n' ' Label Box (lbl ) @ (85, 13)\n' ' Label: label\n' ' XML Box (xml ) @ (98, 35)\n' ' this is a test') self.assertEqual(actual, expected) def test_coc_segment(self): """verify printing of COC segment""" j = glymur.Jp2k(self.jp2file) codestream = j.get_codestream(header_only=False) actual = str(codestream.segment[6]) exp = ('COC marker segment @ (3356, 9)\n' ' Associated component: 1\n' ' Coding style for this component: ' 'Entropy coder, PARTITION = 0\n' ' Coding style parameters:\n' ' Number of decomposition levels: 1\n' ' Code block height, width: (64 x 64)\n' ' Wavelet transform: 5-3 reversible\n' ' Precinct size: (32768, 32768)\n' ' Code block context:\n' ' Selective arithmetic coding bypass: False\n' ' Reset context probabilities ' 'on coding pass boundaries: False\n' ' Termination on each coding pass: False\n' ' Vertically stripe causal context: False\n' ' Predictable termination: False\n' ' Segmentation symbols: False') self.assertEqual(actual, exp) def test_cod_segment_unknown(self): """ Verify printing of transform when it's actually unknown """ scod = 0 prog_order = LRCP num_layers = 2 mct = 4 nr = 1 xcb = ycb = 4 cstyle = 0 xform = WAVELET_XFORM_5X3_REVERSIBLE precinct_size = None length = 12 offset = 3282 pargs = (scod, prog_order, num_layers, mct, nr, xcb, ycb, cstyle, xform, precinct_size, length, offset) segment = glymur.codestream.CODsegment(*pargs) actual = str(segment) exp = ('COD marker segment @ (3282, 12)\n' ' Coding style:\n' ' Entropy coder, without partitions\n' ' SOP marker segments: False\n' ' EPH marker segments: False\n' ' Coding style parameters:\n' ' Progression order: LRCP\n' ' Number of layers: 2\n' ' Multiple component transformation usage: unknown\n' ' Number of decomposition levels: 1\n' ' Code block height, width: (64 x 64)\n' ' Wavelet transform: 5-3 reversible\n' ' Precinct size: (32768, 32768)\n' ' Code block context:\n' ' Selective arithmetic coding bypass: False\n' ' Reset context probabilities on coding ' 'pass boundaries: False\n' ' Termination on each coding pass: False\n' ' Vertically stripe causal context: False\n' ' Predictable termination: False\n' ' Segmentation symbols: False') self.assertEqual(actual, exp) def test_cod_segment_irreversible(self): """ Verify printing of irreversible transform """ scod = 0 prog_order = LRCP num_layers = 2 mct = 2 nr = 1 xcb = ycb = 4 cstyle = 0 xform = WAVELET_XFORM_5X3_REVERSIBLE precinct_size = None length = 12 offset = 3282 pargs = (scod, prog_order, num_layers, mct, nr, xcb, ycb, cstyle, xform, precinct_size, length, offset) segment = glymur.codestream.CODsegment(*pargs) actual = str(segment) exp = ('COD marker segment @ (3282, 12)\n' ' Coding style:\n' ' Entropy coder, without partitions\n' ' SOP marker segments: False\n' ' EPH marker segments: False\n' ' Coding style parameters:\n' ' Progression order: LRCP\n' ' Number of layers: 2\n' ' Multiple component transformation usage: ' 'irreversible\n' ' Number of decomposition levels: 1\n' ' Code block height, width: (64 x 64)\n' ' Wavelet transform: 5-3 reversible\n' ' Precinct size: (32768, 32768)\n' ' Code block context:\n' ' Selective arithmetic coding bypass: False\n' ' Reset context probabilities on coding ' 'pass boundaries: False\n' ' Termination on each coding pass: False\n' ' Vertically stripe causal context: False\n' ' Predictable termination: False\n' ' Segmentation symbols: False') self.assertEqual(actual, exp) def test_cod_segment(self): """verify printing of COD segment""" j = glymur.Jp2k(self.jp2file) codestream = j.get_codestream() actual = str(codestream.segment[2]) exp = ('COD marker segment @ (3282, 12)\n' ' Coding style:\n' ' Entropy coder, without partitions\n' ' SOP marker segments: False\n' ' EPH marker segments: False\n' ' Coding style parameters:\n' ' Progression order: LRCP\n' ' Number of layers: 2\n' ' Multiple component transformation usage: ' 'reversible\n' ' Number of decomposition levels: 1\n' ' Code block height, width: (64 x 64)\n' ' Wavelet transform: 5-3 reversible\n' ' Precinct size: (32768, 32768)\n' ' Code block context:\n' ' Selective arithmetic coding bypass: False\n' ' Reset context probabilities on coding ' 'pass boundaries: False\n' ' Termination on each coding pass: False\n' ' Vertically stripe causal context: False\n' ' Predictable termination: False\n' ' Segmentation symbols: False') self.assertEqual(actual, exp) def test_eoc_segment(self): """verify printing of eoc segment""" j = glymur.Jp2k(self.jp2file) codestream = j.get_codestream(header_only=False) actual = str(codestream.segment[-1]) expected = 'EOC marker segment @ (1135517, 0)' self.assertEqual(actual, expected) def test_qcc_segment(self): """verify printing of qcc segment""" j = glymur.Jp2k(self.jp2file) codestream = j.get_codestream(header_only=False) actual = str(codestream.segment[7]) expected = ('QCC marker segment @ (3367, 8)\n' ' Associated Component: 1\n' ' Quantization style: no quantization, 2 guard bits\n' ' Step size: [(0, 8), (0, 9), (0, 9), (0, 10)]') self.assertEqual(actual, expected) def test_qcd_segment_5x3_transform(self): """verify printing of qcd segment""" j = glymur.Jp2k(self.jp2file) codestream = j.get_codestream() actual = str(codestream.segment[3]) expected = ('QCD marker segment @ (3296, 7)\n' ' Quantization style: no quantization, 2 guard bits\n' ' Step size: [(0, 8), (0, 9), (0, 9), (0, 10)]') self.assertEqual(actual, expected) def test_siz_segment(self): """verify printing of SIZ segment""" j = glymur.Jp2k(self.jp2file) actual = str(j.codestream.segment[1]) exp = ('SIZ marker segment @ (3233, 47)\n' ' Profile: no profile\n' ' Reference Grid Height, Width: (1456 x 2592)\n' ' Vertical, Horizontal Reference Grid Offset: (0 x 0)\n' ' Reference Tile Height, Width: (1456 x 2592)\n' ' Vertical, Horizontal Reference Tile Offset: (0 x 0)\n' ' Bitdepth: (8, 8, 8)\n' ' Signed: (False, False, False)\n' ' Vertical, Horizontal Subsampling: ' '((1, 1), (1, 1), (1, 1))') self.assertEqual(actual, exp) def test_soc_segment(self): """verify printing of SOC segment""" j = glymur.Jp2k(self.jp2file) codestream = j.get_codestream() actual = str(codestream.segment[0]) expected = 'SOC marker segment @ (3231, 0)' self.assertEqual(actual, expected) def test_sod_segment(self): """verify printing of SOD segment""" j = glymur.Jp2k(self.jp2file) codestream = j.get_codestream(header_only=False) actual = str(codestream.segment[10]) expected = 'SOD marker segment @ (3398, 0)' self.assertEqual(actual, expected) def test_sot_segment(self): """verify printing of SOT segment""" j = glymur.Jp2k(self.jp2file) codestream = j.get_codestream(header_only=False) actual = str(codestream.segment[5]) expected = ('SOT marker segment @ (3344, 10)\n' ' Tile part index: 0\n' ' Tile part length: 1132173\n' ' Tile part instance: 0\n' ' Number of tile parts: 1') self.assertEqual(actual, expected) def test_xmp(self): """ Verify the printing of a UUID/XMP box. """ j = glymur.Jp2k(self.jp2file) actual = str(j.box[3]) expected = fixtures.NEMO_XMP_BOX self.assertEqual(actual, expected) def test_codestream(self): """ verify printing of entire codestream """ j = glymur.Jp2k(self.jp2file) actual = str(j.get_codestream()) exp = ('Codestream:\n' ' SOC marker segment @ (3231, 0)\n' ' SIZ marker segment @ (3233, 47)\n' ' Profile: no profile\n' ' Reference Grid Height, Width: (1456 x 2592)\n' ' Vertical, Horizontal Reference Grid Offset: (0 x 0)\n' ' Reference Tile Height, Width: (1456 x 2592)\n' ' Vertical, Horizontal Reference Tile Offset: (0 x 0)\n' ' Bitdepth: (8, 8, 8)\n' ' Signed: (False, False, False)\n' ' Vertical, Horizontal Subsampling: ' '((1, 1), (1, 1), (1, 1))\n' ' COD marker segment @ (3282, 12)\n' ' Coding style:\n' ' Entropy coder, without partitions\n' ' SOP marker segments: False\n' ' EPH marker segments: False\n' ' Coding style parameters:\n' ' Progression order: LRCP\n' ' Number of layers: 2\n' ' Multiple component transformation usage: ' 'reversible\n' ' Number of decomposition levels: 1\n' ' Code block height, width: (64 x 64)\n' ' Wavelet transform: 5-3 reversible\n' ' Precinct size: (32768, 32768)\n' ' Code block context:\n' ' Selective arithmetic coding bypass: False\n' ' Reset context probabilities on ' 'coding pass boundaries: False\n' ' Termination on each coding pass: False\n' ' Vertically stripe causal context: False\n' ' Predictable termination: False\n' ' Segmentation symbols: False\n' ' QCD marker segment @ (3296, 7)\n' ' Quantization style: no quantization, ' '2 guard bits\n' ' Step size: [(0, 8), (0, 9), (0, 9), (0, 10)]\n' ' CME marker segment @ (3305, 37)\n' ' "Created by OpenJPEG version 2.0.0"') self.assertEqual(actual, exp) def test_xml_latin1(self): """Should be able to print an XMLBox with utf-8 encoding (latin1).""" # Seems to be inconsistencies between different versions of python2.x # as to what gets printed. # # 2.7.5 (fedora 19) prints xml entities. # 2.7.3 seems to want to print hex escapes. text = u"""Strömung""" xml = ET.parse(StringIO(text)) xmlbox = glymur.jp2box.XMLBox(xml=xml) actual = str(xmlbox) expected = ("XML Box (xml ) @ (-1, 0)\n" " Strömung") self.assertEqual(actual, expected) def test_xml_cyrrilic(self): """Should be able to print XMLBox with utf-8 encoding (cyrrillic).""" # Seems to be inconsistencies between different versions of python2.x # as to what gets printed. # # 2.7.5 (fedora 19) prints xml entities. # 2.7.3 seems to want to print hex escapes. text = u"""Россия""" xml = ET.parse(StringIO(text)) xmlbox = glymur.jp2box.XMLBox(xml=xml) actual = str(xmlbox) expected = ("XML Box (xml ) @ (-1, 0)\n" " Россия") self.assertEqual(actual, expected) def test_less_common_boxes(self): """verify uinf, ulst, url, res, resd, resc box printing""" with open(self.temp_jp2_filename, mode='wb') as tfile: with open(self.jp2file, 'rb') as ifile: # Everything up until the jp2c box. wbuffer = ifile.read(77) tfile.write(wbuffer) # Write the UINF superbox # Length = 50, id is uinf. wbuffer = struct.pack('>I4s', int(50), b'uinf') tfile.write(wbuffer) # Write the ULST box. # Length is 26, 1 UUID, hard code that UUID as zeros. wbuffer = struct.pack('>I4sHIIII', int(26), b'ulst', int(1), int(0), int(0), int(0), int(0)) tfile.write(wbuffer) # Write the URL box. # Length is 16, version is one byte, flag is 3 bytes, url # is the rest. wbuffer = struct.pack('>I4sBBBB', int(16), b'url ', int(0), int(0), int(0), int(0)) tfile.write(wbuffer) wbuffer = struct.pack('>ssss', b'a', b'b', b'c', b'd') tfile.write(wbuffer) # Start the resolution superbox. wbuffer = struct.pack('>I4s', int(44), b'res ') tfile.write(wbuffer) # Write the capture resolution box. wbuffer = struct.pack('>I4sHHHHBB', int(18), b'resc', int(1), int(1), int(1), int(1), int(0), int(1)) tfile.write(wbuffer) # Write the display resolution box. wbuffer = struct.pack('>I4sHHHHBB', int(18), b'resd', int(1), int(1), int(1), int(1), int(1), int(0)) tfile.write(wbuffer) # Get the rest of the input file. wbuffer = ifile.read() tfile.write(wbuffer) tfile.flush() jp2k = glymur.Jp2k(tfile.name) with patch('sys.stdout', new=StringIO()) as stdout: print(jp2k.box[3]) print(jp2k.box[4]) actual = stdout.getvalue().strip() exp = ('UUIDInfo Box (uinf) @ (77, 50)\n' ' UUID List Box (ulst) @ (85, 26)\n' ' UUID[0]: 00000000-0000-0000-0000-000000000000\n' ' Data Entry URL Box (url ) @ (111, 16)\n' ' Version: 0\n' ' Flag: 0 0 0\n' ' URL: "abcd"\n' 'Resolution Box (res ) @ (127, 44)\n' ' Capture Resolution Box (resc) @ (135, 18)\n' ' VCR: 1.0\n' ' HCR: 10.0\n' ' Display Resolution Box (resd) @ (153, 18)\n' ' VDR: 10.0\n' ' HDR: 1.0') self.assertEqual(actual, exp) glymur.set_option('print.short', True) with patch('sys.stdout', new=StringIO()) as stdout: print(jp2k.box[3]) print(jp2k.box[4]) actual = stdout.getvalue().strip() exp = ('UUIDInfo Box (uinf) @ (77, 50)\n' ' UUID List Box (ulst) @ (85, 26)\n' ' Data Entry URL Box (url ) @ (111, 16)\n' 'Resolution Box (res ) @ (127, 44)\n' ' Capture Resolution Box (resc) @ (135, 18)\n' ' Display Resolution Box (resd) @ (153, 18)') self.assertEqual(actual, exp) def test_flst(self): """Verify printing of fragment list box.""" flst = glymur.jp2box.FragmentListBox([89], [1132288], [0]) actual = str(flst) expected = ("Fragment List Box (flst) @ (-1, 0)\n" " Offset 0: 89\n" " Fragment Length 0: 1132288\n" " Data Reference 0: 0") self.assertEqual(actual, expected) glymur.set_option('print.short', True) actual = str(flst) self.assertEqual(actual, expected.splitlines()[0]) def test_dref(self): """Verify printing of data reference box.""" version = 0 flag = (0, 0, 0) url = "http://readthedocs.glymur.org" deu = glymur.jp2box.DataEntryURLBox(version, flag, url) dref = glymur.jp2box.DataReferenceBox([deu]) actual = str(dref) expected = ("Data Reference Box (dtbl) @ (-1, 0)\n" " Data Entry URL Box (url ) @ (-1, 0)\n" " Version: 0\n" " Flag: 0 0 0\n" ' URL: "http://readthedocs.glymur.org"') self.assertEqual(actual, expected) # Test the short version. glymur.set_option('print.short', True) actual = str(dref) self.assertEqual(actual, 'Data Reference Box (dtbl) @ (-1, 0)') def test_empty_dref(self): """Verify printing of data reference box with no content.""" dref = glymur.jp2box.DataReferenceBox() actual = str(dref) expected = "Data Reference Box (dtbl) @ (-1, 0)" self.assertEqual(actual, expected) def test_jplh_cgrp(self): """Verify printing of compositing layer header box, color group box.""" jpx = glymur.Jp2k(self.jpxfile) actual = str(jpx.box[7]) expected = ( "Compositing Layer Header Box (jplh) @ (314227, 31)\n" " Colour Group Box (cgrp) @ (314235, 23)\n" " Colour Specification Box (colr) @ (314243, 15)\n" " Method: enumerated colorspace\n" " Precedence: 0\n" " Colorspace: sRGB" ) self.assertEqual(actual, expected) def test_free(self): """Verify printing of Free box.""" free = glymur.jp2box.FreeBox() actual = str(free) self.assertEqual(actual, 'Free Box (free) @ (-1, 0)') def test_nlst(self): """Verify printing of number list box.""" assn = (0, 16777216, 33554432, 50331648) nlst = glymur.jp2box.NumberListBox(assn) actual = str(nlst) expected = ("Number List Box (nlst) @ (-1, 0)\n" " Association[0]: the rendered result\n" " Association[1]: codestream 0\n" " Association[2]: compositing layer 0\n" " Association[3]: unrecognized") self.assertEqual(actual, expected) def test_nlst_short(self): glymur.set_option('print.short', True) assn = (0, 16777216, 33554432) nlst = glymur.jp2box.NumberListBox(assn) actual = str(nlst) expected = "Number List Box (nlst) @ (-1, 0)" self.assertEqual(actual, expected) def test_ftbl(self): """Verify printing of fragment table box.""" flst = glymur.jp2box.FragmentListBox([89], [1132288], [0]) ftbl = glymur.jp2box.FragmentTableBox([flst]) actual = str(ftbl) expected = ("Fragment Table Box (ftbl) @ (-1, 0)\n" " Fragment List Box (flst) @ (-1, 0)\n" " Offset 0: 89\n" " Fragment Length 0: 1132288\n" " Data Reference 0: 0") self.assertEqual(actual, expected) def test_jpch(self): """Verify printing of JPCH box.""" jpx = glymur.Jp2k(self.jpxfile) actual = str(jpx.box[3]) self.assertEqual(actual, 'Codestream Header Box (jpch) @ (887, 8)') def test_exif_uuid(self): """ SCENARIO: A JP2 file has an Exif UUID box. EXPECTED RESULT: Verify printing of Exif information. """ with open(self.temp_jp2_filename, mode='wb') as tfile: with open(self.jp2file, 'rb') as ifptr: tfile.write(ifptr.read()) # Write L, T, UUID identifier. tfile.write(struct.pack('>I4s', 76, b'uuid')) tfile.write(b'JpgTiffExif->JP2') tfile.write(b'Exif\x00\x00') xbuffer = struct.pack(' palette column 0\n" " Component 0 ==> palette column 1\n" " Component 0 ==> palette column 2\n" " Component 0 ==> palette column 3") self.assertEqual(actual, expected) glymur.set_option('print.short', True) actual = str(cmap) expected = expected.splitlines()[0] self.assertEqual(actual, expected) def test_issue183(self): """ SCENARIO: An ICC profile is present in a ColourSpecificationBox, but it is invalid. EXPECTED RESULT: The printed representation validates. """ colr = ColourSpecificationBox(method=RESTRICTED_ICC_PROFILE, icc_profile=None, length=12, offset=62) actual = str(colr) expected = ("Colour Specification Box (colr) @ (62, 12)\n" " Method: restricted ICC profile\n" " Precedence: 0\n" " ICC Profile: None") self.assertEqual(actual, expected) def test_icc_profile(self): """ SCENARIO: print a colr box with an ICC profile EXPECTED RESULT: validate the string representation """ with ir.path(data, 'text_GBR.jp2') as path: with self.assertWarns(UserWarning): # The brand is wrong, this is JPX, not JP2. j = Jp2k(path) box = j.box[3].box[1] actual = str(box) # Don't bother verifying the OrderedDict part of the colr box. # OrderedDicts are brittle print-wise. actual = actual.split('\n')[:5] actual = '\n'.join(actual) expected = ( "Colour Specification Box (colr) @ (179, 1339)\n" " Method: any ICC profile\n" " Precedence: 2\n" " Approximation: " "accurately represents correct colorspace definition\n" " ICC Profile:" ) self.assertEqual(actual, expected) def test_rreq(self): """ verify printing of reader requirements box Original file tested was text_GBR.jp2 """ fuam = 0xffff dcm = 0xf8f0 standard_flag = 1, 5, 12, 18, 44 standard_mask = 0x8000, 0x4080, 0x2040, 0x1020, 0x810 vendor_feature = [UUID('{3a0d0218-0ae9-4115-b376-4bca41ce0e71}')] vendor_feature.append(UUID('{47c92ccc-d1a1-4581-b904-38bb5467713b}')) vendor_feature.append(UUID('{bc45a774-dd50-4ec6-a9f6-f3a137f47e90}')) vendor_feature.append(UUID('{d7c8c5ef-951f-43b2-8757-042500f538e8}')) vendor_mask = 0, box = glymur.jp2box.ReaderRequirementsBox(fuam, dcm, standard_flag, standard_mask, vendor_feature, vendor_mask, length=109, offset=40) actual = str(box) self.assertEqual(actual, fixtures.TEXT_GBR_RREQ) glymur.set_option('print.short', True) actual = str(box) self.assertEqual(actual, fixtures.TEXT_GBR_RREQ.splitlines()[0]) def test_bom(self): """ Byte order markers are illegal in UTF-8. Issue 185 Original test file was input/nonregression/issue171.jp2 """ fptr = BytesIO() s = "" s += "goes here" s += "" data = s.encode('utf-8') fptr.write(data) fptr.seek(0) with warnings.catch_warnings(): warnings.simplefilter("ignore") box = glymur.jp2box.XMLBox.parse(fptr, 0, 8 + len(data)) # No need to verify, it's enough that we don't error out. str(box) @unittest.skipIf(OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG) def test_precincts(self): """ SCENARIO: print the first COD segment EXPECTED RESULT: the precinct information validates predetermined values """ data = Jp2k(self.jp2file)[:] j = Jp2k(self.temp_j2k_filename, data=data, psizes=[(128, 128)] * 3) # Should be three layers. codestream = j.get_codestream() actual = str(codestream.segment[2]) expected = fixtures.MULTIPLE_PRECINCT_SIZE self.assertEqual(actual, expected) def test_old_short_option(self): """ Verify printing with deprecated set_printoptions "short" """ jp2 = Jp2k(self.jp2file) with warnings.catch_warnings(): warnings.simplefilter('ignore') glymur.set_printoptions(short=True) actual = str(jp2) # Get rid of leading "File" line, as that is volatile. actual = '\n'.join(actual.splitlines()[1:]) expected = fixtures.NEMO_DUMP_SHORT self.assertEqual(actual, expected) with warnings.catch_warnings(): warnings.simplefilter('ignore') opt = glymur.get_printoptions()['short'] self.assertTrue(opt) def test_suppress_xml_old_option(self): """ Verify printing with xml suppressed, deprecated method """ jp2 = Jp2k(self.jp2file) with warnings.catch_warnings(): warnings.simplefilter('ignore') glymur.set_printoptions(xml=False) actual = str(jp2) # Get rid of leading "File" line, as that is volatile. actual = '\n'.join(actual.splitlines()[1:]) # shave off the XML and non-main-header segments expected = fixtures.NEMO_DUMP_NO_XML self.assertEqual(actual, expected) with warnings.catch_warnings(): warnings.simplefilter('ignore') opt = glymur.get_printoptions()['xml'] self.assertFalse(opt) def test_suppress_xml(self): """ Verify printing with xml suppressed """ jp2 = Jp2k(self.jp2file) glymur.set_option('print.xml', False) actual = str(jp2) # Get rid of the file line, that's kind of volatile. actual = '\n'.join(actual.splitlines()[1:]) # shave off the XML and non-main-header segments expected = fixtures.NEMO_DUMP_NO_XML self.assertEqual(actual, expected) opt = glymur.get_option('print.xml') self.assertFalse(opt) def test_suppress_codestream_old_option(self): """ Verify printing with codestream suppressed, deprecated """ jp2 = Jp2k(self.jp2file) with warnings.catch_warnings(): warnings.simplefilter('ignore') glymur.set_printoptions(codestream=False) actual = str(jp2) # Get rid of the file line, that's kind of volatile. actual = '\n'.join(actual.splitlines()[1:]) expected = fixtures.NEMO_DUMP_NO_CODESTREAM self.assertEqual(actual, expected) with warnings.catch_warnings(): warnings.simplefilter('ignore') opt = glymur.get_printoptions()['codestream'] self.assertFalse(opt) def test_suppress_codestream(self): """ Verify printing with codestream suppressed """ jp2 = Jp2k(self.jp2file) glymur.set_option('print.codestream', False) # Get rid of the file line actual = '\n'.join(str(jp2).splitlines()[1:]) expected = fixtures.NEMO_DUMP_NO_CODESTREAM self.assertEqual(actual, expected) opt = glymur.get_option('print.codestream') self.assertFalse(opt) def test_full_codestream(self): """ Verify printing with the full blown codestream """ jp2 = Jp2k(self.jp2file) glymur.set_option('parse.full_codestream', True) # Get rid of the file line actual = '\n'.join(str(jp2).splitlines()[1:]) expected = fixtures.NEMO self.assertEqual(actual, expected) opt = glymur.get_option('print.codestream') self.assertTrue(opt) def test_reserved_marker(self): """ SCENARIO: print a marker segment with a reserver marker value EXPECTED RESULT: validate the string representation """ with ir.path(data, 'p0_02.j2k') as path: j = Jp2k(path) actual = str(j.codestream.segment[6]) expected = '0xff30 marker segment @ (132, 0)' self.assertEqual(actual, expected) def test_scalar_implicit_quantization_file(self): with ir.path(data, 'p0_03.j2k') as path: j = Jp2k(path) actual = str(j.codestream.segment[3]) self.assertIn('scalar implicit', actual) def test_scalar_explicit_quantization_file(self): with ir.path(data, 'p0_06.j2k') as path: j = Jp2k(path) actual = str(j.codestream.segment[3]) self.assertIn('scalar explicit', actual) def test_non_default_precinct_size(self): with ir.path(data, 'p1_07.j2k') as path: j = Jp2k(path) actual = str(j.codestream.segment[3]) expected = fixtures.P1_07 self.assertEqual(actual, expected) class TestJp2dump(unittest.TestCase): """Tests for verifying how jp2dump console script works.""" def setUp(self): self.jpxfile = glymur.data.jpxfile() self.jp2file = glymur.data.nemo() self.j2kfile = glymur.data.goodstuff() # Reset printoptions for every test. glymur.reset_option('all') def tearDown(self): glymur.reset_option('all') def run_jp2dump(self, args): sys.argv = args with patch('sys.stdout', new=StringIO()) as fake_out: command_line.main() actual = fake_out.getvalue().strip() # Remove the file line, as that is filesystem-dependent. lines = actual.split('\n') actual = '\n'.join(lines[1:]) return actual def test_default_nemo(self): """by default one should get the main header""" actual = self.run_jp2dump(['', self.jp2file]) # shave off the non-main-header segments lines = fixtures.NEMO.split('\n') expected = lines[0:140] expected = '\n'.join(expected) self.assertEqual(actual, expected) def test_jp2_codestream_0(self): """Verify dumping with -c 0, supressing all codestream details.""" actual = self.run_jp2dump(['', '-c', '0', self.jp2file]) # shave off the codestream details lines = fixtures.NEMO.split('\n') expected = lines[0:105] expected = '\n'.join(expected) self.assertEqual(actual, expected) def test_jp2_codestream_1(self): """Verify dumping with -c 1, print just the header.""" actual = self.run_jp2dump(['', '-c', '1', self.jp2file]) # shave off the non-main-header segments lines = fixtures.NEMO.split('\n') expected = lines[0:140] expected = '\n'.join(expected) self.assertEqual(actual, expected) def test_jp2_codestream_2(self): """Verify dumping with -c 2, print entire jp2 jacket, codestream.""" actual = self.run_jp2dump(['', '-c', '2', self.jp2file]) expected = fixtures.NEMO self.assertEqual(actual, expected) def test_j2k_codestream_0(self): """-c 0 should print just a single line when used on a codestream.""" sys.argv = ['', '-c', '0', self.j2kfile] with patch('sys.stdout', new=StringIO()) as fake_out: command_line.main() actual = fake_out.getvalue().strip() self.assertRegex(actual, "File: .*") def test_j2k_codestream_1(self): """ SCENARIO: The jp2dump executable is used with the "-c 1" switch. EXPECTED RESULT: The output should include the codestream header. """ sys.argv = ['', '-c', '1', self.j2kfile] with patch('sys.stdout', new=StringIO()) as stdout: command_line.main() actual = stdout.getvalue().strip() expected = fixtures.GOODSTUFF_CODESTREAM_HEADER self.assertEqual(expected, actual) def test_j2k_codestream_2(self): """Verify dumping with -c 2, full details.""" with patch('sys.stdout', new=StringIO()) as fake_out: sys.argv = ['', '-c', '2', self.j2kfile] command_line.main() actual = fake_out.getvalue().strip() expected = fixtures.GOODSTUFF_WITH_FULL_HEADER self.assertIn(expected, actual) def test_codestream_invalid(self): """Verify dumping with -c 3, not allowd.""" with self.assertRaises(ValueError): sys.argv = ['', '-c', '3', self.jp2file] command_line.main() def test_short(self): """Verify dumping with -s, short option.""" actual = self.run_jp2dump(['', '-s', self.jp2file]) self.assertEqual(actual, fixtures.NEMO_DUMP_SHORT) def test_suppress_xml(self): """Verify dumping with -x, suppress XML.""" actual = self.run_jp2dump(['', '-x', self.jp2file]) # shave off the XML and non-main-header segments lines = fixtures.NEMO.split('\n') expected = lines[0:18] expected.extend(lines[104:140]) expected = '\n'.join(expected) self.assertEqual(actual, expected) def test_suppress_warnings_until_end(self): """ SCENARIO: JP2DUMP with -x option on file with invalid ftyp box. EXPECTED RESULT: The warning is suppressed until the very end of the output. """ with ir.path(data, 'edf_c2_1178956.jp2') as path: actual = self.run_jp2dump(['', '-x', str(path)]) lines = actual.splitlines() for line in lines[:-1]: self.assertNotIn('UserWarning', line) self.assertIn('UserWarning', lines[-1]) def test_default_component_parameters(self): """printing default image component parameters""" icpt = glymur.lib.openjp2.ImageComptParmType() with patch('sys.stdout', new=StringIO()) as fake_out: print(icpt) actual = fake_out.getvalue().strip() expected = (":\n" " dx: 0\n" " dy: 0\n" " w: 0\n" " h: 0\n" " x0: 0\n" " y0: 0\n" " prec: 0\n" " bpp: 0\n" " sgnd: 0") self.assertEqual(actual, expected) def test_default_image_type(self): """printing default image type""" it = glymur.lib.openjp2.ImageType() with patch('sys.stdout', new=StringIO()) as fake_out: print(it) actual = fake_out.getvalue().strip() expected = ( ":\n" " x0: 0\n" " y0: 0\n" " x1: 0\n" " y1: 0\n" " numcomps: 0\n" " color_space: 0\n" " icc_profile_buf: " "\n" " icc_profile_len: 0") self.assertRegex(actual, expected) @unittest.skipIf(OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG) def test_image_comp_type(self): obj = opj2.ImageCompType() actual = str(obj) expected = ( r''':\n''' ''' dx: 0\n''' ''' dy: 0\n''' ''' w: 0\n''' ''' h: 0\n''' ''' x0: 0\n''' ''' y0: 0\n''' ''' prec: 0\n''' ''' bpp: 0\n''' ''' sgnd: 0\n''' ''' resno_decoded: 0\n''' ''' factor: 0\n''' ''' data: \n''' ''' alpha: 0\n''' ) self.assertRegex(actual, expected) glymur-0.9.1/tests/test_warnings.py000066400000000000000000000756671360775562100175040ustar00rootroot00000000000000""" Test suite for warnings issued by glymur. """ # Standard library imports import codecs try: import importlib.resources as ir except ImportError: # pragma: no cover # before 3.7 import importlib_resources as ir from io import BytesIO import struct import unittest import warnings # 3rd party library imports import numpy as np # Local imports from glymur import Jp2k import glymur from glymur.core import COLOR, RED, GREEN, BLUE from glymur.jp2box import InvalidJp2kError from . import fixtures, data from .fixtures import OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG class TestSuite(fixtures.TestCommon): def setUp(self): super(TestSuite, self).setUp() # Reset printoptions for every test. glymur.reset_option('all') def tearDown(self): super(TestSuite, self).tearDown() warnings.resetwarnings() glymur.reset_option('all') def test_parsing_bad_fptr_box(self): """ SCENARIO: An ftyp box advertises too many bytes to be read. EXPECTED RESULT: A warning is issued. In this case we also end up erroring out anyway since we don't get a valid FileType box. """ with ir.path(data, 'issue438.jp2') as path: with self.assertWarns(UserWarning): with self.assertRaises(InvalidJp2kError): Jp2k(path) def test_siz_ihdr_mismatch(self): """ SCENARIO: The dimensions reported by the IHDR box don't match what is reported by the SIZ marker. EXPECTED RESULT: A warning is issued. """ with open(self.temp_j2k_filename, mode='wb') as tfile: with open(self.jp2file, 'rb') as ifile: # Everything up until the IHDR payload read_buffer = ifile.read(48) tfile.write(read_buffer) # Write the bad IHDR. The correct sequence of values read # should be # (1456, 2592, 3, 7, 7, 0, 0) bad_ihdr = (1600, 2592, 3, 7, 7, 0, 0) buffer = struct.pack('>IIHBBBB', *bad_ihdr) tfile.write(buffer) # Get the rest of the input file. ifile.seek(62) read_buffer = ifile.read() tfile.write(read_buffer) tfile.flush() with self.assertWarns(UserWarning): # c = Jp2k(tfile.name).get_codestream(header_only=False) Jp2k(tfile.name) def test_unrecognized_marker(self): """ SCENARIO: There is an unrecognized marker just after an SOT marker but before the EOC marker. All markers must have a leading byte value of 0xff. EXPECTED RESULT: The SOT marker is the last one retrieved from the codestream. """ with open(self.temp_j2k_filename, mode='wb') as tfile: with open(self.j2kfile, 'rb') as ifile: # Everything up until the SOT marker. read_buffer = ifile.read(98) tfile.write(read_buffer) # Write the bad marker 0xd900 read_buffer = struct.pack('>H', 0xd900) tfile.write(read_buffer) # Get the rest of the input file. read_buffer = ifile.read() tfile.write(read_buffer) tfile.flush() with self.assertRaises(ValueError): Jp2k(tfile.name).get_codestream(header_only=False) def test_unrecoverable_xml(self): """ Bad byte sequence in XML that cannot be parsed. Original test file was 26ccf3651020967f7778238ef5af08af.SIGFPE.d25.527.jp2 """ fptr = BytesIO() payload = b'\xees' fptr.write(payload) fptr.seek(0) with self.assertWarns(UserWarning): box = glymur.jp2box.XMLBox.parse(fptr, 0, 8 + len(payload)) self.assertIsNone(box.xml) def test_tile_height_is_zero(self): """ Zero tile height should not cause an exception. Original test file was input/nonregression/2539.pdf.SIGFPE.706.1712.jp2 """ fp = BytesIO() buffer = struct.pack('>H', 47) # length # kwargs = {'rsiz': 1, # 'xysiz': (1000, 1000), # 'xyosiz': (0, 0), # 'xytsiz': (0, 1000), # 'xytosiz': (0, 0), # 'Csiz': 3, # 'bitdepth': (8, 8, 8), # 'signed': (False, False, False), # 'xyrsiz': ((1, 1, 1), (1, 1, 1)), # 'length': 47, # 'offset': 2} buffer += struct.pack('>HIIIIIIIIH', 1, 1000, 1000, 0, 0, 0, 1000, 0, 0, 3) buffer += struct.pack('>BBBBBBBBB', 7, 1, 1, 7, 1, 1, 7, 1, 1) fp.write(buffer) fp.seek(0) with self.assertWarns(UserWarning): glymur.codestream.Codestream._parse_siz_segment(fp) def test_invalid_progression_order(self): """ Should still be able to parse even if prog order is invalid. Original test file was input/nonregression/2977.pdf.asan.67.2198.jp2 """ fp = BytesIO() buffer = struct.pack('>HBBBBBBBBBB', 12, 3, 33, 1, 1, 3, 3, 0, 0, 1, 1) fp.write(buffer) fp.seek(0) with self.assertWarns(UserWarning): glymur.codestream.Codestream._parse_cod_segment(fp) def test_bad_wavelet_transform(self): """ Should warn if wavelet transform is bad. Issue195 Original file tested was input/nonregression/edf_c2_10025.jp2 """ fp = BytesIO() buffer = struct.pack('>HBHBBBBBBB', 12, 0, 1, 1, 1, 3, 3, 0, 0, 10) fp.write(buffer) fp.seek(0) with self.assertWarns(UserWarning): glymur.codestream.Codestream._parse_cod_segment(fp) def test_NR_gdal_fuzzer_assert_in_opj_j2k_read_SQcd_SQcc_patch_jp2(self): """ validate the QCC component number against Csiz The original test file was gdal_fuzzer_assert_in_opj_j2k_read_SQcd_SQcc.patch.jp2 """ fp = BytesIO() buffer = struct.pack('>HBB', 4, 64, 64) fp.write(buffer) fp.seek(0) with self.assertWarns(UserWarning): glymur.codestream.Codestream._parse_qcc_segment(fp) def test_NR_gdal_fuzzer_check_comp_dx_dy_jp2_dump(self): """ Invalid subsampling value. Original test file was gdal_fuzzer_check_comp_dx_dy.jp2 """ fp = BytesIO() buffer = struct.pack('>H', 47) # length # kwargs = {'rsiz': 1, # 'xysiz': (1000, 1000), # 'xyosiz': (0, 0), # 'xytsiz': (1000, 1000), # 'xytosiz': (0, 0), # 'Csiz': 3, # 'bitdepth': (8, 8, 8), # 'signed': (False, False, False), # 'xyrsiz': ((1, 1, 1), (1, 1, 1)), # 'length': 47, # 'offset': 2} buffer += struct.pack('>HIIIIIIIIH', 1, 1000, 1000, 0, 0, 1000, 1000, 0, 0, 3) buffer += struct.pack('>BBBBBBBBB', 7, 1, 1, 7, 1, 1, 7, 1, 0) fp.write(buffer) fp.seek(0) with self.assertWarns(UserWarning): glymur.codestream.Codestream._parse_siz_segment(fp) def test_read_past_end_of_box(self): """ SCENARIO: A pclr box has more rows specified than can fit inside the given box length. EXPECTED RESULT: A warning is issued for an attempt to read past the end of the box. """ with open(self.temp_jp2_filename, mode='wb') as ofile: with open(self.jpxfile, 'rb') as ifile: ofile.write(ifile.read(93)) # Rewrite the ncols, nrows portion. Increase the number of # rows. This causes python to think there are more rows # than there actually are when resizing the palette. buffer = struct.pack('>HB', 257, 3) ofile.write(buffer) ifile.seek(96) ofile.write(ifile.read()) ofile.flush() with self.assertWarns(UserWarning): Jp2k(ofile.name) def test_NR_gdal_fuzzer_check_number_of_tiles(self): """ Has an impossible tiling setup. Original test file was input/nonregression /gdal_fuzzer_check_number_of_tiles.jp2 """ fp = BytesIO() buffer = struct.pack('>H', 47) # length # kwargs = {'rsiz': 1, # 'xysiz': (20, 16777236), # 'xyosiz': (0, 0), # 'xytsiz': (20, 20), # 'xytosiz': (0, 0), # 'Csiz': 3, # 'bitdepth': (8, 8, 8), # 'signed': (False, False, False), # 'xyrsiz': ((1, 1, 1), (1, 1, 1)), # 'length': 47, # 'offset': 2} buffer += struct.pack('>HIIIIIIIIH', 1, 20, 16777236, 0, 0, 20, 20, 0, 0, 3) buffer += struct.pack('>BBBBBBBBB', 7, 1, 1, 7, 1, 1, 7, 1, 1) fp.write(buffer) fp.seek(0) with self.assertWarns(UserWarning): glymur.codestream.Codestream._parse_siz_segment(fp) def test_NR_gdal_fuzzer_unchecked_numresolutions_dump(self): """ Has an invalid number of resolutions. Original test file was input/nonregression/ gdal_fuzzer_unchecked_numresolutions.jp2 """ pargs = (0, 0, 1, 1, 64, 3, 3, 0, 0, None) spcod = struct.pack('>BHBBBBBB', 0, 1, 1, 64, 3, 3, 0, 0) spcod = bytearray(spcod) with self.assertWarns(UserWarning): glymur.codestream.CODsegment(*pargs, length=12, offset=174) def test_file_pointer_badly_positioned(self): """ SCENARIO: A colr box has an impossibly too long box length. Since the colr box is the last one in the jp2h super box, this results in an attempt to read past the end of the super box. EXPECTED RESULT: A warning is issued. """ with open(self.temp_jp2_filename, mode='wb') as ofile: with open(self.jp2file, 'rb') as ifile: # Write up to the colr box ofile.write(ifile.read(62)) # Write a too-long color box buffer = struct.pack('>I4sBBBI', 4194319, b'colr', 1, 0, 0, 0) ofile.write(buffer) # Write everything past the colr box. ifile.seek(77) ofile.write(ifile.read()) ofile.flush() with self.assertWarns(UserWarning): Jp2k(ofile.name) def test_NR_DEC_issue188_beach_64bitsbox_jp2_41_decode(self): """ SCENARIO: A JP2 file has a box with label 'XML ' instead of 'xml '. EXPECTED RESULT: A warning is issued about the box being unrecognized. """ with open(self.temp_jp2_filename, mode='wb') as ofile: with open(self.jp2file, 'rb') as ifile: ofile.write(ifile.read()) buffer = struct.pack('>I4s', 32, b'XML ') s = "goes here" buffer += s.encode('utf-8') ofile.write(buffer) ofile.flush() with self.assertWarns(UserWarning): Jp2k(ofile.name) def test_truncated_icc_profile(self): """ Validate a warning for a truncated ICC profile """ obj = BytesIO() obj.write(b'\x00' * 66) # Write a colr box with a truncated ICC profile. # profile. buffer = struct.pack('>I4s', 47, b'colr') buffer += struct.pack('>BBB', 2, 0, 0) buffer += b'\x00' * 12 + b'scnr' + b'XYZ ' + b'Lab ' # Need a date in bytes 24:36 buffer += struct.pack('>HHHHHH', 1966, 2, 15, 0, 0, 0) obj.write(buffer) obj.seek(74) # Should be able to read the colr box now with self.assertWarns(UserWarning): glymur.jp2box.ColourSpecificationBox.parse(obj, 66, 47) def test_invalid_colour_specification_method(self): """ should not error out with invalid colour specification method """ obj = BytesIO() obj.write(b'\x00' * 66) # Write a colr box with a bad method (254). This requires an ICC # profile. buffer = struct.pack('>I4s', 143, b'colr') buffer += struct.pack('>BBB', 254, 0, 0) buffer += b'\x00' * 12 + b'scnr' + b'XYZ ' + b'Lab ' # Need a date in bytes 24:36 buffer += struct.pack('>HHHHHH', 1966, 2, 15, 0, 0, 0) buffer += b'\x00' * 92 obj.write(buffer) obj.seek(74) # Should be able to read the colr box now with self.assertWarns(UserWarning): glymur.jp2box.ColourSpecificationBox.parse(obj, 66, 143) def test_bad_color_space_specification(self): """ Verify that a warning is issued if the color space method is invalid. For JP2, the method must be either 1 or 2. """ jp2 = glymur.Jp2k(self.jp2file) jp2.box[2].box[1].method = 3 with self.assertWarns(UserWarning): jp2._validate() def test_unknown_superbox(self): """ SCENARIO: There is a superbox with an unrecognized label. EXPECTED RESULT: A warning is issued. """ with open(self.temp_jpx_filename, mode='wb') as tfile: with open(self.jpxfile, 'rb') as ifile: tfile.write(ifile.read()) # Add the header for an unknown superbox. write_buffer = struct.pack('>I4s', 20, 'grp '.encode()) tfile.write(write_buffer) # Add a free box inside of it. We won't be able to identify it, # but it's there. write_buffer = struct.pack('>I4sI', 12, 'free'.encode(), 0) tfile.write(write_buffer) tfile.flush() with self.assertWarns(UserWarning): Jp2k(tfile.name) def test_brand_unknown(self): """A ftyp box brand must be 'jp2 ' or 'jpx '.""" with self.assertWarns(UserWarning): glymur.jp2box.FileTypeBox(brand='jp3') def test_bad_type(self): """Channel types are limited to 0, 1, 2, 65535 Should reject if not all of index, channel_type, association the same length. """ channel_type = (COLOR, COLOR, 3) association = (RED, GREEN, BLUE) with self.assertWarns(UserWarning): glymur.jp2box.ChannelDefinitionBox(channel_type=channel_type, association=association) def test_wrong_lengths(self): """Should reject if not all of index, channel_type, association the same length. """ channel_type = (COLOR, COLOR) association = (RED, GREEN, BLUE) with self.assertWarns(UserWarning): glymur.jp2box.ChannelDefinitionBox(channel_type=channel_type, association=association) def test_cl_entry_unknown(self): """A ftyp box cl list can only contain 'jp2 ', 'jpx ', or 'jpxb'.""" with self.assertWarns(UserWarning): # Bad compatibility list item. glymur.jp2box.FileTypeBox(compatibility_list=['jp3']) def test_colr_with_cspace_and_icc(self): """Colour specification boxes can't have both.""" buffer = ir.read_binary(data, 'sgray.icc') with self.assertWarns(UserWarning): colorspace = glymur.core.SRGB glymur.jp2box.ColourSpecificationBox(colorspace=colorspace, icc_profile=buffer) def test_colr_with_bad_method(self): """colr must have a valid method field""" colorspace = glymur.core.SRGB method = -1 with self.assertWarns(UserWarning): glymur.jp2box.ColourSpecificationBox(colorspace=colorspace, method=method) def test_colr_with_bad_approx(self): """ SCENARIO: An ColourSpecificationBox is given an invalid approximation value. EXPECTED RESULT: A warning is issued. """ with self.assertWarns(UserWarning): glymur.jp2box.ColourSpecificationBox(colorspace=glymur.core.SRGB, approximation=-1) def test_mismatched_bitdepth_signed(self): """bitdepth and signed arguments must have equal length""" palette = np.array([[255, 0, 255], [0, 255, 0]], dtype=np.uint8) bps = (8, 8, 8) signed = (False, False) with self.assertWarns(UserWarning): glymur.jp2box.PaletteBox(palette, bits_per_component=bps, signed=signed) def test_mismatched_signed_palette(self): """bitdepth and signed arguments must have equal length""" palette = np.array([[255, 0, 255], [0, 255, 0]], dtype=np.uint8) bps = (8, 8, 8, 8) signed = (False, False, False, False) with self.assertWarns(UserWarning): glymur.jp2box.PaletteBox(palette, bits_per_component=bps, signed=signed) def test_invalid_xml_box(self): """ SCENARIO: An xml box has invalid XML. EXPECTED RESULT: A warning is issued. """ with open(self.temp_jp2_filename, mode='wb') as tfile: bad_xml_file = tfile.name with open(self.jp2file, 'rb') as ifile: # Everything up until the UUID box. write_buffer = ifile.read(77) tfile.write(write_buffer) # Write the xml box with bad xml # Length = 28, id is 'xml '. write_buffer = struct.pack('>I4s', int(28), b'xml ') tfile.write(write_buffer) write_buffer = 'this is a test' write_buffer = write_buffer.encode() tfile.write(write_buffer) # Get the rest of the input file. write_buffer = ifile.read() tfile.write(write_buffer) tfile.flush() with self.assertWarns(UserWarning): Jp2k(bad_xml_file) def test_deurl_child_of_dtbl(self): """ Data reference boxes can only contain data entry url boxes. It's just a warning here because we haven't tried to write it. """ ftyp = glymur.jp2box.FileTypeBox() with self.assertWarns(UserWarning): glymur.jp2box.DataReferenceBox([ftyp]) def test_flst_lens_not_the_same(self): """A fragment list box items must be the same length.""" offset = [89] length = [1132288] reference = [0, 0] with self.assertWarns(UserWarning): glymur.jp2box.FragmentListBox(offset, length, reference) def test_flst_offsets_not_positive(self): """A fragment list box offsets must be positive.""" offset = [0] length = [1132288] reference = [0] with self.assertWarns(UserWarning): glymur.jp2box.FragmentListBox(offset, length, reference) def test_flst_lengths_not_positive(self): """A fragment list box lengths must be positive.""" offset = [89] length = [0] reference = [0] with self.assertWarns(UserWarning): glymur.jp2box.FragmentListBox(offset, length, reference) def test_unrecognized_exif_tag(self): """ SCENARIO: An Exif UUID box has an unrecognized tag. EXPECTED RESULT: A warning is issued. """ with open(self.temp_jp2_filename, mode='wb') as tfile: with open(self.jp2file, 'rb') as ifptr: tfile.write(ifptr.read()) # Write L, T, UUID identifier. tfile.write(struct.pack('>I4s', 52, b'uuid')) tfile.write(b'JpgTiffExif->JP2') tfile.write(b'Exif\x00\x00') xbuffer = struct.pack('I4s', 52, b'uuid')) tfile.write(b'JpgTiffExif->JP2') tfile.write(b'Exif\x00\x00') xbuffer = struct.pack('I4s', 52, b'uuid')) tfile.write(b'JpgTiffExif->JP2') tfile.write(b'Exif\x00\x00') # Here's the bad byte order. tfile.write(b'JI') # Write the rest of the header. xbuffer = struct.pack('H', 32) ofile.write(buffer) ifile.seek(3239) # Get the rest of the file. ofile.write(ifile.read()) ofile.seek(0) with self.assertWarns(UserWarning): Jp2k(ofile.name) def test_undecodeable_box_id(self): """ SCENARIO: an unknown box ID is encountered EXPECTED RESULT: Should warn but not error out. """ bad_box_id = b'abcd' with open(self.temp_jp2_filename, mode='wb') as ofile: with open(self.jp2file, 'rb') as ifile: ofile.write(ifile.read()) # Tack an unrecognized box onto the end of nemo. buffer = struct.pack('>I4s', 8, bad_box_id) ofile.write(buffer) ofile.flush() with self.assertWarns(UserWarning): jp2 = Jp2k(ofile.name) # Now make sure we got all of the boxes. box_ids = [box.box_id for box in jp2.box] self.assertEqual(box_ids, ['jP ', 'ftyp', 'jp2h', 'uuid', 'jp2c', 'xxxx']) self.assertEqual(jp2.box[5].claimed_box_id, b'abcd') def test_bad_ftyp_brand(self): """ SCENARIO: The ftyp box has an invalid brand field. EXPECTED RESULT: A warning is issued. """ with open(self.temp_jp2_filename, mode='wb') as ofile: with open(self.jp2file, 'rb') as ifile: # Write the JPEG2000 signature box ofile.write(ifile.read(12)) # Write a bad version of the file type box. 'jp ' is not # allowed as a brand. buffer = struct.pack('>I4s4sI4s', 20, b'ftyp', b'jp ', 0, b'jp2 ') ofile.write(buffer) # Write the rest of the boxes as-is. ifile.seek(32) ofile.write(ifile.read()) ofile.flush() with self.assertWarns(UserWarning): Jp2k(ofile.name) def test_bad_ftyp_compatibility_list_item(self): """ SCENARIO: The ftyp box has an invalid compatibility list item. EXPECTED RESULT: A warning is issued. """ with open(self.temp_jp2_filename, mode='wb') as ofile: with open(self.jp2file, 'rb') as ifile: # Write the JPEG2000 signature box ofile.write(ifile.read(12)) # Write a bad compatibility list item. 'jp3' is not valid. buffer = struct.pack('>I4s4sI4s', 20, b'ftyp', b'jp2 ', 0, b'jp3 ') ofile.write(buffer) # Write the rest of the boxes as-is. ifile.seek(32) ofile.write(ifile.read()) ofile.flush() with self.assertWarns(UserWarning): Jp2k(ofile.name) def test_invalid_approximation(self): """ SCENARIO: The colr box has an invalid approximation field. EXPECTED RESULT: A warning is issued. """ with open(self.temp_jp2_filename, mode='wb') as ofile: with open(self.jp2file, 'rb') as ifile: # Copy the signature, file type, and jp2 header, image header # box as-is. ofile.write(ifile.read(62)) # Write a bad version of the color specification box. 32 is an # invalid approximation value. buffer = struct.pack('>I4sBBBI', 15, b'colr', 1, 2, 32, 16) ofile.write(buffer) # Write the rest of the boxes as-is. ifile.seek(77) ofile.write(ifile.read()) ofile.flush() with self.assertWarns(UserWarning): Jp2k(ofile.name) def test_invalid_colorspace(self): """ SCENARIO: A colr box has an invalid colorspace field. EXPECTED RESULT: A warning is issued. """ with open(self.temp_jp2_filename, mode='wb') as ofile: with open(self.jp2file, 'rb') as ifile: # Copy the signature, file type, and jp2 header, image header # box as-is. ofile.write(ifile.read(62)) # Write a bad version of the color specification box. 276 is # an invalid colorspace. buffer = struct.pack('>I4sBBBI', 15, b'colr', 1, 2, 0, 276) ofile.write(buffer) # Write the rest of the boxes as-is. ifile.seek(77) ofile.write(ifile.read()) ofile.flush() with self.assertWarns(UserWarning): Jp2k(ofile.name) def test_stupid_windows_eol_at_end(self): """ SCENARIO: An otherwise valid JP2 file has invalid bytes appended to the end of the file. The number of bytes is less than 8 because any more than that would be interpreted as a box. SCENARIO: A warning is issued. """ with open(self.temp_jp2_filename, mode='wb') as ofile: with open(self.jp2file, 'rb') as ifile: # Copy the file all the way until the end. ofile.write(ifile.read()) # then append a few extra bytes ofile.write(b'\0') ofile.flush() with self.assertWarns(UserWarning): Jp2k(ofile.name) @unittest.skipIf(OPENJPEG_NOT_AVAILABLE, OPENJPEG_NOT_AVAILABLE_MSG) def test_NR_ENC_X_6_2K_24_FULL_CBR_CIRCLE_000_tif_17_encode(self): """ SCENARIO: Too much data is written as a Cinema2K file. EXPECTED RESULT: A warning from the openjpeg library is issued. """ # Need to provide the proper size image data = glymur.Jp2k(self.jp2file)[:] data = np.concatenate((data, data), axis=0) data = np.concatenate((data, data), axis=1).astype(np.uint16) data = data[:1080, :2048, :] with self.assertWarns(UserWarning): Jp2k(self.temp_jp2_filename, data=data, cinema2k=24) def test_deprecated_set_get_printoptions(self): """ Verify deprecated get_printoptions and set_printoptions """ with self.assertWarns(DeprecationWarning): glymur.set_printoptions(short=True) with self.assertWarns(DeprecationWarning): glymur.set_printoptions(xml=True) with self.assertWarns(DeprecationWarning): glymur.set_printoptions(codestream=True) with self.assertWarns(DeprecationWarning): glymur.get_printoptions() def test_deprecated_set_get_parseoption(self): """ Verify deprecated get_parseoptions and set_parseoptions """ with self.assertWarns(DeprecationWarning): glymur.set_parseoptions(full_codestream=True) with self.assertWarns(DeprecationWarning): glymur.get_parseoptions() class TestSuiteXML(unittest.TestCase): """ This test should be run on both python2 and python3. """ def test_bom(self): """ Byte order markers are illegal in UTF-8. Issue 185 Original test file was input/nonregression/issue171.jp2 """ fptr = BytesIO() buffer = b"" buffer += b"goes here" buffer += b"" fptr.write(buffer) num_bytes = fptr.tell() fptr.seek(0) with warnings.catch_warnings(record=True) as w: glymur.jp2box.XMLBox.parse(fptr, 0, 8 + num_bytes) self.assertEqual(len(w), 0)